Menu mit PHP und Mysql Ohne Java ?

Lukasz hat gesagt.:
Probier mal eine while Schleife wen mehrere Werte kommen, dann weist du warum.
Aber man könnte das auch mit while erledigen aber dann muss num_row zum einstaz kommen und eine bestimmte Spalte vorgegeben sien oder nicht?
Nö.

PHP:
while ($row = mysql_fetch_array($result)) {
  echo $row['bla'];
}

Fertig. Mehr ist nicht nötig.

Nur mal ein kurzes Beispiel, welches nichts mit dem Problem hier zu tun hat, einfach der Verständlichkeit wegen. ;)


byez
 
Ja schon eben wenn 2 Werte kommen soll das auch gehen?
-> Glaube ich nicht

tabelle
-id-name-
-1-affe-
-2-affe-

PHP:
$result=mysql_query("SELECT * FROM tabelle Where name='affe' ORDER BY id ASC");
while=($row=mysql_fetch_array($result)){
echo $row[id];
}

Geht das wirklich da kommen doch nicht 2 Werte raus wie es sein sollte!
1 und 2 sondern jeweils dann der letzte weil das doch while bewirken soll.
 
Zuletzt bearbeitet von einem Moderator:
1.
Dein Code is nich nur "langsamer" sondern auch einfach schlecht programmiert.

2.
while($row = mysql_fetch_assoc()){
$row['name'];
}
oder sonst was. Anders verwendet man es nicht. In jedem Tutorial stehts auch so, weshalb ich definitiv nicht nachvollziehen kann, wie du auf deine "Lösung" kommst.
Vorallem weil deine For einen Schönheitsfehler hat: Wenn es mehr als 1k Einträge gibt gehts ned mehr richtig :P
 
Zuletzt bearbeitet von einem Moderator:
@Lukasz
Du hast auch Syntaxfehler in Deinem Affenbeispiel-Code, richtig wäre so:
PHP:
$result=mysql_query("SELECT * FROM tabelle Where name='affe' ORDER BY id ASC");
while ($row=mysql_fetch_array($result)){
echo $row['id'].": ".$row['name']."<br>";
}
Nach dem while kommt kein Gleichheitszeichen.
id ist ein Array-Index, der in Hochkomma oder Anführungszeichen stehen muss.
Die Ausgabe des Namens habe ich noch hinzugefügt, aber das könnte ja auch Absicht sein.

Bei der Zuweisung im while-Kopf wird auf den Inhalt von $row überprüft. Da [phpf]mysql_fetch_array[/phpf] false zurückgibt, wenn es keine weiteren Zeilen gibt, endet die while-Schleife mit dem letzten Datensatz. Die Zuweisung bzw. der Inhalt von $row ist innerhalb des while-Body gültig, wie bei Deiner for-Schleife von oben.

Gruß hpvw

EDIT: Nach der relationalen Algebra wäre es korrekt, wenn zwei exakt gleiche Datensätze (dazu müsste auch die id gleich sein) zu einem reduziert werden. Aber bei den relationalen Datenbanken, die ich kenne, werden immer beide Ergebnisse ausgegeben, wenn man es nicht explizit (z.B. mit DISTINCT) verhindert.
 
Zuletzt bearbeitet:
Ich sage nur kauf dir ein anti agressiv!

Eine Lösung ist dann eine Lösung, sofern Sie zum Ergebniss führt PUNKT. Ausserdem kannst du ja auch eine Lösung posten, mit ten tutorials die du kennst PUNKT
Aber eins sgae ich schon einmal im Vorab, Würde jeder assoc benützen (was ich auch oft tue, und was ich zuvor gepostet habe)

Ja geht auch!

Natürlich ist deine Lösung besser, und er / sie sollte auch diese Verwenden. Mir ging es eben nur darum zu zeigen wie er / sie sicherlich zu einer Lösung gekommen wäre.
Wobei die Lösung von mir auch ihren Zweck erfüllt, jedoch etwas langsammer ist.

Grüsse!

