php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.04.2011, 17:04  
Q_5
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Q_5 befindet sich auf einem aufstrebenden Ast
Standard Daten aus Datenbank abfragen und ausgeben - Schleife verzweifelt gesucht

Hallo,

ich - ein Anfänger in Sachen PHP - wandere zurzeit als Forum-Nomade durch das Internet, um mein Projekt fertigstellen zu können. Viel fehlt dazu auch nicht mehr, leider scheitere ich noch an einer Schleife, die die abgerufenen Daten aus meiner Datenbank abbilden soll.

Meine Datenbank:

Tabelle "Produkt"
ProduktID | Produktname | Produkthersteller
1, Speed PC, Pegasus
2, Power PC, Accelerate
3, Speed PC II, Pegasus

Tabelle "Anschluss"
AnschlussID | Anschlussname
1, USB
2, Firewire
3, eSata

Tabelle "Beziehung"
ProduktID | AnschlussID
1, 1
1, 3
2, 1
2, 2
3, 1
3, 2
3, 3

Dazu meine Select Abfrage:

Code:
$querry = „select Produkt.*, Beziehung.AnschlussID, Anschluss.Anschlussname 
from Produkt, Beziehung, Anschluss 
where Produkt.Produktname like '%$Produktname%'
and Produkt.Produktherstellter like '%$Produkthersteller%'
and Produkt.ProduktID = Beziehung.ProduktID 
and Beziehung.AnschlussID = Anschluss.AnschlussID“;
Suche ich nach dem Produkthersteller "Pegasus" erhalte ich dann folgende Ausgabe (getestet in der MySQL Konsole):

ProduktID | Produktname | Produkthersteller | AnschlussID | Anschlussname
1, Speed PC, Pegasus, 1, USB
1, Speed PC, Pegasus, 3, eSata
3, Speed PC II, Pegasus, 1, USB
3, Speed PC II, Pegasus, 2, Firewire
3, Speed PC II, Pegasus, 3, eSata

Das bedeutet, meine Abfrage spuckt alle Daten aus, die ich benötige. Leider habe ich das Problem, dass mir in meinem Ausgabeskript noch eine Schleife fehlt, die meine Daten abbildet, etwa wie im folgenden Beispiel:

Pegasus Speed PC
Anschlüsse: USB, eSate

Pegasus Speed PC II
Anschlüsse: USB, Firewire, eSata

Kann mir jemand sagen, wie diese Schleife aussehen muss? Als Anfänger fehlt mir leider noch das nötige Hintergrundwissen. In der Literatur, die ich verwende, werden Daten leider weder in Beziehungstabellen geschrieben noch daraus ausgelesen.

Geändert von Q_5 (15.04.2011 um 17:20 Uhr).
Q_5 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.04.2011, 17:10  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi.

Stelle deinen Code bitte entsprechend der Forenregeln hier ein (nutze die PHP Tags), danke. Meinst du das hier:

http://www.w3schools.com/PHP/php_mysql_select.asp

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 15.04.2011, 17:25  
Q_5
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Q_5 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von wolf29 Beitrag anzeigen
Hi.
Meinst du das hier:

http://www.w3schools.com/PHP/php_mysql_select.asp

mfg Wolf29
So funktinoiert es eben leider nicht, weil die Daten zu einem Produkt mit meiner Select Abfrage über mehrere Zeilen ausgeben werden. Mit "while($row = mysql_fetch_array($result))" wird daher ein Produkt mehrmals aufgelistet, wenn es über mehr als einen Anschluss verfügt. Also z.B.

Pegasus Speed PC
Anschlüsse: USB

Pegauss Speed PC
Anschlüsse: eSata

statt

Pegasus Speed PC
Anschlüsse: USB, eSata
Q_5 ist offline   Mit Zitat antworten
Alt 15.04.2011, 17:33  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

...dann muss Du dein SQL Statement anpassen, wenn Du die Ausgabe so haben willst, dass für ein Produkt sämtliche Anschlüsse aufgelistet werden!

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 15.04.2011, 17:40  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 681
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

Group_concat() ?
Harry_X ist offline   Mit Zitat antworten
Alt 15.04.2011, 18:23  
Q_5
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Q_5 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Harry_X Beitrag anzeigen
Group_concat() ?
Spärliche aber hoch wirkungsvolle Information!!! Habe mich an diesem Tutorial orientiert und es klappt genauso wie es soll. Ein ganz großes Danke!
Q_5 ist offline   Mit Zitat antworten
Alt 16.04.2011, 01:43  
Q_5
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Q_5 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe meine Datenbank mittlerweile um eine zusätzlich m:n Beziehung erweitert und seitdem dreht es mich übel:

