Help

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

  • Help

    Folgendes, ich mache mehrere Linklisten deren "Hits" gezählt werden sollen. Nun will ich aber nicht für jede Linkliste eine neue Hitseitemachen müssen. Aber die Hitseite muß aus der Tabelle der entsprechenden Linksammlung ihre Hitzahl ziehen können.
    Und das bekomme ich nicht hin. Habe es mit einer Switch probiert aber dann öffnet er mir weder die Seite auf die ich klicke noch erhöht er die Hits

    Hier der Code aus einer Linkseite:
    Die Zeile ist rot markiert, der Teil den ich neu eingefügt habe blau ohne den blauen Teil funktioniert es, aber ich kann es halt nur für diese eine Linkliste machen.

    <?php
    INCLUDE"db_config.inc.php";
    echo "<html>\n";

    echo " <head>\n";
    echo " <title></title>\n";
    echo " </head>\n";

    echo " <body bgcolor=$hintergrundfarbe>\n";
    echo " <br><table border='0' cellpadding='5' cellspacing='1' width='675' bgcolor='#FFFFFF'>\n";
    echo " <tr>\n";
    echo " <td bgcolor='#336699' width='5%'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Rang:</b></font></td>\n";
    echo " <td bgcolor='#336699' width='20%'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Site-Name:</b></font></td>\n";
    echo " <td bgcolor='#336699' width='60%'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Beschreibung:</b></font></td>\n";
    echo " <td bgcolor='#336699' width='5%' align=center><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Sprache:</b></font></td>\n";
    echo " <td bgcolor='#336699' width='5%' align='center'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Hits:</b></font></td>\n";
    echo " <td bgcolor='#336699' width='12%' align='center'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'><b>Link melden:</b></font></td>\n";
    echo " </tr>\n";


    $sel = "SELECT * FROM htmllinks ORDER BY HTML_HITS DESC";

    if(mysql_query($sql, $verbindung))
    {
    $erg=mysql_query($sel, $verbindung);
    if($erg)
    {
    $x=0;
    while($zeile=mysql_fetch_row($erg))
    {
    $x++;

    echo " <tr>\n";
    echo " <td bgcolor='#CDDBEB' width='5%' align='center'><font face='$schriftart' size='$schriftgroesse' color='#000000'><b>$x</b></font></td>\n";
    echo " <td width='20%' bgcolor='#6699CC'>[COLOR=red]<a href='hit.php?[COLOR=blue]pageurl=htmllinks[/COLOR]&id=$zeile[0]&hp=$zeile[1]' target='_blank'>[/COLOR] <font face='$font' size='$schriftgroesse'><b>$zeile[2]</font></a></td>\n";
    echo " <td width='60%' bgcolor='#6699CC'><font face='$schriftart' size='$schriftgroesse' color='#FFFFFF'>$zeile[3]</font></td>\n";
    echo " <td width='5%' bgcolor='#CDDBEB' align='center'><font face='$schriftart' size='$schriftgroesse'><b>$zeile[4]</font></td>\n";
    echo " <td width='5%' bgcolor='#CDDBEB' align='center'><font face='$schriftart' size='$schriftgroesse'><b>$zeile[5]</font></td>\n";
    echo " <td width='12%' bgcolor='#6699CC'><form action='mail.php' methode='post'>";
    echo " <input type='submit' name='deadlink' Value='Toter Link'><input type='hidden' name='url' value='$zeile[1]'><input type='hidden' name='page' value='Html-Tutorials'><input type='hidden' name='pageurl' value='htmllinks.php'>&nbsp;</form></td>\n";
    echo " </tr>\n";

    $anz =mysql_num_rows($erg);
    }
    }
    }


    echo " </table>\n";

    echo "<br><br>\n";
    echo "</b></div></body></html>\n";
    echo "</div>\n";
    echo " </body>\n";

    echo "</html>\n";

    ?>

    Hier der Code der Hit.php:
    Die roten Zeilen sind die neu eingefügten mit denen es nicht funktioniert und die blauen die die vorher drinstanden.

    <?php

    INCLUDE "db_config.inc.php";
    [COLOR=blue]$sel = "SELECT HTML_HITS FROM htmllinks WHERE HTML_ID = $id";[/COLOR]
    [COLOR=red]
    switch ($pageurl)
    {
    case htmllinks:
    $sel = "SELECT HTML_HITS FROM htmllinks WHERE HTML_ID = $id";
    $upd = "UPDATE htmllinks SET HTML_HITS = $x WHERE HTML_ID = $id";
    case jslinks:
    $sel = "SELECT JS_HITS FROM jslinks WHERE JS_ID = $id";
    $upd = "UPDATE jslinks SET JS_HITS = $x WHERE JS_ID = $id";
    }
    [/COLOR]



    if(mysql_query($sql, $verbindung))
    {
    $erg=mysql_query($sel, $verbindung);
    if($erg)
    {
    while($zeile=mysql_fetch_row($erg))
    {
    $x=$zeile[0]+1;
    [COLOR=blue]
    $upd = "UPDATE htmllinks SET HTML_HITS = $x WHERE HTML_ID = $id";[/COLOR]
    if(mysql_query($sql, $verbindung))
    {

    if(mysql_query($upd, $verbindung))
    echo " <html><head><title>Redirected from Newbie's Home</title></head><frameset cols=*><frame src=$hp noresize></frameset><noframes></html>\n";
    }
    }
    }
    }
    ?>

    Ist da irgenwo ein Fehler denn der Parser nicht ausgibt, hab ich nen Denkfehler drin...????

  • #2
    versuchs mal mit hoch kommas:

    $upd = "UPDATE htmllinks SET HTML_HITS = '$x' WHERE HTML_ID = '$id'";

    Kommentar


    • #3
      Wenn ich die blauen Zeilen drin habe funktioniert es ja
      Ich möchte aber das das was in den roten Zeilen steht funktioniert!

      Kommentar


      • #4
        switch ($pageurl)
        {
        case htmllinks:
        $sel = "SELECT HTML_HITS FROM htmllinks WHERE HTML_ID = '$id'";
        $upd = "UPDATE htmllinks SET HTML_HITS = $x WHERE HTML_ID = '$id'";
        case jslinks:
        $sel = "SELECT JS_HITS FROM jslinks WHERE JS_ID = '$id'";
        $upd = "UPDATE jslinks SET JS_HITS = $x WHERE JS_ID = '$id'";
        }


        versuchs überall mal mit hochkommas:

        Kommentar


        • #5
          Hallo,
          wandel doch die Zeile

          PHP-Code:
          <a href='hit.php?pageurl=htmllinks&id=$zeile[0]&hp=$zeile[1]' target='_blank'
          In diese um:
          PHP-Code:
          <a href='hit.php?pageurl=htmllinks&id=$zeile[0]&hp=<?php urlencode("zeile[1]"); ?> target='_blank'>
          das Dollarzeichen kannst Du übrigens weglassen.

          Gruß
          Ilija

          Kommentar


          • #6
            sorry. Wie sagtest Du noch ?
            Wer lesen kann, ist klar im Vorteil ..
            Gruß
            Ilija

            Kommentar


            • #7
              Original geschrieben von ilija
              sorry. Wie sagtest Du noch ?


              Gruß
              Ilija

              Ähh worauf beziehst sich das denn jetzt?

              Kommentar


              • #8
                dass mit den Hochkommata war schon richtig nur an falscher Stelle. Ausserdem im case fall immer an das break denken...

                case 'htmllinks':
                $sel = "SELECT HTML_HITS FROM htmllinks WHERE HTML_ID = '$id'";
                $upd = "UPDATE htmllinks SET HTML_HITS = $x WHERE HTML_ID = '$id'";
                break;// nicht vergessen
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Die breaks hatte ich auch schon drin, hatte vermutet das es daran liegen könnte und habe sie wieder rausgenommen.
                  Werde das jetzt mal ausprobieren und euch nachher Feedback geben ob es funktioniert.
                  Schon mal danke an alle.

                  Kommentar


                  • #10
                    so habe überall Hochkommatas drin und die break trotzallem funktioniert es nicht der Link wird nicht geöffnet und der Hit wird auch nicht gezählt! Er scheint nicht in die Switch-Anweisung reinzuspringen... *heul*

                    Kommentar


                    • #11
                      hmm,

                      mach mal überall echos rein zum testen ob er durch das switch durchgeht, naja und mach doch einfach ein 0 oder 1 als abfrage in der switch das ist genauer und performanter

                      Kommentar


                      • #12
                        er springt in die Switch, aber anscheinend kann er denn REst des Codes dann nicht mehr verarbeiten. soll ich den Code vielleicht komplett in die Switch packen?

                        Kommentar


                        • #13
                          hmm,

                          noe brauchst du eigentlich nicht, mach dir einfach einige echos rein die irgendwas ausgeben, zb echo "Marke 1" ; dann echo "Marke 2 erreicht "; etc. dann weisst du wo dein Script durchläuft und wo es was versaubeutelt. So debugge ich wenn ich absolut keine Ahnung hab wo es harkt.

                          Kommentar


                          • #14
                            if(mysql_query($upd, $verbindung))
                            echo " <html><head><title>Redirected from Newbie's Home</title></head><frameset cols=*><frame src=$hp noresize></frameset><noframes></html>\n";

                            in der letzten Schleife geht die Variable $verbindung verloren

                            aber ich weiß nicht warum

                            Kommentar


                            • #15
                              findet denn keiner den Fehler

                              Kommentar

                              Lädt...
                              X