Ich verstehe dacher nicht warum du mir ans Bein pinkelst. Es geht so sehr wohl, und morgen schon gibt es wieder eine andere Lösung. Denklich oft habe ich dieses Prinzip zum einstaz gebracht. Hier Zum Beispiel http://www.2ts2.net/index.php?get=gbook/index.php http://www.2ts2.net/index.php?get=forum/showthread.php&thisforum=16 also passt dir mein Gesicht nicht oder was?

PS auch hier http://2ts2.net/?get=forum/showpost.php&thisthread_id=188&seite=3
Entschuldigung!
 
Zuletzt bearbeitet von einem Moderator:
Öhm dein Gesicht ist mir ehrlich gesagt ziemlich egal.
Nur mir gehts aufm Senkel wenn du ständig(ja is so) irgendwas postest, was entweder komplett falsch ist oder einfach nur von Fehlern strozt.
Sei es ein echo $row[id]; oder ne forschleife die du verwendest um was aus der DB zu saugen.

Ach ja und entschuldige bitte, dass ich dich korrigieren muss...
 
Jo macht nix!

Du brauchst mir ganz und granicht erklären was falsch ist und was nicht! Du sollst es mal beweisen. Argumente Herr Kollege -> Nicht weil du es nicht für richtig empfindest. Oder sprechen wir über geschmack.

Ich bin seit 2 Jahren hier mit noch Nimanden in Streit geraten, und genau das habe ich auch nicht vor. Ich habe auch schon vielen geholfen, und bis lang hat sich auch noch keiner beschwert. Was hast du für ein Problem. Komm meine E-Mail steht im Profil, und wenn du Lust auf Streit hast regelt man das bestimmt nicht über die Webseite. :offtopic:

Achja Beweis wo fachmänisch steht, dass das falsch ist.

Anrande finde ich es auch noch nett wie du mir Sachen unterstellst!
Wer bhauptet, dass ich immer so eine DB auslesen? Wo steht das wo sind die Beweise. Der einzige der das Behauptet bist du!

OK lassen wir es mal nicht als Strei ausarten

$row[id]; ist falsch un lautet korrekt
$row['id']; Richtig?

Genau das kann man Im Buch vom M.Kannengiesser PHP 5 Parxisbuch nachlesen! Dort steht mann sollte das so ausschreiben $row['id']; Richtig?
Dort steht aber auch weil php sonst die automatisch tut! Also infomier dich bitte! Ein Konflikt ist mir auch noch nie aufgetreten. Und ich finde es im mysql_query("") besser warum?

Gasnz einfach
mysql_query("SLECT * FROM bla WHERE das = '$_GET[bla]'");
Wohl einfach und schneller geht wie wenn mann den String unterbricht. Aber du meinst wohl, da kommt ne falsche Lösung raus. oder sehe ich das falsch?
 
Zuletzt bearbeitet von einem Moderator:
Nur weil eine Lösung in einem bestimmten Teilabschnitt eines Problemes funktioniert, heißt es nicht, daß es richtig ist.
Und ein echo $row[id] kann durchaus richtig sein, aber auch nur, wenn man id vorher als Konstante definiert...
 
Übrigends, wo ist eigentlich der graue Corsar hin?

Hat Dir das inzwischen weitergeholfen?

Hast Du das Problem gelöst?

Hast Du aufgegeben?

Wie weit bist Du?

Gibt es einen Punkt, an dem Du nicht weiter kommst?

(Das Thema entgleist langsam ein bisschen.)

Gruß hpvw

PS: @Lukasz:
Beweis ist schwierig zu machen, aber argumentieren kann man:
1. Würde ein Benchmark hervorbringen, dass Deine Variante langsamer ist.
2. Müsstest Du wieder an Deinen Code ran, wenn (konkrete DB des Erstellers) mehr als die in Deiner for-Schleife angenommene Anzahl Produkte eingetragen werden.
3. Sollte man IMHO keine Variablen initialisieren, die man nicht verwendet.
 
Zurück