Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Problem

Einklappen

Neue Werbung 2019

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

  • MySQL Problem

    Hallo,
    ich bins mal wieder. Ich bastle gerade ein TOP10 Download Script welches die 10 am meisten heruntergeladenen Dateien anzeigt. Dieses Script hat eine kleine Besonderheit den vorher müssen noch ein paar Daten von einer Tabelle in eine andere geschrieben werden. Mein Problem ist das ich bei den ersten beiden While Schleifen immer folgenden Error bekomme:

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/bmc/top10.php on line 26

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/bmc/top10.php on line 40

    Das ist ja nicht ungewöhliches nur bei der letzten While Schleife die das eigentliche Endergebnis ausgibt kommt dieser Error nicht obwohl er bis auf den Query genau gleich ist.

    Hier mein Script:

    PHP-Code:
    <?php
    $connect 
    mysql_connect($server$user$pw);
    $db mysql_select_db("web11");
    $sql "SELECT * FROM `pml_movieprop` WHERE PropID = 3";
    $result mysql_query($sql);
    echo 
    $result;
    mysql_close();
    while(
    $row=mysql_fetch_assoc($result)) {
                     
    $connect mysql_connect($server$user$pw);
                    
    $db mysql_select_db("web11");
                    
    $sql "UPDATE `pml_movielink` SET name = '".$row['Property']."'WHERE MovieID=".$row['MovieID'];
                    
    $result mysql_query($sql);
                    
    mysql_close();
    }


    $connect mysql_connect($server$user$pw);
    $db mysql_select_db("web11");
    $sql "SELECT * FROM `pml_movieprop` WHERE PropID = 17";
    $result mysql_query($sql);
    mysql_close();
    while(
    $row=mysql_fetch_assoc($result)) {
                     
    $connect mysql_connect($server$user$pw);
                    
    $db mysql_select_db("web11");
                    
    $sql "UPDATE `pml_movielink` SET image = '".$row['Property']."'WHERE MovieID=".$row['MovieID'];
                    
    $result mysql_query($sql);
                    
    mysql_close();
    }





    $connect mysql_connect($server$user$pw);
    $db mysql_select_db("web11");
    $sql "SELECT * FROM `pml_movielink` ORDER BY `DloadCount` ASC LIMIT 0, 10";
    $result mysql_query($sql);
    mysql_close();
    while(
    $row=mysql_fetch_assoc($result)) {
            print(
    "<tr><td>".$row['DloadCount']."</td><td><img src=\"http://max-welt.de/bmc/pml/".$row3['Property']."\"></td><td><a href=\"http://max-welt.de/bmc/pml/popup.php?Active=Filme&&ID=".$row['MovieID']."\">".$row['Property']."</a></td></tr>");
            
            }
            
            



    ?>

  • #2
    error_reporting(E_ALL) verwenden. Im Zweifelsfall display_errors auf true setzen.
    mysql_errno/mysql_error verwenden, um mysql-Fehler zu erkennen und anzuzeigen.
    Im Zweifelsfall sql-Statements per echo ausgeben lassen.
    Es ist nicht notwendig und eher schädlich, wenn wieder und wieder und wieder eine neue Verbindung zum Datenbankservr aufgebaut wird und web11 ausgewählt wird.

    Mit JOINs kannst Du Dir die Abfragen über die while-Schleife sparen. Schneller. übersichtlicher und sow, wie es Datenbanken gerne haben.
    http://www.google.de/search?&q=sql%20join

    Kommentar


    • #3
      So habe ich mal alles gemacht. Habe auch mal $result vor der 1sten while schleife ausgeben lassen.
      Ich erhalte folgende Ausgabe:

      Resource id #3


      Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/bmc/top10.php on line 29

      Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/bmc/top10.php on line 43

      Notice: Undefined index: Property in /srv/www/htdocs/bmc/top10.php on line 61


      Mein Fehler ist also noch nicht behoben! Bitte helft mir!

      Kommentar


      • #4
        $result per echo ausgeben lassen ist Quatsch.
        Das sql-Statement (nicht die Ergebnis resource) sollst Du ausgeben lassen. Also die Zeichenkette, in der SELECT/UPDATE/INSERT usq. drinsteht.
        Beste Lösung ist immer noch sql JOIN lernen und verstehen.
        Hier, gleich der erste link der google-Suche sieht gut aus: http://www.w3schools.com/sql/sql_join.asp

        while-Schleife sparen, Mehrfachabfragen sparen, Zeit sparen, Fehler sparen.

        Kommentar

        Lädt...
        X