Warning: mysql_fetch_assoc(): php/sql

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

  • Warning: mysql_fetch_assoc(): php/sql

    Hallo,

    zuerst meine Fehlermeldung:

    PHP-Code:
    Warningmysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in 
    C
    :\apache\xampp\htdocs\pflege\home\html\service\recherche_bland.php on line 48 
    Zeile 48:
    PHP-Code:
    while($row mysql_fetch_assoc($result)) 
    Und hier mein gekürztes Script:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    include(
    './config.php');
    $bundesland $_POST["Bundesland"];

    $seite = (isset($_GET["seite"]))?$_GET['seite']:'1';
    //Festlegen Einträge je Seite
    $eintraege_pro_seite 2;

    //Welche Spalte zu erst?:
    $start $seite $eintraege_pro_seite $eintraege_pro_seite;


    $result mysql_query("SELECT COUNT(dlbl) FROM dbdl WHERE 
    dlbl='"
    .$bundesland."'") or die(mysql_error());
    $menge mysql_num_rows($result);

    //Wieviele Seiten insgesamt?
    $anzahl_seiten $menge $eintraege_pro_seite;


    echo 
    "<div align=\"center\">";
    echo 
    "<b>Seite:</b> ";


    for(
    $a=0$a $anzahl_seiten$a++)
       {
       
    $b $a 1;

        echo (
    $seite==$b)?"<b><i>$b</i></b>":" <a href=\"
    index.php?site=./home/html/service/recherche_bland.php&seite=
    $b\">$b</a> ";
       }

    echo 
    "</div>";


        
    $sql "SELECT * FROM dbdl ORDER BY bname ASC LIMIT $start WHERE DLBL='$bundesland', $eintraege_pro_seite";
        
    $result mysql_query($sql);

        while(
    $row mysql_fetch_assoc($result))
        {
                     
    $pdname $row["DLNAME"];


                     echo 
    ' Hier die Ausgabe in Tabellenform  ';  
            }

    ?>
    Mein Script soll die Datenbankabfrage auf mehrere Seiten verteilen.
    Zuerst ermittelt es alle Einträge in der Spalte dlbl (keine ID, sondern Wörter). Später fragt es die Tabelle nach einzelnen Spalteninhalten ab und gibt diese je nach $eintraege_pro_seite aus. Die Seiten werden zwar angeziegt, aber anschließend bekomme ich immer diese Fehlermeldung .
    Warum?

    Vielen Dank schon mal,
    Andreas

  • #2
    PHP-Code:
    $sql "SELECT * FROM dbdl ORDER BY bname ASC LIMIT $start WHERE DLBL='$bundesland', $eintraege_pro_seite"
    da is der fehler.
    du kannst nicht WHERE nach LIMIT setzen, LIMIT kommt immer ganz am schluss..
    1123581321

    Kommentar


    • #3
      Hallo Enerkin,

      vielen Dank für die rasche Antwort.

      Ich habe das geändert.
      PHP-Code:
      $sql "SELECT * FROM dbdl WHERE DLBL='$bundesland' LIMIT $start$eintraege_pro_seite"
      Jetzt wird aber immer nur ein Eintrag angezeigt, trotz 4 Tabelleneinträgen werden keine weiteren drei Seiten angezeigt. Ich komm da nicht mit klar. Es stimmt doch alles!

      Hast Du noch eine Idee?


      Andreas

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...threadid=50454
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          PHP-Code:
          error_reporting(E_ALL); 
          und
          PHP-Code:
          $result mysql_query("SELECT COUNT(DLBL) FROM dbdl WHERE dlbl='".$bundesland."'") or die(mysql_error()); 
          und
          PHP-Code:
          $result mysql_query($sql) or die(mysql_error()); 
          sind aber im Code eingebaut.

          Es gibt keine Fehlermeldungen,

          Andreas

          Kommentar


          • #6
            Und wo sind deine Kontrollausgaben des Query Strings?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Meinst Du das so:
              PHP-Code:
              $sql "SELECT * FROM dbdl WHERE DLBL='$bundesland' LIMIT $start$eintraege_pro_seite";
              $result mysql_query($sql) or die(mysql_error($sql)); 
              ?

              Falls Du das so meinst, dann muß ich Dich leider enttäuschen: keine Meldungen.
              ...Bin ja schon froh, dass ich überhaupt schon so viel geschafft habe...
              Wenn ich falsch liege, würdest Du mir bitte sagen, wie Du das mit den Kontrollausgaben des Query Strings meinst?

              Vielen Dank, Andreas

              Kommentar


              • #8
                Hallo,

                erhalte jetzt folgende Fehlermeldung:
                PHP-Code:
                NoticeUndefined indexBundesland in C:\apache\xampp\htdocs\pflege\home\html\service\recherche_bland.php on line 4 
                line 4:
                PHP-Code:
                $bundesland $_POST["Bundesland"]; 
                ICh habe jetzt einfach die Id's auszählen lassen und das läuft problemlos. Auch die Anzahl der Seiten werden angezeigt. Jedoch wird die Variable $bundesland nicht übergeben wenn ich Seite 2 wähle, trotzdem Sie ja im Quelltext enthalten ist. Auf der 1. Seite gibt es die Variable noch. Ich finde keine Lösung für das Problem. Da hier sicherlich einige Experten sind: wer gibt mir noch einen Tip?

                Danke,
                Andreas

                Kommentar


                • #9
                  Es ist sicherlich der Quelltext erforderlich um dem Problem auf den Grund zu gehen:
                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);
                  $bundesland $_POST["Bundesland"];
                  ?>
                  ...
                  <?php

                  $seite 
                  = (isset($_GET["seite"]))?$_GET['seite']:'1';
                  $eintraege_pro_seite 2;

                  //Ausrechen welche Spalte man zuerst ausgeben muss:
                  $start $seite $eintraege_pro_seite $eintraege_pro_seite;


                  $result mysql_query("SELECT Id FROM dbdl WHERE dlbl='".$bundesland."'") or die(mysql_error());
                  $menge mysql_num_rows($result) or die (mysql_error().'<hr />'.'$result'.'<hr />');

                  //Errechnen wieviele Seiten es geben wird
                  $anzahl_seiten $menge $eintraege_pro_seite;


                  echo 
                  "<div align=\"center\">";
                  echo 
                  "<b>Seite:</b> ";


                  for(
                  $a=0$a $anzahl_seiten$a++)
                     {
                     
                  $b $a 1;

                      echo (
                  $seite==$b)?"<b><i>$b</i></b>":" <a href=\"index.php?site=./home/html/service/recherche_bland.php&seite=$b\">$b</a> ";
                     }

                  echo 
                  "</div>";


                      
                  $sql "SELECT * FROM dbdl ORDER BY bname ASC LIMIT $start$eintraege_pro_seite";
                      
                  $result mysql_query($sql) or die (mysql_error().'<hr />'.'$sql'.'<hr />');

                           if (
                  mysql_num_rows($result)>0
                          {

                       while(
                  $row mysql_fetch_assoc($result))
                      {
                                   
                  $pdname $row["DLNAME"];
                          ...

                         echo 
                  ' Ausgabe der Ergebnisse';
                      }
                  }
                  else {
                      echo
                  '
                               nix gefunden!'
                  ;
                       }


                  ?>
                  Wie bereits geschrieben: Alles funzt wunderbar bis auf die Weiergabe der Varaiblen $bundesland. Auf Seite 1 ist diese ok wird also ausgegeben. Aber nach link auf Seite 2 ist sie weg!
                  Warum? Keine Fehlermeldung!
                  Wer weiß Rat?

                  Vielen Dank,
                  Andreas

                  Kommentar


                  • #10
                    wenn du über Link kommst, dann gibt es nichts in $_POST, also gibt Bundesland mit im Link als URL-Variable mit, dann kannst du mit $_GET auslesen.

                    Kommentar


                    • #11
                      Erst einmal danke für Deine Antwort!

                      Habs mal so probiert erfolgreiche Übergabe:
                      PHP-Code:
                      echo ($seite==$b)?"<b><i>$b</i></b>":" <a href=\"index.php?site=./home/html/service/
                      recherche_bland.php&var=
                      $bundesland&seite=$b\">$b</a> "
                      Das mit der Übergabe in der url klappt, wie gesagt. ;-) Aber wie baue ich diese ein?
                      Ich bekomme das erste mal $bundesland von einem swf-file (landkarte Deutschland). Durch klick auf ein Bundesland wird die variable auf die Seite recherche_bland.php miitels post übergeben. Dann erscheinen also je nach Anzahl der Tabellenelemente pro Seite die Einträge. WEitere Einträge sollen dann mitklick auf die nächsten Seiten angezeigt werden. Aber wie vermittle ich dann zwischen $_Post und $_Get ?

                      Andreas
                      Zuletzt geändert von andrassberlin; 22.02.2006, 04:40.

                      Kommentar


                      • #12
                        $_POST und $_GET in einer Datei?

                        Hallo,

                        PHP-Code:
                        NoticeUndefined indexBundesland in ...recherche_bland.php on line 4 
                        , alos in :$bundesland = $_POST["Bundesland"];


                        ich habe mir ein Script geschrieben, dass Tabelleninhalte abfragt und auf mehreren Seiten verteilt. Der Wert der Variablen $bundesland wird von einem swf-file via $_POST an recherche_bland.php gesendet. Dort wird die Tabelle ausgelesen. Sind viele Einträge innerhalb der Tabelle und die $einträge_pro_seite geringer, werden alle weiteren Einträge auf andere Seiten via $_GET verteilt. Das klappt soweit ganz gut. Aber die Variable $bundesland wird dann nicht via $_POST übergeben sondern nur über $_GET. Wäre es denn überhaupt möglich ein und dieselbe variable einmal mit $_POST und dann wieder mit $_GET zu übergeben und falls nein: wie könnte man das besser machen? Da ich noch nicht so fit im Umgang mit php bin, wäre ich für verständliche Hinweise sehr dankbar.

                        hier der stark gekürzte Quellcode:
                        PHP-Code:
                        <?php
                        error_reporting
                        (E_ALL);
                        include(
                        './config.php');
                        $bundesland $_POST["Bundesland"];
                        $bundesland$_GET['Bundesland'];


                        $seite = (isset($_GET["seite"]))?$_GET['seite']:'1';
                        $eintraege_pro_seite 1;

                        //Ausrechen welche Spalte man zuerst ausgeben muss:
                        $start $seite $eintraege_pro_seite $eintraege_pro_seite;


                        $result mysql_query("SELECT Id FROM dbdl WHERE dlbl='".$bundesland."'") or die(mysql_error());
                        $menge mysql_num_rows($result) or die (mysql_error($result));

                        //Errechnen wieviele Seiten es geben wird
                        $anzahl_seiten $menge $eintraege_pro_seite;


                        echo 
                        "<div align=\"center\">";
                        echo 
                        "<b>Seite:</b> ";


                        for(
                        $a=0$a $anzahl_seiten$a++)
                           {
                           
                        $b $a 1;

                            echo (
                        $seite==$b)?"<b><i>$b</i></b>":" <a href=\"index.php?site=./home/html/service/
                                   recherche_bland.php&var=
                        $bundesland&seite=$b\">$b</a> ";
                           }

                        echo 
                        "</div>";


                            
                        $sql "SELECT * FROM dbdl WHERE dlbl='".$bundesland."' LIMIT $start$eintraege_pro_seite";
                            
                        $result mysql_query($sql) or die (mysql_error($sql));

                                 if (
                        mysql_num_rows($result)>0) { // gibt es Tabelleneinträge?
                            
                                 
                        while($row mysql_fetch_assoc($result))
                            {
                                         
                        $pdname $row["DLNAME"];

                                         echo 
                        ' ... tabellarische Ausgabe ';
                            }
                        }
                        else { 
                        //falls keine Einträge 
                            
                        echo ' ...Ausgabe: leer ';
                             }


                        ?>
                        Andreas

                        Kommentar


                        • #13
                          Re: $_POST und $_GET in einer Datei?

                          OffTopic:
                          *seufz* Noch jemand, der sich offenbar entschieden hat, mit einem Trivialproblem nach dem anderen ins Forum gerannt zu kommen ...


                          Warum fragst du nicht ab, ob $_GET['xyz'] oder $_POST['xyz'] gesetzt sind und einen Wert enthalten - und nimmst dann jeweils diesen?

                          Oder du benutzt gleich $_REQUEST.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            ... aber das ist doch der Sinn eines Forums...

                            Danke für Deine Anwort, werd' ich mal probieren. FAlls es nicht klappt, werde ich sicherlich noch einmal hier posten...


                            Andreas

                            Kommentar

                            Lädt...
                            X