DB-Abfrage gibt nicht alle Datensätze aus

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

  • DB-Abfrage gibt nicht alle Datensätze aus

    Hallo,
    brauche dringend Hilfe. Habe ein Script, dass mir alle Datensätze aus einem Select-Formular ausgeben soll. Klappt soweit, aber er gibt mir jeweils nur ein DS aus, obwohl mehrere in der MySQL-DB stehen, die die Selct-Anforderung erfüllen.
    Bin in PHP und MySQL Neuling.

    Hier der Code des Abfrage-Formulars.
    <form action="abfrage_lk.php" method="post">

    Welcher Landkreis? <select name="ort" id="ort" size="1" >
    <option> </option>
    <option>Altenburg</option>
    <option>Erfurt</option>
    <option>Weimar</option>
    <option>Gotha</option>
    </select>
    <input type="hidden" name="ausgefullt" value="1">
    <input type="reset" value="Zur&uuml;cksetzen" name="reset">
    <input type="submit" value="Anfrage starten" name="submit">
    </form>

    Hier der Code vom Abfrage-Script:

    PHP-Code:
    <?php
    $db 
    mysql_connect("localhost""xxxxx""xxxxx");
    mysql_select_db("xxxxx");
    ?>
    <table width="70%" > 
    <?
    $initi=trim($_POST["ort"]); 
    $fehler=mysql_errno(); 
    if($fehler==0){ 
      $ergebnis=mysql_query("SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LIKE'".$initi."%'  ");  
    print mysql_num_rows($ergebnis)." Treffer <hr>";   
    while ($row = mysql_fetch_array($ergebnis)) {
    print("
    <tr><td> Name:</td>    <td> $row[frontname] $row[lastname]</td></tr>
    <tr><td>Landkreis:</td><td>$row[landkreis]</td></tr>
    <tr><td>Leistung:</td><td> $row[field_59]</td></tr>
    <tr><td>Email:</td><td> <a href='mailto:$row[email]'> $row[email]</a></td></tr> 
    ");
    }

    else{ 
      print "Kein Zugriff auf die Datenbank"; 


    ?> </table>
    Warum gibt er mir immer nur einen Datensatz aus? Erfurt kommt in der DB im Feld Landkreis drei mal vor.

    Wäre schön, wenn mir jemand behilflich sein könnte.
    Spikejr
    Zuletzt geändert von spikejr; 14.10.2007, 16:02.

  • #2
    brauche dringend Hilfe.
    Das interessiert hier niemanden. Das ist ganz allein dein Problem!

    Haste die Query mal im MyAdmin ausgeführt? Was passiert?

    Kommentar


    • #3
      Tut mir leid, aber was meinst Du mit: die Query mal im MyAdmin ausgeführt?
      spike

      Kommentar


      • #4
        Na, ob du deine Query, die ja angeblich ach so viele Datensätze zurückliefert schonmal über phpMyAdmin getestet hast, um diese Aussage zu belegen.

        Kommentar


        • #5
          MyAdmin meint dazu:
          SQL-Befehl:

          "SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LIKE'".$initi. "%' "
          MySQL meldet:

          #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LI' at line 1


          Wenn ich abfrage:
          "SELECT frontname,lastname,landkreis,field_59, email FROM users" gibt er mir alle DS aus.

          Spike

          Kommentar


          • #6
            Autsch!

            1. dir fällt nicht selber auf, dass du in der Query eine PHP-Variable mitschickst, die MyAdmin, bzw. MySQL gar nicht kennen kann, oder?

            Also korrigieren.

            Wenn ich abfrage: "SELECT frontname,lastname,landkreis,field_59, email FROM users" gibt er mir alle DS aus.
            Ja und? Hast du was anderes erwartet?

            Kommentar


            • #7
              Das war mir schon klar. Und noch einmal: Ich bin absoluter Anfänger!

              Noch einmal von vorn: Ich möchte mit einem Selcet-Formular eine Vorauswahl treffen lassen und alle DS die dieser Auswahl entsprechen ausgeben lassen. Soweit hat das ja auch geklappt. Code siehe oben. Aber er gibt mir ja nur einen DS aus, obwohl mehrere passende vorhanden sind.

              Wo ist ein Fehler im Script? Glaube mir, ich sitzt hier schon seit Stunden(Tagen) und komme nicht weiter.

              Ich weiß auch nicht wie man MyAdmin abfragt, wenn die Variable in einer anderen Datei erzeugt wird.

              Ich komme nicht weiter und habe auch keine Ansatz wo ich testen kann um vernünftige Fragen zu stellen.
              Also für echte Hilfe wäre ich wirklich dankbar.

              Spikejr

              Kommentar


              • #8
                Das war mir schon klar. Und noch einmal: Ich bin absoluter Anfänger!
                Warum machst du es dann SO, und nicht so wie ich es dir gesagt habe?

                Was wird denn bei X Treffer angezeigt? 1 oder mehr?

                Kommentar


                • #9
                  Das war mir schon klar. Und noch einmal: Ich bin absoluter Anfänger!
                  Warum machst du es dann SO, und nicht so wie ich es dir gesagt habe?

                  Was wird denn bei X Treffer angezeigt? 1 oder mehr?

                  Ich weiß auch nicht wie man MyAdmin abfragt, wenn die Variable in einer anderen Datei erzeugt wird.
                  Wie wäre es, wenn du sie dir VORHER von PHP einfach ausgeben lässt? Am besten die komplette Query.

                  Ich komme nicht weiter und habe auch keine Ansatz wo ich testen kann um vernünftige Fragen zu stellen.
                  Also für echte Hilfe wäre ich wirklich dankbar.
                  Tu das, was man dir sagt, dann wirds auch was...

                  Kommentar


                  • #10
                    1. dir fällt nicht selber auf, dass du in der Query eine PHP-Variable mitschickst, die MyAdmin, bzw. MySQL gar nicht kennen kann, oder?

                    Also korrigieren.
                    Schön aber wie?
                    Original:"SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LIKE'".$initi. "%' "
                    Geht nicht! Klar- die Variable.

                    SQL-Befehl:
                    SELECT * FROM `users` WHERE `landkreis` LIKE `erfurt`
                    LIMIT 0 , 30
                    MySQL meldet:
                    #1054 - Unknown column 'erfurt' in 'where clause'

                    Wie frage ich MyAdmin nach dieser Ausgabe(erfurt) ab? In Landkreis gibt es 4DS mit Erfurt

                    Spikejr

                    Kommentar


                    • #11
                      Ja, du bist Anfänger, aber gerade dann solltest du wenigstens erstmal im Manual nachsehen, wie die korrekten Syntax lauten.

                      Wenn du das nicht auf die Kette bekommst, dann versuchs mit nem

                      PHP-Code:
                      <?php echo "SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LIKE'".$initi."%'  "?>
                      Das was da rauskommt, kannst du als Query im MyAdmin verwenden.

                      Ich wiederhole mich:
                      Was wird denn bei X Treffer angezeigt? 1 oder mehr?

                      Kommentar


                      • #12
                        Was wird denn bei X Treffer angezeigt? 1 oder mehr?
                        Es hat nur 1 Treffer gegeben.
                        Aber wieso verstehe ich nicht.
                        Unter Landkreise stehen 4 Datensätze mit dem abgefragten Ziel. Habe ich auch unter MyAdmin kontrolliert.
                        Was stimmt denn dann nicht?
                        Danke für Deine Geduld.
                        Spikejr

                        Kommentar


                        • #13
                          Ich habe die Lösung gefunden.

                          Die Datenbank wird über ein Script einer Mitgliederverwaltung mit Daten "gefüllt".
                          Und dieses Script schreibt vor alle Daten ein Leerzeichen. Nachdem ich das entfernt hatte, wurden alle DS ausgegeben.
                          Also jetzt zum Eingabescript und diesen Fehler ausmerzen...

                          Danke Dir einen schönen Abend.
                          Spikeje

                          Kommentar


                          • #14
                            Tja, schade.

                            Wenn du direkt das getan hättest, was ich dir in meiner ersten Antwort empfohlen habe:

                            SELECT frontname,lastname,landkreis,field_59, email FROM users WHERE field_49 LIKE 'erfurt%' (in MyAdmin ausführen)

                            Dann hättest du auch direkt gemerkt, dass es nicht an deinem Script liegt, sondern die Daten nicht dem entsprechen, was du glaubst.

                            Kommentar

                            Lädt...
                            X