for-while-problem - Seite lädt nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
auslese
code
datenbank
definierte spalten
eintragen
ergebnis
hilfreiche tipps
krimskrams
kurzer sinn
lachen
lange rede
machen
quellcode
sagen
schleife
spalten
standard
tabelle
zeile
-
Hallo,
ich probiere mich gerade (bzw. seit einiger Zeit) an einem Script. Aber die Seite lädt einfach nicht, irgendwann steht dann der Standard-Lima-City-Text für Webüberlastung dort. Ich weiß nicht, woran das liegt. Alle anderen Seiten laden, nur an dieser hängt es sich immer auf. Daher dachte ich mir, liegt es wohl an mir bzw. an dem Script (von dem ich ja nicht mal weiß, ob es so überhaupt funktionieren kann, weil es LÄDT ja nicht :P). Ich möchte dazu sagen, ich habe noch nicht so viel (also fast keine) Erfahrungen mit for-while-Krimskrams ... also bitte, bitte, nicht lachen, meckern o.ä., oki? Hilfreiche Tipps wären da bestimmt angebrachter ;). Okay, lange Rede kurzer Sinn, hier mal mein Script-Versuch:
$anfrage="SELECT * FROM tabelle"; $ergebnis=mysql_query($anfrage); $anz=mysql_num_rows($ergebnis); for($a=$anz-1;$a>-1;$a=$a++) { $anfrage="SELECT * FROM tabelle WHERE id LIKE '"; $anfrage.=$id; $anfrage.="'"; $ergebnis=mysql_query($anfrage); while($zeile = mysql_fetch_row($ergebnis)) { print("<tr><td>"); print($zeile[1]); print("</td><td>"); print($zeile[2]); print("</td></tr>"); } }
Jetzt noch kurz zu dem, was das Script eigentlich bezwecken sollte: Ich habe eine ID, die in der Datenbank gespeichert wird. Diese kann dort jedoch öfter vorkommen, daher möchte ich alle Datensätze auslesen, die im ersten Feld diese ID beinhalten *soifz*.
Beitrag zuletzt geändert: 26.11.2009 19:10:58 von cam -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
HI,
was ich nicht so ganz verstehe woher bekommst du die $id? Ist die im vorheriegen Quellcode definiert?
Die erste SQL - Abfrage macht in meinen Augen keinen sind.
Wieso du kein Ergebnis erhälst könnte an der for-Schleife liegen, da du $a immer um 1 erhöhst und dein Abbruchkriterium erwartet, das $a -1 erreicht.
versuchs mal damit:
$anfrage="SELECT Spalte1, Spalte2 FROM tabelle WHERE ID = " . $id; $ergebnis=mysql_query($anfrage); while($zeile = mysql_fetch_row($ergebnis)) { print("<tr><td>"); print($zeile[1]); print("</td><td>"); print($zeile[2]); print("</td></tr>"); }
Unter anderem empfehle ich dir nicht alle Spalten sondern nur definierte Spalten über den SQL holen.
Wieso kommt die ID mehrfach vor?
Beitrag zuletzt geändert: 26.11.2009 19:36:25 von jambs -
Hm, jetzt lädt die Seite zwar, gibt aber nur meinen Standardtext wieder, aber immer noch kein Ergebnis von der Datenbank :(. Muss ich statt "Spalte1" die Spaltenbezeichnung eintragen? Oder Spalte0 (weil es ja bei null beginnt) oder was? Und prinzipiell müssen ja alle Felder ausgelesen werden, die in einer Reihe sind, nur die erste, in der sich die ID befindet, eben nicht. Warum sind Datenbankenauslesungen nur so kompliziert? :(
-
Spalte1 musst du natürlich durch die Spaltenbezeichnung in deiner Tabelle ändern.
Wieso sollen alle Spalten ausgelesen werden?
Wenn du jede Spalte einzeln angibts siehst du genau wie groß dein array werden kann.
Dies kannst du bei SELECT * FROM... nicht sofort erkennen. Dafür muss man dann die Datenbankstrucktur kennen.
Kennst du dich mit SQL bzw. Datenbanken aus? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage