SQL-Abfrage mit PHP

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

  • SQL-Abfrage mit PHP

    Ich möchte zwei Tabellen (Person, Eintrag) über ein SQL-Statement abfragen.Soweit klappt das auch,
    nur mit der Darstellung der Einträge (hier: der Spalte ID in der Tabelle Person) klappt das nicht so richtig. Warum???

    Hier der Code:
    $sql = "Select person.id from person,eintrag";
    $result = mysql_query($sql);
    while ($eintrag_array = mysql_fetch_array($result))
    {
    $eintrag_person_id = $eintrag_array['person.id'];
    echo "Die ID: $eintrag_person_id<br>";
    }

    p.s.: Die Verbindung mit der DB und die Auswahl der DB hab ich hier weggelassen, aber im Code hab ichs.

  • #2
    Select person.id from person,eintrag

    wieso fragst du eine 2. ab, wenn du von dieser doch nichts ausgibst ???

    gruss

    Comment


    • #3
      Ich geb dann schon mehr aus.
      Jetzt, um das ganze zu testen, geb ich erstmal nur eins aus.

      Was soll deine select-Anweisung???

      Comment


      • #4
        Was klappt denn nicht? KOmmen mehr Ids als Du dachtest?
        Dein sql wie es hier im Post ist erzielt ein kartesisches Produkt. Du musst Die Tabellen irgendwie verknüpfen.
        Entweder über eine WHERE clausel oder einen JOIN.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Comment


        • #5
          Ich bekomme diese Meldung genau vier mal (vorrausgesetzt es sind in beiden Tabellen (in denen je das Feld id vorkommt) je 2 Einträge):
          Undefined index: person.id in c:\programme\wamp\testordner\chrisscheer\ansehen.php on line 29

          Comment


          • #6
            Hast du diese Anfrage mal an der MySQL-Konsole ausgeführt und dir das Ergebnis angesehen? Da gibts keine Spalte, die Person.id heißt, sondern nur eine, die id heißt. Also musst das ganze über den Index id ansprechen. Das Array mit print_r() ausgeben sollte auch helfen.
            "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

            Comment


            • #7
              hier mal dein script aber in korrierter form....
              so müsste es klappen.

              PHP Code:
                $sql "Select id from person";
                
              $result mysql_query($sql);
                while (
              $eintrag_array mysql_fetch_array($result)) {
                  
              $eintrag_person_id $eintrag_array["id"];
                  echo 
              "Die ID: $eintrag_person_id<br>";
                } 
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Comment


              • #8
                @ Abraxax

                Erstmal danke für deine Mühe!!
                Aber ich möchte:
                Kommentar: Ich möchte zwei Tabellen (Person, Eintrag) über ein SQL-Statement abfragen.

                Des was du gepostet hast, hab ich selber hinbekommen. Mir gehts drum in der select-Anweisung nen Join zu machen, aber trotzdem auf eine bestimmte Tabelle (hier: id der Tabelle Person) zuzugreifen. Was aber leider net klappt. Jedenfalls net so:
                $sql = "Select person.id from person,eintrag";
                $result = mysql_query($sql);
                while ($eintrag_array = mysql_fetch_array($result))
                {
                $eintrag_person_id = $eintrag_array['person.id'];
                echo "Die ID: $eintrag_person_id<br>";
                }

                Comment


                • #9
                  dann poste mal deine tabellenstruktur und die felder mit denen du die tabellen verbunden hast.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Comment


                  • #10
                    Mir gehts drum in der select-Anweisung nen Join zu machen, aber trotzdem auf eine bestimmte Tabelle (hier: id der Tabelle Person) zuzugreifen
                    das versteh ich nicht, kommst die nur drauf an die deine anweisung ein join zu haben ?
                    sag WAS das klappen soll.
                    meine Projekte bestaunen: http://www.kleiza.de

                    Comment


                    • #11
                      @Campus
                      das habe ich jetzt aber nicht mehr verstanden
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Comment


                      • #12
                        @Getit: poste mal bitte die Struktur der beiden Tabellen, und welche Felder du aus welchen haben möchtest und wie die Verknüpfung ist (mit welchen Feld der einen finde ich den entsprechenden Eintrag in der anderen ??)

                        @abraxax: ich glaube, Campus wollte sowas sagen:
                        das versteh ich nicht, kommt es dir nur drauf an in deiner Anweisung einen join zu haben ?
                        sag WAS da klappen soll.

                        glaube, er meinte sowas in der Art

                        gruss

                        Comment


                        • #13
                          ja, art sowas in der...

                          meine Projekte bestaunen: http://www.kleiza.de

                          Comment


                          • #14
                            Ich hab die Tabelle Person.
                            Mit den Feldern: ID, Vorname, Nachname, E_ID (für die Verbindung zur anderen Tabelle)

                            Dann hab ich da noch die Tabelle Eintrag.
                            Mit den Feldern: ID, Ueberschrift, Nachricht und Datum.

                            Ich will mit einer Select-Abfrage beide Tabellen abfragen (select * from person, eintrag) und dann über ne while-Schleife mir die Inhalte beider Tabellen (zur Übung erstmal nur die Spalte ID der Tabelle Person, wenns klappt kommt aber noch mehr) ausgeben lassen. Das hab ich mir so gedacht:
                            $sql = "Select * from person,eintrag";
                            $result = mysql_query($sql);
                            echo "<table>\n";
                            while ($eintrag_array = mysql_fetch_array($result))
                            {
                            $eintrag_nachricht_text = $eintrag_array['person.ID'];
                            echo "<tr><td>$eintrag_nachricht_text</td></tr>\n";
                            }

                            Comment


                            • #15
                              was genau steht in 'Eintrag' drin?
                              wofür genau ist die tabelle?

                              so wie es aussieht muss möglicherweise noch eine spalte mit rein. das kann ich aber erst beurteilen, wenn ich genau weiss, was du damit machst.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Comment

                              Working...
                              X