Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Problem

Einklappen

Neue Werbung 2019

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

  • b++
    hat ein Thema erstellt MySQL Problem.

    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>");
            
            }
            
            



    ?>

  • Gast-Avatar
    Ein Gast antwortete
    $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.

    Einen Kommentar schreiben:


  • b++
    antwortet
    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!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:

Lädt...
X