Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler bei einer Datenbank-Abfrage

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

  • Fehler bei einer Datenbank-Abfrage

    Folgendes liegt vor :

    Eine Datenbank enthält eine Liste mit Modellen von verschiedenen
    Konstrukteuren aus verschiedenen Kategorien.

    Solange ich keine gezielte Auswahl treffe, wird die Liste korrekt
    angezeigt.
    Wenn ich aber die Anzeige auf einen bestimmten Kon oder eine
    bestimmte Kategorie beschränken will, erhalte ich folgende
    Fehlermeldung :
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\Dettmann\eep_free_list.p hp on line 36

    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\Dettmann\eep_free_list.p hp on line 45
    Die zugehörigen Codes sehen wie folgt aus :

    1. Auswahl (verkürzt)
    PHP-Code:
    <form action="eep_free.php?do=1" method="post">
      <
    strong>Kategorie w&auml;hlen : </strong>
      <
    select name="kat" size="1">
        <
    option>alle</option>
        <
    option>Rollmaterial</option>
        <
    option>Gleisobjekte</option>
      </
    select>
      <
    strongKonstrukteur w&auml;hlen : </strong>
      <
    select name="kon" size="1">
        <
    option>alle</option>
        <
    option>AB2</option>
        <
    option>AD1</option>
        </
    p>
      </
    select>
      <
    input type="submit" value="Anzeigen">
    </
    form
    2. Vorbereitung (eep_free.php)
    PHP-Code:
    $kat $_POST["kat"];
    $kon $_POST["kon"];
    include (
    "include/db_connecteep.inc.php");
    if (
    $kat == "alle" and $kon == "alle")
      {
      
    $sort "";
      include (
    "eep_free_list.php");
      }
    if (
    $kat != "alle" and $kon == "alle")
      {
      
    $sort "kat = '$kat'";
      include (
    "eep_free_list.php");
      }
    if (
    $kat == "alle" and $kon != "alle")
      {
      
    $sort "kon = '$kon'";
      include (
    "eep_free_list.php");
      } 
    3. Datenbank-Abfrage (eep_free_list.php)
    PHP-Code:
    <?php
    if ($sort == "")
      {
      
    $query "SELECT * FROM eep_free ORDER BY name limit {$query_string}";
      }
    else
      {
      
    $query "SELECT * FROM eep_free ORDER BY name WHERE $sort limit {$query_string}";
      }
    $result mysql_query($query);

    ?>
    <table>
    <?php
    while($row mysql_fetch_object($result))  //Zeile 36
      
    {
      print 
    give_style($row->name$row->text);
      }
    ?>
    </table>
    <br>
    <?php

    mysql_free_result
    ($result);  //Zeile 45
    ?>
    Ich habe jetzt seit zwei Tagen nach einem Fehler gesucht.
    Mittlerweise fange ich an, in den Codes kleine grüne Männchen
    zu sehen.

    Erkennt hier jemand den/die Fehler in der Codierung ?
    Wenn ja, bitte umgehend Bescheid geben, bevor ich noch
    wahnsinnig werde ( ).

    Gruß, Mike
    sigpic
    Mike's EEP-Welt CSC Oldenburg
    Link-Sammlung Smily-Sammlung

  • #2
    AW: Fehler bei einer Datenbank-Abfrage

    Bist du sicher, dass die MySQL-Verbindung steht? Sicher, dass die Tabelle existiert?

    Hinter jeder MySQL-Funktion einfach "or die(mysql_error());" schreiben.
    Spielerei
    Dokus: SelfHTML, CSS4you, PHP.net
    Validatoren: Validome xHTML / XML Validator, W3C CSS Validator, FeedValidator (RSS, ATOM)

    Kommentar


    • #3
      AW: Fehler bei einer Datenbank-Abfrage

      Gib auch bitte mal in Zeile 35 ein:

      echo $result;

      Damit man sieht ob dort alles richtig drin gespeichert wird
      Meine neue private Homepage ist fertig. Es wird um Meinungen, Anregungen, Kritik und Gästebucheinträge gebeten: http://markus.ug-team.de

      Kommentar


      • #4
        AW: Fehler bei einer Datenbank-Abfrage

        PHP-Code:
          $query "SELECT * FROM eep_free ORDER BY name WHERE $sort limit {$query_string}"
        Was ist denn das für eine Abfrage?
        Erstens: WHERE-Bedingung kommt vor die ORDER-Abfrage
        Zweitens: Was soll WHERE $sort bedeuten? Was steht in $sort drin?
        Drittens: Vielleicht hilft es ja mal die Variablen zu escapen

        Kommentar


        • #5
          AW: Fehler bei einer Datenbank-Abfrage

          @FloB

          Die Verbindung besteht, die Datenbank existiert.
          Sonst würde ich ja wohl bei einer Abfrage ohne
          Auswahl-Kriterien keine Anzeige bekommen.
          Hinter jeder MySQL-Funktion einfach "or die(mysql_error());" schreiben.
          Siehe dazu
          PHP-Code:
          $ergebnis mysql_query($sqlabfrage) or die("Fehler in SQL-Abfrage!"); 
          Es wird kein Fehler bezüglich Datenbank-Zugriff angezeigt.

          @Laire

          Da ich bei Abfrage ohne Auswahl-Kriterien eine Anzeige
          erhalte, müssen die Einträge ja wohl korrekt sein.

          @No0oB

          Hättest du meinen ersten Post gelesen, dann wüßtest du es.
          Hier noch einmal zur Erinnerung :
          PHP-Code:
          $kat $_POST["kat"]; 
          $kon $_POST["kon"]; 
          include (
          "include/db_connecteep.inc.php"); 
          if (
          $kat == "alle" and $kon == "alle"
            { 
            
          $sort ""
            include (
          "eep_free_list.php"); 
            } 
          if (
          $kat != "alle" and $kon == "alle"
            { 
            
          $sort "kat = '$kat'"
            include (
          "eep_free_list.php"); 
            } 
          if (
          $kat == "alle" and $kon != "alle"
            { 
            
          $sort "kon = '$kon'"
            include (
          "eep_free_list.php"); 
            } 
          Ich habe bereits andere Abfragen (ohne Variablen) auf die gleiche Weise
          ausgeführt. Die Reihenfolge hat hierbei nie eine Rolle gespielt.

          @all

          Ich vermute, daß der Fehler in der Abfrage zu finden ist.
          Denn bei
          PHP-Code:
          $query "SELECT * FROM eep_free ORDER BY name limit {$query_string}"
          gibt es keinerlei Probleme, während bei
          PHP-Code:
          $query "SELECT * FROM eep_free ORDER BY name WHERE $sort limit {$query_string}"
          der im ersten Post genannte Fehler auftritt.

          Bitte weitere Anregungen. Danke.

          Gruß, Mike
          sigpic
          Mike's EEP-Welt CSC Oldenburg
          Link-Sammlung Smily-Sammlung

          Kommentar


          • #6
            AW: Fehler bei einer Datenbank-Abfrage

            trag mal bitte in das Query statt deiner variablen direkt den eigentlichen Inhalt deiner variablen ein und guck obs dann geht.
            Wenn ja dann liegt der Fehler bei der Übergabe der Variablen an das Query.


            Ich hab die Syntax anders gelernt. Ich unterbreche eigentlich immer an den Stellen wo Variablen stehen das Query, füge die variablen ein und setze dann fort.

            Also so in etwa: "Select * from tabelle Where id='" . $gesuchte_id . "' Sort by gelb";
            nicht von mir gemacht, nur von mir empfohlen:
            Die Goldenen Regeln für Schlechtes HTML
            :gott: SelfHTML
            Farben - Lehre, Wirkung, Harmonie

            Kommentar


            • #7
              AW: Fehler bei einer Datenbank-Abfrage

              @Blues

              Mir ist aufgefallen das dein Code keine Leerzeichen aufweist.
              Bei mir
              PHP-Code:
              kat '$kat' 
              stehen Leerzeichen. Kann hier der Fehler liegen ?

              Gruß, Mike
              sigpic
              Mike's EEP-Welt CSC Oldenburg
              Link-Sammlung Smily-Sammlung

              Kommentar


              • #8
                AW: Fehler bei einer Datenbank-Abfrage

                kurz noch: woher kommt die variable $query_string?

                fang am besten langsam an:

                1. error_reporting(E_ALL|E_STRICT);
                2. var_dump($_POST);
                3. lass dir deine querys per echo ausgeben (damit die variablen aufgelöst werden) und führ sie unter zuhilfe name von phpmyadmin aus.
                4. es hilft auch immer, seine querys zurückzuentwickeln, streiche also einfach testweise alle WHERE, SORT usw. bedingungen, allerdings eins nach dem anderen. so kannst du den fehler einkreisen....

                gruß
                AC/DC Fanpage www.ifyouwantblood.de
                Nein zur Zensur im Internet und anderswo - Anonymous

                Kommentar


                • #9
                  AW: Fehler bei einer Datenbank-Abfrage

                  Hi all,

                  ich habe jetzt mal alle möglichen Varianten ausprobiert.
                  Sogar eine direkt eingegebene Abfrage
                  PHP-Code:
                  $query "SELECT * FROM eep_free WHERE kon = AB2 ORDER BY name limit {$query_string}"
                  ergab die selbe Fehler-Meldung.

                  @Brian

                  Betreffs der Herkunft von $query_string :
                  PHP-Code:
                  $query mysql_query("SELECT * FROM eep_free");
                  $result mysql_num_rows($query);
                  $entries_per_page '10';
                  $pages ceil($result $entries_per_page);

                  if (empty(
                  $_GET['seite']))
                    {
                    
                  /* Unsere Defaultabfrage */
                    
                  $query_string $entries_per_page;
                    }
                  else
                    {
                    
                  /* Es wurde eine Seite gewählt */
                    
                  $the_start $_GET['seite'] * $entries_per_page $entries_per_page;
                    
                  $query_string $the_start.','.$entries_per_page;
                    } 
                  @all

                  So bald ich die Ausgabe eingrenzen will auf bestimmte Kategorien
                  oder bestimmte Kons, benötige ich die "WHERE"-Angabe.
                  Diese wird aber so nicht angenommen.

                  So langsam beschleicht mich das Gefühl, diese Codierung mag
                  mich nicht.

                  Was kann ich jetzt noch ändern / testen

                  Gruß, Mike
                  sigpic
                  Mike's EEP-Welt CSC Oldenburg
                  Link-Sammlung Smily-Sammlung

                  Kommentar


                  • #10
                    AW: Fehler bei einer Datenbank-Abfrage

                    Um das AB2 sollten Anführungszeichen kommen, sofern das ein String sein soll

                    Kommentar


                    • #11
                      AW: Fehler bei einer Datenbank-Abfrage

                      @No0oB

                      AB2 ist ein direkter Begriff, kein String.
                      Daher werden hier keine Anführungszeichen benötigt.

                      Gruß, Mike
                      sigpic
                      Mike's EEP-Welt CSC Oldenburg
                      Link-Sammlung Smily-Sammlung

                      Kommentar


                      • #12
                        AW: Fehler bei einer Datenbank-Abfrage

                        Und was für ein Datentyp ist es?
                        Auch bei varchar werden diese gesetzt

                        Kommentar


                        • #13
                          AW: Fehler bei einer Datenbank-Abfrage

                          Zitat von sheeba1507 Beitrag anzeigen
                          Hi all,

                          ich habe jetzt mal alle möglichen Varianten ausprobiert.
                          Sogar eine direkt eingegebene Abfrage
                          PHP-Code:
                          $query "SELECT * FROM eep_free WHERE kon = AB2 ORDER BY name limit {$query_string}"
                          ergab die selbe Fehler-Meldung.
                          wenn ich direkt als "manuell" verstehe, ist die abfrage falsch...wie lautet die fehlermeldung?

                          Was kann ich jetzt noch ändern / testen
                          wie gesagt, das zurückentwickeln des querys...

                          PHP-Code:
                          $query "SELECT * FROM eep_free ORDER BY name"
                          PHP-Code:
                          $query "SELECT * FROM eep_free limit {$query_string}"
                          PHP-Code:
                          $query "SELECT * FROM eep_free"
                          eins nach dem anderen probieren. was nicht funktioniert, sollte den fehler behalten.
                          hilfreich ists auch, wie schon gesagt, das ganze in phpmyadmin zu prüfen...
                          AC/DC Fanpage www.ifyouwantblood.de
                          Nein zur Zensur im Internet und anderswo - Anonymous

                          Kommentar


                          • #14
                            AW: Fehler bei einer Datenbank-Abfrage

                            @Brain

                            Die Abfrage soll alle Modelle des Kons AB2 anzeigen.
                            Die Fehlermeldung lautet
                            Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\Dettmann\eep_free_list.p hp on line 36

                            Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\Dettmann\eep_free_list.p hp on line 45
                            Das zurückentwickeln des querys habe ich gemacht.
                            Es werden keine Fehler angezeigt.
                            Lediglich bei der Verwendung von WHERE tritt der Fehler
                            wieder auf.

                            Gruß, Mike
                            sigpic
                            Mike's EEP-Welt CSC Oldenburg
                            Link-Sammlung Smily-Sammlung

                            Kommentar


                            • #15
                              AW: Fehler bei einer Datenbank-Abfrage

                              Hast du die Variablen mal escaped?

                              Kommentar

                              homepage-forum.de - Hilfe für Webmaster! Statistiken

                              Einklappen

                              Themen: 56.902   Beiträge: 430.945   Mitglieder: 28.655   Aktive Mitglieder: 47
                              Willkommen an unser neuestes Mitglied, bluey2021.

                              Online-Benutzer

                              Einklappen

                              193 Benutzer sind jetzt online. Registrierte Benutzer: 2, Gäste: 191.

                              Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

                              Die neuesten Themen

                              Einklappen

                              Die neuesten Beiträge

                              Einklappen

                              Lädt...
                              X