| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

12-06-2009, 14:38
|
|
herrentor
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 59
|
|
Fehler in MySQL Abfrage mit PHP
Hey, irgendwie schein ich blind zu sein, aber ich finde einfach den Fehler in nachfolgendem Code nicht. Die Fehlermeldung besagt "Parse error: parse error, unexpected $" und als Zeile wird die letzte der Seite genannt.
PHP-Code:
<?php $sql = 'SELECT vereinsname FROM mannschaften';
$result = mysql_query ($sql);
$vereine = mysql_fetch_assoc($result);
for ($i = 0; $i < count($vereine); $i++)
{
echo '<table width=\"100%\" border=\"0\"><tr><td><div align=\"right\">'.$i.'.</div></td>
<td><label><select name=\"platz_"'.$i.'\" class=\"pulldown\">
<option value=\"\" selected=\"selected\"></option>';
while($array = mysql_fetch_assoc($result))
{
echo '<option value="'.$array['vereinsname'].'">'.$array['vereinsname'].'</option>';
}
echo '</select></label></td></tr></table>'; ?>
Hoffe es kann mir jemand weiterhelfen. Danke im vorraus.
|

12-06-2009, 14:43
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Abgesehen von der fehlenden schliessenden } der for-Schleife ist im gezeigten Code kein Fehler.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

12-06-2009, 15:00
|
|
herrentor
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 59
|
|
Oh man, ich sollte vielleicht doch bisschen schlafen. Hab bestimmt eine Stunde hin und her versucht. Danke dir für die schnelle Antwort.
Allerdings bin ich jetzt über das Resultat ein wenig verwundert. Die Schleife wird nämlich anscheinend nur einmal ausgeführt, obwohl sie 18mal (Anzahl der Mannschaften) ausgeführt werden sollte.
|

12-06-2009, 15:09
|
|
kuddeldaddeldu
Registrierter Benutzer
|
|
Registriert seit: Sep 2006
Beiträge: 437
|
|
Hi,
Zitat:
Zitat von herrentor
Allerdings bin ich jetzt über das Resultat ein wenig verwundert. Die Schleife wird nämlich anscheinend nur einmal ausgeführt, obwohl sie 18mal (Anzahl der Mannschaften) ausgeführt werden sollte.
|
die for-Schleife wird nur einmal durchlaufen, in dem Array $vereine kann sich ja auch nur ein Element befinden. Was ist das überhaupt für ein abenteuerliches Konstrukt? Warum machst Du nicht eine einfache while-Schleife über das Datenbankergebnis und lässt darin einfach einen Zähler mitlaufen, wenn Du den brauchst?
Zitat:
Zitat von herrentor
Oh man, ich sollte vielleicht doch bisschen schlafen.
|
Definitiv.
LG
|

12-06-2009, 15:34
|
|
herrentor
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 59
|
|
Das überfordert mich jetzt ein wenig. Ich wollte eigentlich einfach alle Vereinsnamen in ein Array schreiben lassen. Beschäftige mich allerdings auch erst 3 Wochen mit SQL. Kannst du mir vielleicht ein Beispiel geben, wie ich das mit einer while-Schleife machen kann? Ich habs nämlich so versucht und bekomme das gleiche Ergebiss wie mit der For-Schleife
Geändert von herrentor (12-06-2009 um 15:41 Uhr)
|

12-06-2009, 16:02
|
|
kuddeldaddeldu
Registrierter Benutzer
|
|
Registriert seit: Sep 2006
Beiträge: 437
|
|
Hi,
mysql_fetch_assoc liest einen (den nächsten) Datensatz aus dem Ergebnis. Innerhalb der for-Schleife verwendest Du das doch schon richtig in der while-Schleife. Was soll die for-Schleife da?
PHP-Code:
$sql = 'SELECT vereinsname FROM mannschaften';
$result = mysql_query($sql);
$i = 0;
while($row = mysql_fetch_assoc($result)) {
// mach, was immer Du mit $row['vereinsname'] und $i machen willst.
$i++;
}
LG
|

12-06-2009, 16:12
|
|
herrentor
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 59
|
|
Hey, ich glaub wir reden aneinander vorbei. Mein Ziel ist es 18 Zeilen zu erstellen und in jeder Zeile ein Menü mit allen eingetragenen Vereinen. Das heißt die For-Schleife soll einfach 18mal durchlaufen. Aber wenn ich das per Hand eingebe, bekomm ich zwar die 18 Zeilen, jedoch steht dann nur in der ersten ein gefülltes Menü.
|

12-06-2009, 16:39
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Dann hole die Datensätze nicht erst in der for-Schleife ab, sondern vorher - und lege sie in einem Array ab.
Dieses durchläufst du dann in der for-Schleife mit einer zweiten Schleife, um die einzelnen Werte auszugeben. foreach bietet sich für die innere Schleife an.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

12-06-2009, 16:47
|
|
herrentor
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 59
|
|
Ok, als letztes noch. Gibt es einen Befehl womit ich alles ausgewählte in einem Array speichern kann? Danke euch.
|

12-06-2009, 17:22
|
|
kuddeldaddeldu
Registrierter Benutzer
|
|
Registriert seit: Sep 2006
Beiträge: 437
|
|
Zitat:
Zitat von herrentor
Ok, als letztes noch. Gibt es einen Befehl womit ich alles ausgewählte in einem Array speichern kann? Danke euch.
|
Durchlaufe das Ergebnis in einer while-Schleife und baue darin das Array auf. Oder verwende die MySQLi-Erweiterung, die Result-Klasse bietet eine Methode fetch_all.
Solltest Du jetzt wieder antworten wollen, dass Dich das noch überfordert, fängst Du bitte erstmal mit einem Tutorial an.
LG
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|