hilfdirselbst.ch
Facebook Twitter gamper-media
mucke
Beiträge: 4
15. Jan 2003, 13:43
Beitrag #1 von 5
Bewertung:
(712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

dynamische variable - wie verknüpfe ich strings richtig?


ich übergebe aus einem formular z. b. die werte $prod1, $prod3, $prod5 ...
da das formular dynamisch erstellt wird, weiß ich nie wie die variablen genau heißen. ich weiß nur dass der name jeweils aus "prod" und einem index (aus einer datenbank) zusammengestellt ist.

in der ausgabe möchte ich die übergebenen werte anzeigen lassen.

ich habe es die ganze zeit versucht mit:
...
while ($row = mysql_fetch_array($Result))
{
echo" $."prod".$row[id]";
}
...

natürlich stimmt da die syntax nicht. hab aber auch schon andere schreibweisen ausprobiert. wie kann ich die variable $prod+$id miteinander verknüpfen bzw. wie schreibe ich es richtig?
mfg mucke Top
 
X
Ollli
Beiträge: 458
15. Jan 2003, 16:14
Beitrag #2 von 5
Beitrag ID: #21430
Bewertung:
(712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

dynamische variable - wie verknüpfe ich strings richtig?


also folgendes müsste gehen:

while ($row = mysql_fetch_array($Result))
{
$temp = "prod".$row["id"];
echo $$temp;
}

ich schlage dir aber folgendes vor:

for ($i=1;$i<100;$i++) {
echo "<input type=\"text\" name=\"prod[".$i."]\">\n";
}

dann kannste die daten wie folgt handhaben:

while ($row = mysql_fetch_array($result)) {
echo $prod[$row["id"]];
}

Ollli
als Antwort auf: [#21403] Top
 
mucke
Beiträge: 4
15. Jan 2003, 17:06
Beitrag #3 von 5
Beitrag ID: #21439
Bewertung:
(712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

dynamische variable - wie verknüpfe ich strings richtig?


vielen vielen dank

das erste skript hat "fast" gleich funktioniert. musste aber noch eine zwischen-variable einbauen, damit die übergebenen werte auch ausgelesen werden:
...
while ($row = mysql_fetch_array($Result))
{
$temp = "prod".$row["id"];
$anzahl = $$temp;
echo" Sie möchten $anzahl $row[bezeichnung] bestellen?";
}
...
Ausgabe: Sie möchten 25 Briefumschläge bestellen?

OHNE zwischen-variable:
Ausgabe: Sie wollen $prod660 Briefumschläge bestellen?

das zweite skript funktioniert sicherlich auch (habs noch nicht probiert). hatte auch schon überlegt, das ganze in ein array zu packen und bei der ausgabe wieder auszulesen. wusste aber dann nicht so konkret wie ich das anpacken soll. außerdem wäre es für mein projekt eher umständlich.

nochmal danke. du kennst das sicher, wenn man stunden mit einem problem kämpft und dann feststellt, dass irgendwo nur ein punkt zu viel war.

mfg mucke
als Antwort auf: [#21403] Top
 
Ollli
Beiträge: 458
15. Jan 2003, 23:18
Beitrag #4 von 5
Beitrag ID: #21473
Bewertung:
(712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

dynamische variable - wie verknüpfe ich strings richtig?


In einem string funzt $$temp natürlich nicht, ich empfehle (Miro hat das auch mal soweit ich mich erinnern kann ;-)) die variablen nicht im String zu schreiben, sondern zu verketten:
echo "blablabla ".$$temp." weiters bla";

und btw:
jaja, die probs kenne ich ;-) - aber dazu sind ja die foren da!

Ollli
als Antwort auf: [#21403] Top
 
Miro Dietiker
Beiträge: 699
18. Jan 2003, 14:11
Beitrag #5 von 5
Beitrag ID: #21720
Bewertung:
(712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

dynamische variable - wie verknüpfe ich strings richtig?


Und weiter noch was wichtiges:

Arrayausgaben sollen immer so geschrieben werden:

echo $array["spalte"];
echo $array['spalte'];

Schreibst du:
echo $array[spalte];
Ist nie sicher ob PHP wirklich die Spalte ausgibt welche du willst...
Ausserdem ist es gut möglich (nach Dokumentation PHP) dass die
zuletzt (falsche/schlechte) geschriebene Variante in künftigen PHP-
Versionen nicht mehr unterstützt sein wird!

GrEeZ: Miro Dietiker
als Antwort auf: [#21403] Top
 
X