| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo maeck, an sich musst du lediglich die Datensätze aus der DB holen (mysql_fetch_assoc()) und die Daten in die Strukur einer Tabelle ausgeben. Das geht beispielsweise so: PHP-Code:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| | |
| Moderator und Wett-König | Hallo maeck, ich mag deine verschachtelte Schreibweise mit mysql_fetch_array(mysql_query()) nicht da das schwer zu lesen ist. Theoretisch sollte es aber auch so gehen. Die Listendarstellung musst du dann eben nach gusto anpassen.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Nein das geht so nicht, denn mysql_query() liefert dir eine Resource. Mittels mysql_fetch_*() holst du genau einen Datensatz dieser Resource ab. Danach wird der interne Zeiger der Resource um eins erhöht. Um die restlichen Datensätze auch noch abzuholen, musst du die Resource erneut mit einer mysql_fetch_*() Funktion aufrufen. Solange bis irgendwann alle Datensätze abgerufen sind und FALSE zurückgegeben wird. Wenn du mysql_query() aber direkt in mysql_fetch_*(<-- hier -->) aufrufst, wird die Resource nicht gespeichert und geht verloren. Somit hast du nur einen Datensatz abgeholt, der Rest verliert sich im Nirvana. Das heißt, wenn du mehrere Datensätze zu erwarten hast, musst du den Rückgabewert von mysql_query() speichern und in einer Schleife an mysql_fetch_*() übergeben. Mögliche Rückgabewerte von mysql_fetch_assoc() sind FALSE oder ein Array. Verwende also am Besten folgendes Konstrukt: PHP-Code: http://de.php.net/mysql_fetch_array http://de.php.net/mysql_fetch_assoc http://de.php.net/mysql_fetch_object |
| |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hallo, verstehe jetzt den Zusammenhang zum Anfangsposting nicht, aber das ist Datenbank-technisch kein Problem. Eine dynamische Anzahl 0..n (bei 0..1 kannst du ein Feld füllen oder leer lassen) setzt du in einer relationalen Datenbank immer durch eine dynamische Anzahl an Datensätzen um, also nicht etwa über Spalten. Wenn du allerdings noch nicht einmal mehrzeilige SELECTs ausgegeben bekommst, wird es sehr kritisch. Lies dir mal den Artikel in Wikipedia durch: http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) (Link kaputt, kopiers bitte manuell) Zumindest bis zur dritten Normalform. Auch dieser Artikel könnte interessant sein: http://de.wikipedia.org/wiki/SQL Speziell JOINS im Zusammenspiel bei normalisierten Datenbanken. Bitte lies dir zumindest Normalisierung durch, sonst macht eine weitere Diskussion keinen Sinn, denn für dich die Arbeit erledigen kann keiner. Eine Tabellenstruktur bei dynamischer Anzahl Ehepartner (0..1) und Kindern (0..n) könnte dann so aussehen: Code: family id persons id | family| gender | is_parent / is_child | lastname | firstname Die Personen haben ihren Nach- und Vornamen, Geschlecht und Flag ob sie Kind oder Elternteil sind. Natürlich könntest du hier auch den Nachnamen auslagern oder vom Vater/Mutter ableiten, aber was wenn Mutti Meyer, Vati Müller und das Kind Meyer-Müller heißen soll? Du solltest beim Datenbankdesign immer den Worst-Case im Blick haben. Du kannst jetzt soviele Kinder (und als Nachteil, auch soviele Elternteile) hinzufügen wie du möchtest, bzw. deine Applikation zuläßt. |
| |
| | |
| Erfahrener Benutzer Registriert seit: 28.06.2008
Beiträge: 259
![]() | Hallo Zergling, okay, ich versuche es nochmal anders. Bitte ein bisschen Geduld. Das Problem liegt nicht darin, dass ich keine SELECTs erstellen kann, oder nicht weiß, dass man ein assoziatives Array durch eine While-Schleife ausliest (auch wenn das in diesem Post so scheint Meine Datenbank ist bereits normalisiert (hoffe ich) und sieht folgendermaßen aus: Tabelle family id | regdate | lastname | street | zipcode | land | city | phone | fax | email Tabelle family_members id | famid (fremdschlüssel zu family.id) | surname | sex | birthday Jetzt folgt die Beschreibung meines Problems Ich habe ein Anmeldeformular, wo sich eine Familie mit allen Mitgliedern anmelden kann (eben max. 6 Kinder, weil ich es noch nicht geschafft habe, über JS dynamisch weitere Eingabefelder hinzuzufügen). Zu dieser Anmeldung habe ich ein AdminTool geschrieben, wo man sich alle Familien inkl. der Mitglieder auflisten lassen kann. Hier soll man nun die Möglichkeit haben, die Familien nochmals zu bearbeiten. D.h. noch ein weiteres Kind hinzufügen, oder vielleicht einen Ehepartner löschen. Dazu wollte ich eine Tabelle mit Input-Felder erstellen und die Values direkt aus der Datenbank füllen. Dann könnte ich etwas verändern und danach wieder alles in die DB zurückschreiben. Erster Ansatz war, dass ich einfach alles aus der DB auslese und dies anzeige. Dann hätte ich aber nicht die Möglichkeit, ein weiteres Kind hinzuzufügen oder dergleichen. Deswegen dachte ich mir jetzt, dass ich ein Formular erstellen muss, was ungefähr so aussieht: http://www.forum-altoetting.de/beispiel.html Um das füllen zu können, muss ich aber die Werte aus der DB über eine Whileschleife auslesen und in Variablen speichern. Diese Variablen kann ich dann in die Valuetags schreiben, damit die Werte angezeigt und verändert werden können. Dazu dachte ich, dass ich eine While-Schleife erstelle, und darin eine for-schleife, die einen counter hochzählt und damit die variablen füllt; also vorname1, vorname2, ... . Und jetzt die Frage: Geht das auch einfach?? Danke für deine / eure Geduld, schöne Grüße, Marcel |
| |
| | ||
| Moderator und Wett-König | Zitat:
PHP-Code:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| HTML Tabelle ausgeben | PHP-Fortgeschrittene | 7 | 22.02.2011 17:59 | |
| abfrage mit bedingung bei einer zweiten tabelle | marcelglaeser | Datenbanken | 6 | 29.05.2008 19:10 |
| Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt | Seb | PHP Tipps 2008 | 2 | 29.05.2008 11:36 |
| MySQL und html Tabelle | sven88 | PHP Tipps 2008 | 10 | 12.05.2008 17:31 |
| Abfrage auf fehlende ID in einer Tabelle | maeck | Datenbanken | 2 | 04.07.2007 19:44 |
| where Abfrage in anderer Tabelle?? | Matthiasnet | Datenbanken | 10 | 11.04.2007 17:35 |
| werte einer tabelle in andere tabelle speichern | high_scorer | Datenbanken | 3 | 30.09.2005 16:28 |
| [Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert | Datenbanken | 2 | 08.09.2005 11:59 | |
| Abfrage einer Tabelle mit mehreren wörtern | Diego1978 | PHP Tipps 2005-2 | 4 | 15.08.2005 14:58 |
| [Erledigt] html Tabelle mit scrollbars | HTML, Usability und Barrierefreiheit | 16 | 09.04.2005 12:54 | |
| Tabelle existiert, if Abfrage | Datenbanken | 9 | 15.02.2005 14:00 | |
| Word Tabelle direkt in HTML Datei einfügen | nsane | HTML, Usability und Barrierefreiheit | 7 | 28.12.2004 09:02 |
| Werte in Tabelle änder und in DB speichern | PHP Tipps 2004-2 | 5 | 17.12.2004 22:11 | |
| werte einer tabelle mit werten einem array vergleichen | PHP Tipps 2004 | 1 | 08.07.2004 21:33 | |
| [Erledigt] Werte eines Arrays aus Tabelle auslesen ? | PHP-Fortgeschrittene | 12 | 08.06.2004 19:57 | |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.