Ausgabe auf imagecreatefromgif

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe auf imagecreatefromgif

    Hallo,

    ich bin Anfänger und bastele an einem Counterservice. Nun möchte ich Counter und Rang (Platz) auf dem vorhandenen Bild (counter.gif) ausgeben. Counter funktioniert aber mit dem Rang habe ich Schwierigkeiten. So wie ich es jetzt habe erscheint verständlicher Weise bei allen Usern nur 1.

    Das Ganze sieht jetzt so aus:
    http://www.seite100.de/hitthermometer/ctest.htm

    Wer kann mir helfen?

    Hier der jetzige Code:

    <?php
    include "config.php";

    $get_rows = mysql_db_query ($dbname,"SELECT counter FROM top_user as rank WHERE sid='$site'",$db) or die (mysql_error());
    $rows = mysql_fetch_array($get_rows);

    $counter = $rows[counter];
    $rank =$rows['rang'].(++$i);


    $counter++;
    mysql_query ("UPDATE top_user SET counter='$counter' WHERE sid='$site'") or die (mysql_error());

    mysql_close($db);

    //Bildausgabe
    $img = imagecreatefromgif("counter.gif");

    $bg = imagecolorallocate($img,0,0,0);
    $text = imagecolorallocate($img,0xFF,0xFF,0x00);
    imagestring($img,3,38,5,"HITS: $counter",$text);
    imagestring($img,2,80,5,"",$text);
    imagestring($img,3,38,18,"PLATZ: $rank",$text);
    header("Content-Type: image/gif");
    imagegif($img);

    ?>

  • #2
    Re: Ausgabe auf imagecreatefromgif

    Original geschrieben von meteo

    $rank =$rows['rang'].(++$i);
    woher kommt denn $i ?
    Falls beiden Zahlen sind, könnte man auch ne mathematische operation nutzen, also so wie man es in der schule gelernt hats.

    Kommentar


    • #3
      Danke für die schnelle Antwort.

      $rank =$rows['rang'].(++$i); - war einfach ein Versuch von mir.
      ich hab hier wirklich 0 Ahnung und hab halt aus Lehrbüchern das
      eine oder andere probiert. Bei einer Liste klappt das ja, nur beim
      Bild verständlicher Weise nicht.

      Ich denke, die Abfrage müsste so lauten:

      $rang= "zeige mir aus der tabelle top_user in der Spalte
      counter von der der site=xxxxxx den Rang"

      Also beim höchsten Counterstand = 1 usw.

      Nur weiss ich nicht, wie ich das umsetzen soll, dass es funktioniert.

      Kommentar


      • #4
        erklär doch einfach mal, wie der Rang zustande kommen soll.

        du holst EINEN datensatz, also eine Seite, die hat einen counter-stand ... und woher kommt der Rang, bzw. wie wird der ermittelt?

        Kommentar


        • #5
          genau das ist mein Problem. Ich versuchs nochmal zu erklären:

          in der von mir angelegten Tabelle "top_user" gibt es unter anderen die Spalten:

          +-----+---------------------+--------+
          | SID | URL | counter | rang |
          +-----+---------------------+--------+
          | 1xx | URL a| 187 | - | ------> sollte 2 sein
          | 2xx | URL b| 23 | - | ------> sollte 3sein
          | 3xx | URL c | 531 | - | ------> sollte 1 sein
          +----+----------------------+--------+

          ob rang notwendig ist, weiss ich nicht - hier wird jetzt weder was gezählt,
          noch eingetragen - ich hatte es anfangs einfach dazu genommen.

          Der counter wird mit HTML Code von der Seite des users aufgerufen:

          <a href="http://www.seite100.de/hitthermometer/in.php?site=XXXXXXXXX" target="_blank">
          <img src="http://www.seite100.de/hitthermometer/counter.php3?site=XXXXXXXXX" border=0 alt="Stimmen Sie hier für meine Homepage">

          (in.php ist ein anderer Counter)

          Dies funktioniert einwandfrei.

          Ich habe auch bereits eine Hitliste erstellt, bei welcher es einfach ist
          mit dem Rang (Platz) siehe:

          http://www.seite100.de/hitthermometer/liste.php3

          hier funktioniert es ja - davon sieht der Code so aus:

          <html>

          <head>

          <title>Hitliste</title>

          </head>



          <body background="img/hg.gif">

          <center><table >
          <tr>
          <td><p align="center"><img border="0"
          src="img/toplist.gif" width="127"
          height="46"></p>
          </td>
          </tr>
          </table>




          <table width=500 border=\"0\" cellspacing=\"1\" cellpadding=\"1\">

          <tr>

          <td width="400" bgcolor="#52668A">

          <font face="Verdana" size="1" color="yellow">Homepage</font></td>

          <td width="70" bgcolor="#52668A">

          <font face="Verdana" size="1" color="yellow">Hits gesamt</font></td>

          <td width="30" bgcolor="#52668A">

          <font face="Verdana" size="1" color="yellow">Platz</font></td>

          </tr>

          </table>

          </body>

          </html>

          <?



          require("mysql_connect.php3");



          $Zeilen_pro_Seite = 15;

          if (!isset($Anfangsposition)) {

          $Anfangsposition = 0;

          }

          $sql="select sid,url,counter from top_user where ".

          "counter order by counter desc limit $Anfangsposition,$Zeilen_pro_Seite";

          $result=mysql_query($sql);

          $result1=mysql_query("select url from top_user where counter order by counter desc");

          $tquery = mysql_query ("select counter as total from top_user

          where status='Y'");

          $Anzahl=mysql_num_rows($result1);

          while ($row=mysql_fetch_array($result)) {





          // $sql="select * from IHRE_TABELLE where ".

          // "BEDINGUNG limit $Anfangsposition,$Zeilen_pro_Seite";



          $titre=$row["url"];

          $hits=$row["counter"];

          $url=$row["sid"];

          $rank=$row['rang'].(++$i);









          // Daten anzeigen



          echo "<table width=\"500\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">

          ";

          echo"<tr>

          <td width=\"400\" bgcolor=\"#C4C9F6\"><font face=\"Verdana\" size=\"1\"><a href=\"$titre\">$titre</a></td>

          <td width=\"70\" bgcolor=\"#C4C9F6\"><font face=\"Verdana\" size=\"1\">$hits</td>

          <td width=\"30\" bgcolor=\"#C4C9F6\"><font face=\"Verdana\" size=\"1\">$rank</td>

          </tr>

          </table>";

          }







          if($Anfangsposition > 0) {

          echo "<a href='liste.php3?Anfangsposition=0'><font face=\"verdana\" size=\"1\" color=\"#0000FF\">[erste Seite]</font></a>";

          $back=$Anfangsposition-$Zeilen_pro_Seite;

          if($back < 0) {

          $back = 0;

          }

          echo "<a href=\"liste.php3?Anfangsposition=$back\"><font face=\"verdana\" size=\"1\" color=\"#0000FF\">[eine Seite zurück] </font></a>";

          }

          if($Anzahl>$Zeilen_pro_Seite) {

          $Seiten=intval($Anzahl/$Zeilen_pro_Seite);

          if($Anzahl%$Zeilen_pro_Seite) {

          $Seiten++;

          }

          }

          for ($i=1;$i<=$Seiten;$i++) {

          $fwd=($i-1)*$Zeilen_pro_Seite;

          echo "<a href=\"liste.php3?Anfangsposition=$fwd\"><font face=\"verdana\" size=\"1\" color=\"#0000FF\"> [$i] </font></a>";

          }

          if($Anfangsposition < $Anzahl-$Zeilen_pro_Seite) {

          $fwd=$Anfangsposition+$Zeilen_pro_Seite;

          echo "<a href=\"liste.php3?Anfangsposition=$fwd\"><font face=\"verdana\" size=\"1\" color=\"#0000FF\">[eine Seite weiter] </font></a>";

          $fwd=$Anzahl-$Zeilen_pro_Seite;

          echo "<a href=\"liste.php3?Anfangsposition=$fwd\"><font face=\"verdana\" size=\"1\" color=\"#0000FF\">[letzte Seite] </font></a>";

          }

          ?></center>

          Beim Bild brauche ich aber eine andere Abfrage. Ich habe schon alles mögliche probiert und denke es müsste so etwa aussehen, liege aber total daneben:

          SELECT Count(id) + 1 AS platz FROM tabelle
          WHERE counter > $anzahl_von_eintraege_x

          wo mach ich hier den Denkfehler oder wie wäre das realisierbar?

          Kommentar

          Lädt...
          X