if-abfrage funzt bei puretec nicht!?

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

  • if-abfrage funzt bei puretec nicht!?

    Hi Forum,
    ich habe ein Prob mit puretec. Habe ein Gästebuch programmiert, das auf meinem localhost einwandfrei funzt.
    Ein php-Script überprüft, ob weniger als 5 Einträge insgesamt in der DB (mysql) vorhanden sind...
    Und gibt das weiter... ich übergebe mittels einer variable ($oos [OnlyOneSite]) einen Wert an ein anderes Script gb_show.php3
    Wenn oos=1 ist dann habe ich nur eine Seite wenn es einen anderen Wert hat dann habe ich mehr als 5 Einträge insgesamt in der DB.
    Die Variable wird an den Link angehängt:
    www.meineseite.de/phpscript1.php3?oos=1 oder eben 2 wenn mehr als 5 Einträge vorhanden sind....
    Nur im Script das dann die Dateien anzeigen soll wird ein Fehler ausgeben.
    Ich habe im Moment 3 Einträge, die in sich in der Puretec-Datenbank befinden...also ist oos auf 1 gesetzt!
    So weit so gut....das klappt ja auch soweit...
    Doch jetzt bringt er mir mir gleich zwei Fehlermeldungen, die anscheinend daraus resultieren, dass er die If-abfragen nicht richtig durchläuft....
    Ich habe im Quelltext die Stellen der Fehlermeldung mit einem Kommentar versehen:

    ---------------------------------------------------------------------------------------
    FEHLERMEDLUNG1: Warning: 0 is not a MySQL result index in /homepages/5/d24808579/htdocs/db/gb_show_puretec.php3 on line 24

    Wie schon oben geschrieben scheint die if-abfrage net zu funzen, denn wenn ich die SQL-Anweisung direkt in den query hineinschreibe und nicht per varibale übergebe funzt es....
    [also nicht so: $ergebnis=mysql_query($sql_befehl,$verbindung); sondern so:$ergebnis=mysql_query("SELECT*FROM gaestebuch,$verbindung);]


    ---------------------------------------------------------------------------------------
    FEHLERMELDUNG 2:Warning: Division by zero in /homepages/5/d24808579/htdocs/db/gb_show_puretec.php3 on line 83

    Eigentlich dürfte php gar nicht in den else-Zeig reinlaufen, da ja oos=1 im link übergeben wurde....warum ers doch macht kann ich nicht sagen
    Das es eine division mit 0 ist klar da wenn oos nicht 1 ist (also ich insgesamt mehr als 5 einträge in der DB habe) auch noch die Variablen $step und $start per link übergeben werden
    dann lautet der link: www.meineseite.de?oos=2&start=0&step=5
    --------------------------------------------------------------------------------------


    Hier das Script der Datei (gb_show.php3) in der der Fehler vorkommt:


    PHP-Code:
    <?php
    // Die Daten sind ordnungsgemäß geändert wenn ich die Datei auf den //Puretec-Server stelle...
    $server="localhost";
    $user="";
    $passwort="";
    $verbindung=mysql_connect($server,$user,$passwort);
    mysql_select_db("db43239736",$verbindung);


    // oos=OnlyOneSite Siehe Definition in Datei 'gb_check_show.php3'
    //OnlyOneSite=1, D.h. also Ja
    if ($_GET["oos"]==1)
    {
    $sql_befehl="SELECT * FROM gaestebuch ORDER BY zeitstempel DESC";
    }
    else
    {
    // oos!=1 also z.B. oos=2 was Bedeutet das mehr also eine Site gebraucht wird
    $sql_befehl="SELECT * FROM gaestebuch ORDER BY zeitstempel DESC LIMIT $start , $step";
    }
    //Hole Daten vom DB
    $ergebnis=mysql_query($sql_befehl,$verbindung);

    // Einträge in die Seite integrieren
    // HIER KOMMT DIE FEHLERMELDUNG 1
    while($datensatz=mysql_fetch_object($ergebnis))
    {
    //CODECOMENT
    echo "<!--Hier beginnt ein neuer GB-Eintrag-->\n";

    //Datum
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td background='../images/bg_bottom.jpg'><font face='Arial' color='white' style='font-size:13px;'><b>Datum:</b> "$datensatz->datum ."</font></tr></td></table></center>\n";


    //Name
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td background='../images/bg_bottom.jpg'><font face='Arial' color='white' style='font-size:13px;'><b>Name:</b> "$datensatz->name ."</font></tr></td></table></center>\n";

    //Ort
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td background='../images/bg_bottom.jpg'><font face='Arial' color='white' style='font-size:13px;'><b>Ort:</b> "$datensatz->ort ."</font></tr></td></table></center>\n";

    //E-mail
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td background='../images/bg_bottom.jpg'><font face='Arial' color='white' style='font-size:13px;'><b>E-mail:</b> <a href='mailto:"$datensatz->email ."' class='post'>"$datensatz->email ."</a> </font></tr></td></table></center>\n";

    //Website
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td background='../images/bg_bottom.jpg'><font face='Arial' color='white' style='font-size:13px;'> <b>Homepage:</b> <a href='"$datensatz->url ."' class='post' target='_blank'>"$datensatz->url ."</a> </font></tr></td></table></center>\n";

    //Text
    echo "<center><table width='416' CELLSPACING='2' cellpadding='0' border='0'><tr width='208'><td bgcolor='#cecece'><font face='Arial' color='black' style='font-size:13px;'><b>Eintrag:</b><br> "$datensatz->text ."</font></tr></td></table></center>\n";

    echo 
    "<br>\n<br>\n\n\n";

    }
    mysql_free_result($ergebnis);
    mysql_close($verbindung);


    // Links zu den Seiten setzen
    //Ermittle Anzahl der benötigten Seiten
    $verbindung=mysql_connect($server,$user,$passwort);
    mysql_select_db("db43239736",$verbindung);
    $sql_befehl="SELECT * FROM gaestebuch";
    $ergebnis=mysql_query($sql_befehl,$verbindung);
    $anzahldaten=mysql_num_rows($ergebnis);
    mysql_free_result($ergebnis);
    mysql_close($verbindung);


    if (
    $_GET["oos"]==1)
    {
    echo 
    "<font face='arial color='black' style='font-size:13px;'>Seite:</font>&nbsp;&nbsp;&nbsp;<a href='gb_show.php3?oos=1' style='color:darkblue; font-size:13px; font-style:arial;'>1</a>&nbsp;&nbsp;&nbsp;<font face='arial color='black' style='font-size:13px;'>|</font>";
    }


    else
    {
    //Mehr 2 $step einträge (Standardwert=5)
    //Divisionrest für die letzte Seite
    $divrest=$anzahldaten%$step;
    $anzahlpassend=$anzahldaten-$divrest;

    //Ermitteln der Seiten die mit der maximalen Anzahl an Einträgen gefüllt sind  (Standardwert=5)
    //HIER KOMMT FEHLERMELDUNG 2
    $volleseiten=$anzahlpassend/$step;
    $seitennummer=1;
    $aktuelleseitenanzahl=0;
    $start=0;
    echo 
    "<font face='arial color='black' style='font-size:13px;'>Seite:</font>&nbsp;&nbsp;&nbsp;";
    while (
    $aktuelleseitenanzahl $volleseiten)
    {

    echo 
    "<a href='gb_show.php3?oos=2&start="$start ."&step="$step ."' style='color:darkblue; font-size:13px; font-style:arial;'>"$seitennummer ."</a>&nbsp;&nbsp;&nbsp;";
    echo 
    "<font face='arial color='black' style='font-size:13px;'>|&nbsp;&nbsp;&nbsp;</font>";
    $start=$start+$step;
    $seitennummer++;
    $aktuelleseitenanzahl++;
    }

    if(
    $divrest!=0)
    {
    echo 
    "&nbsp;<a href='gb_show.php3?oos=2&start="$start ."&step="$step ."' style='color:darkblue; font-size:13px; font-style:arial;'>"$seitennummer ."</a>&nbsp;&nbsp;&nbsp;";
    }
    }


    Vielen Dank für eure Hilfe...
    ich muss nochmal dazu sagen dass bei mir auf dem localhost das Script einwandfrei funzt!!!!!
    Zuletzt geändert von trekkie2003; 03.08.2003, 18:02.
    www.hsv-hockenheim.com
    www.carl-theodor-schule.de
    www.hockenheimring.de
    www.uni-heidelberg.de

  • #2
    LOL. das liegt nicht an puretec... das liegt an dir ...

    du hast eine fehlermeldung.
    Warning: 0 is not a MySQL result index in /homepages/5/d24808579/htdocs/db/gb_show_puretec.php3 on line 24

    da sieht man, dass irgendwas an der sql-abfrage nicht stimmt.

    mache das mal so....
    PHP-Code:
    $ergebnis=mysql_query($sql_befehl,$verbindung) or die(mysql_error()); 
    und gewöhne dir mal das or die(mysql_error()) an.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      was sagt denn mysql_error() ?
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        error

        Das sagt mysql_error()...
        meiner meinung nach nicht sehr aussagekräftig:

        You have an error in your SQL syntax near ' ' at line 1

        Hoffe das sagt euch irgendwas..ich finde keinen Fehler in meiner Abfragesyntax....
        www.hsv-hockenheim.com
        www.carl-theodor-schule.de
        www.hockenheimring.de
        www.uni-heidelberg.de

        Kommentar


        • #5
          schon aussagekräftig Dein SQL ist falsch.
          $sql_befehl="SELECT * FROM gaestebuch ORDER BY zeitstempel DESC LIMIT $start , $step";
          }
          $start und $step haben einen Inhalt????????
          Wo kommen die her?
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            $start und $step

            Hi Mello,
            Ich überbegebe $start und $step nur, wenn oos=2 ist...(das wird in folgendem Script überprüft, das sich in einer anderen Datei befindet...)
            Und dieses Script habe ich dir hier gepostet, damit du einen besseren überblick hast...


            PHP-Code:
            <?php
            $server
            ="localhost"//// Die Daten sind ordnungsgemäß geändert wenn ich die Datei auf den //Puretec-Server stelle...

            $user="";
            $passwort="";
            $step=5;
            $start=0;
            $verbindung=mysql_connect($server,$user,$passwort);
            mysql_select_db("db43239736",$verbindung);
            $sql_befehl="SELECT * FROM gaestebuch";
            $ergebnis=mysql_query($sql_befehl,$verbindung);
            $anzahldaten=mysql_num_rows($ergebnis);
            mysql_free_result($ergebnis);
            mysql_close($verbindung);


            //Es wird eine Variable oos(OnlyOneSite [Nur eine Site]) übergeben: 1 bedeutet 'Ja, nur eine Site kann mit Einträgen gefüllt werden'
            // 2 bedeutet 'Nein, da zu zu viele Einträge (mehr als $step [standardwert von $step ist 5] vorhanden sind braucht man mehrere Seiten'
            //das wird per link weitergegeben an das Script das ich am anfang //gepostet habe
            if ($anzahldaten $step)
            {
            $oos=1;
            echo 
            "<Script language='JavaScript'>";
            echo 
            "window.location.href='gb_show.php3?oos="$oos ."';";
            echo 
            "</Script>";
            echo 
            "<font face='arial' color='black' style='font-size:13px;'>Falls Ihr Browser nicht weiterleitet, klicken Sie bitte ";
            echo 
            "<a href='gb_show.php3?oos=1'>hier</a></font>";
            }
            else
            {
            $oos=2;
            echo 
            "<Script language='JavaScript'>";
            echo 
            "window.location.href='gb_show.php3?oos=2&start="$start ."&step="$step ."';";
            echo 
            "</Script>";
            echo 
            "<font face='arial' color='black' style='font-size:13px;'>Falls Ihr Browser nicht weiterleitet, klicken Sie bitte ";
            echo 
            "<a href='gb_show.php3?oos="$oos ."&start="$start ."&step="$step ."'>hier</a></font>";
            }
            Du hast die if-abfrage in dem Script, übersehen...wenn oos=1 dann ist $sql_befehl anders als wenn oos einen anderen Wert hat..es wird ja per link der wert von oos übergeben und jenachdem wie der wert ist entscheidet mein script welcher sql_befehl ausgeführt wird....


            // oos=OnlyOneSite Siehe Definition in Datei 'gb_check_show.php3'
            //OnlyOneSite=1, D.h. also Ja
            if ($_GET["oos"]==1)
            {
            $sql_befehl="SELECT * FROM gaestebuch ORDER BY zeitstempel DESC";
            }
            else
            {
            // oos!=1 also z.B. oos=2 was Bedeutet das mehr also eine Site gebraucht wird
            $sql_befehl="SELECT * FROM gaestebuch ORDER BY zeitstempel DESC LIMIT $start , $step";
            }
            //Hole Daten vom DB
            $ergebnis=mysql_query($sql_befehl,$verbindung);
            Ich gehe ab morgen in Urlaub und kann deshalb auf die posts nicht antworten. Wenn ich aber weider aus dem Urlaub zurück bin setze ich mich aber natürlich wieder dran!!!
            Tschau und bis die Tage!
            trekkie2003
            www.hsv-hockenheim.com
            www.carl-theodor-schule.de
            www.hockenheimring.de
            www.uni-heidelberg.de

            Kommentar


            • #7
              wenn du wieder da bist, mach doch bitte mal
              PHP-Code:
              echo $sql_befehl
              direkt vor dem mysql_error

              btw: du übergibst oos, start und step per link, verwendest im skript aber $_GET['oos'] und $start, $step
              hat das nen tieferen sinn?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                bin wieder da!!!

                Hi Leutz, bin wieder aus dem Urlaub zurück!!! Und habe mir mal Gedanken über mein Prob gemacht...Und ich muss sagen, dass mrhappiness den nagel auf den Kopf getroffen. es lag an der supervariablen... anscheinend hat puretec die deaktiviert, so dass ich vars die per link übergeben werden nicht mit $_GET usw... abfragen muss!
                Ich habe das mit dem echo $sql_befehl; gemacht und geschaut in welchen schleifentiel er reinläuft... und siehe da er ist immer in den zweiten Teil gelaufen, wo auch noch LIMIT angegeben werden muss... ($start und $step)... da ich bei oos=1 kein $start und $step übergebe.. kam der Fehelr in der sql-Syntax zustande...Danke für eure tolle Hilfe!!!!!

                Tschau bis bald!!!
                trekkie2003
                www.hsv-hockenheim.com
                www.carl-theodor-schule.de
                www.hockenheimring.de
                www.uni-heidelberg.de

                Kommentar

                Lädt...
                X