• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Spezifische Zellen aus MySQL Abrufen

Hellow

Neues Mitglied
Hallo Zusammen! ich versuche gerade meine ersten Schritte ausserhalb von Tutorials zu machen.

Von daher hätte ich ein spezielles Problem: Mein Ziel ist es eine spezifische Zelle anzeigen zu lassen.
Daher lade ich erst mal die Daten mit SELECT FROM WHERE LIMIT. Danach lade ich sie in ein array.

Nun ist meine Frage wie ich nun aus 5 Zeilen die ich damit erhalte, eine Zelle aus Zeile 2 und eine aus Zeile 5 anzeigen lasse.
Wenn ich das für Zeile 2 mit $row['spaltenname'][1]; versuche, das müsste doch eigentlich als zweidimensionales Array die zweite Zelle aufrufen. Aber leider spuckt es nur einzelne Buchstaben aus(?).

Meine Frage ist wie das von PHP seite möglich ist ohne jetzt separate MySQL Anfragen zu machen.
 
Willkommen im Forum.

Zeig mal bitte deinen bisherigen Code und das zugehörige Tabellenschema (welche Spalten du hast).
 
Wieso machst du das überhaupt so kompliziert? Du kannst bei der Abfrage doch schon die Ergebnismenge eingrenzen
 
Nope das funktioniert wie folgt:

Du hast 5 Einträge

Tabelle: User

Spalten: id, nickname, loginname, passwort

Daten:
id, nickname, loginname, passwort
_____________________________
1, admin, administrator, rammstein
2, zorndyuke, zorndyuke, mt39nqg12inv1qn()N31nfN(!NFV!N
3, struppi, korrekt, 123456
4, cheater, franz, 00kartoffel00
5, supermod, karl, admin11

Du liest per MySQL alle User ein

Code:
$sql = mysql_query( 'SELECT * FROM `User` ' );

Nun kommt der wichtige Teil, mit diesem Befehl, liest du GENAU -1-ne Reihe ( row ) aus.

Code:
$row = mysql_fetch_assoc( $sql );

Eine Zeile aus der Query in der Variable $sql.

In dem Fall:

1, admin, administrator, rammstein

Diese liest du wie folgt aus:

Code:
echo $row[ 'id'].' - '.$row[ 'nickname' ]; // Als Beispiel für die ID und den Nickname ... oder->
echo $row[0].' - '.$row[1];

Willst du nun die zweite Zeile auslesen, musst du die nächste Zeile auslesen, also nochmal:

Code:
$row = mysql_fetch_assoc( $sql );

damit kriegst du die 2.te Zeile:

2, zorndyuke, zorndyuke, mt39nqg12inv1qn()N31nfN(!NFV!N


Willst du die Kompletten Daten auslesen, machst du das wie folgt:

Code:
$sql = mysql_query( 'SELECT * FROM `User` ' );

while ( $row = mysql_fetch_assoc( $sql ) ){
    echo $row[ 'id' ].' - '.$row[ 'nickname' ].'<br />';
}



Hoffentlich konnte ichs dir schonend beibringen :)
 
Zuletzt bearbeitet:
Zweimal hast du es richtig gemacht und hier einmal falsch:

PHP:
while ( $row = mysql_fetch_assoc( $row ) ){

Ich glaube aber, der Frage danach, die Zeilen 2 und 5 auszulesen, liegt ein Verständnisfehler zugrunde.
 
Die Erklärung ist recht ausführlich, aber ich bin noch immer skeptisch, ob das hier in die richtige Richtung geht:

Hellow schrieb:
Nun ist meine Frage wie ich nun aus 5 Zeilen die ich damit erhalte, eine Zelle aus Zeile 2 und eine aus Zeile 5 anzeigen lasse.

Wozu soll denn das gut sein?
 
Zweimal hast du es richtig gemacht und hier einmal falsch:

PHP:
while ( $row = mysql_fetch_assoc( $row ) ){

Ich glaube aber, der Frage danach, die Zeilen 2 und 5 auszulesen, liegt ein Verständnisfehler zugrunde.

Hallo mermshaus,

warum soll die genannte Code-Zeile falsch sein?


Wozu soll denn das gut sein?

Er/Sie wollte einfach alle Tabellen Einträge nach der Reihe ausgeben, wobei Spalte X und Spalte Z angezeigt werden sollte, da z.B. Spalte Q irrelevant ist und nicht angezeigt werden soll.

Gruß
 
zorndyuke schrieb:
warum soll die genannte Code-Zeile falsch sein?

Du hast $row und $sql verwechselt. Keine große Sache. Das habe ich nur geschrieben, damit im Zweifel niemand verwirrt ist.

zorndyuke schrieb:
Er/Sie wollte einfach alle Tabellen Einträge nach der Reihe ausgeben, wobei Spalte X und Spalte Z angezeigt werden sollte, da z.B. Spalte Q irrelevant ist und nicht angezeigt werden soll.

Ich kann es nur noch mal wiederholen. Es hieß:

Hellow schrieb:
Nun ist meine Frage wie ich nun aus 5 Zeilen die ich damit erhalte, eine Zelle aus Zeile 2 und eine aus Zeile 5 anzeigen lasse. [Hervorhebungen hinzugefügt.]

Da steht nichts mit Spalten.
 
Es steht zwar nichts von spalten allerding ist die Zelle das Ergebniss aus Zeile und Spalte
somit braucht man die Spalte X von der Zeile id1 und die Spalte Z von der Zeile id3.
 
Ich male mal auf, was da steht:

Code:
+---+------+------+------+------+-----+
| # | col1 | col2 | col3 | col4 | ... |
+---+------+------+------+------+-----+
| 1 |  ... |  ... |  ... |  ... | ... |
| 2 |  ... | XXXX |  ... |  ... | ... |  Eine Zelle aus Zeile 2
| 3 |  ... |  ... |  ... |  ... | ... |
| 4 |  ... |  ... |  ... |  ... | ... |
| 5 |  ... |  ... |  ... | XXXX | ... |  und eine Zelle aus Zeile 5
+---+------+------+------+------+-----+
 
Das soll die Rückgabe der Query sein, also der Inhalt des ResultSets. Es werden fünf Zeilen ausgelesen, von denen drei überhaupt nicht benötigt werden. Und von den beiden benötigten Zeilen, die per Durchzählen ermittelt werden, wird auch nur je der Inhalt einer Spalte benötigt.

Ich sehe einfach beim besten Willen nicht, wozu das gut sein soll oder warum man so eine Query für die gewünschte Rückgabe schreiben sollte. Deshalb glaube ich, dass hier ein Verständnisfehler vorliegt und eine Datenbank wie eine Excel-Tabelle oder so angesehen wird, in der bestimmte, benötigte Werte in einer festen Zelle stehen, die per „dritte Zelle von oben, vierte von links“ angesprochen werden kann.

Das ist aber die falsche Vorstellung bei Datenbanken.
 
Ah jetzt seh ich was du meinst^^ Ich habe es mal korrigiert, damit man da nicht auf Flüchtigkeitsfehler stößt ~

Es lag wahrscheinlich ein Verständigungsproblem vor, ich hab euch ja erklärt was er wollte und Threadstarter hat bereits gesagt, dass alles -ok- ist, also kanns hier enden Theoretisch ~
 
Zurück
Oben