Warning: mysql_fetch_assoc(): php/sql

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


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

        Comment


        • #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

          Comment


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

            Comment


            • #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

              Comment


              • #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

                Comment


                • #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

                  Comment


                  • #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.

                    Comment


                    • #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
                      Last edited by andrassberlin; 22-02-2006, 04:40.

                      Comment


                      • #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

                        Comment


                        • #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.

                          Comment


                          • #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

                            Comment

                            Working...
                            X