Tabelle "Produkt"
ProduktID | Produktname | Produkthersteller
1, Speed PC, Pegasus
2, Power PC, Accelerate
3, Speed PC II, Pegasus

Tabelle "Anschluss"
AnschlussID | Anschlussname
1, USB
2, Firewire
3, eSata

Tabelle "Anschluss_Beziehung"
ProduktID | AnschlussID
1, 1
1, 3
2, 1
2, 2
3, 1
3, 2
3, 3

Tabelle "Drahtlos"
DrahtlosID | Drahtlosname
1, WLAN
2, Bluetooth
3, Infrarot

Tabelle "Drahtlos_Beziehung"
ProduktID | DrahtlosID
1, 1
1, 2
2, 1
3, 1
3, 2
3, 3

Ich habe versucht mit group_concat() folgende Darstellung zu erreichen (jedoch ohne Erfolg):

ProduktID | Produktname | Produkthersteller | Anschlussname | Drahtlosname
1 | Speed PC | Pegasus | USB, Firewire | WLAN, Bluetooth

Ich kann mir auch nicht vorstellen, wie die Darstellung einer Select Abfrage, die zwei oder mehr m:n Beziehungen verbinden soll, ohne group_concat() aussieht. Ist das überhaupt möglich oder benötige ich mehrere Select Abfragen?

Gute Nacht!
Q_5 ist offline   Mit Zitat antworten
Alt 17.04.2011, 23:25  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 681
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

wenn group_concat funktioniert, warum solltest du es dann nicht nutzen?
du kannst mir glauben, daß diese Funktion nicht so ohne weiteres zu ersetzen ist, ich hab da schon einiges ausprobiert.
Harry_X ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem bei Tag-genauer Ausgabe von Daten aus Datenbank Fuxxy PHP Einsteiger 7 31.03.2011 15:39
Daten aus PSQL Datenbank in MySQL Datenbank Soulstormer Datenbanken 5 01.03.2011 17:18
Übergabe von Daten aus Datenbank deimos18 PHP Einsteiger 3 01.03.2011 14:22
[Erledigt] Eintrag in Datenbank aus foreach Schleife ePole PHP Einsteiger 12 31.12.2010 14:49
Komplette Daten aus Datenbank in editierbarer Form ausgeben zzzboard PHP Tipps 2010 1 21.08.2010 13:29
Schleife um Daten aus Datenbank zu holen Kia PHP Tipps 2010 6 17.03.2010 22:56
Daten von Website abgreifen und in Datenbank einfügen loci Datenbanken 10 08.02.2010 17:11
stückweise Daten aus Datenbank ausgeben beta02 PHP Tipps 2009 2 27.03.2009 20:23
Problem mit Formular, Daten an datenbank senden Aurec PHP Tipps 2008 11 20.11.2008 18:17
[Erledigt] pdf per php erzeugen, daten aus datenbank lesen andy23wl PHP Tipps 2008 12 13.08.2008 14:03
Daten aus Datenbank (richtig) ausgeben. momonov PHP Tipps 2008 19 27.03.2008 16:43
Daten in Datenbank übergeben Bebre PHP Tipps 2008 2 11.02.2008 11:41
geladene daten aus einer schleife in die datenbank speichern Bonaparte PHP Tipps 2008 2 05.09.2007 22:26
Daten aus MySQL Datenbank abfragen trivial Datenbanken 2 29.04.2006 17:48
Daten übertragen von datenbank zu datenbank PHP Tipps 2005-2 6 20.06.2005 13:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbankabfrage über konsole, php datenbank auf pc und im netz, php db abfrage eintrag fehlt, mysql datenbank abfragen und ausgeben, datenbank schleife ausgabe php, php datenbankabfrage ausgeben, datenbankabfragen sql n zu m beziehung, pc name per php ausgeben 2010, pc anschlüsse datenausgabe, php aus for schleife 3 datensatz abfragen, information aus datenbank holen ohne schleifen, schleife zur ausgaber datenbank daten, daten ausgabe in schleife, zwei abfragen in einer schleife ausgeben, datenbankabfrage mit beziehungen, datenbank abfragen geschwindigkeit ausgeben, select auf mehrere datenbanken schleife, php5 datenbankabfrage, schlaeife datenbankabfrage, php5 mysql datenbankabfrage daten ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum