webForumDet fria alternativet

Konkatenering av variabelnamn

7 svar · 293 visningar · startad av Rödalacket

RödalacketMedlem sedan feb. 20002 612 inlägg
#1

Nu vet jag inte riktigt om rubriken blev riktigt rätt men så här ligger det till.
Jag har nu ett skript som hämtar info från en databas. Frågan till databasen ser ut så här

$SummaNiclasBorta = mysql_result(mysql_query("SELECT summaBorta FROM km WHERE namn='Niclas'"),0);
$SummaKalleBorta = mysql_result(mysql_query("SELECT summaBorta FROM km WHERE namn='Kalle'"),0);
osv.
osv.....

Det är rätt många namn som skall hämta info från DBen så det blir rätt många rader.
Då kom jag på den utomordentliga idén att jag lägger in alla namn i en array och kör en loop som tar fram infon åt mig med där blev det lite problem.

För att slippa ändra alla variablar så hade jag tänkt att det skulle gå att göra så här.

$Summa.$array[0]."Borta" = -->DB fråga

eller nått liknade men då får jag bara parse error helatiden.

Går det att göra så som jag har tänkt mig eller är det bara att lägga ner idén?

beikerMedlem sedan juli 200194 inlägg
#2

du kan inte skapa variabelnamn genom att konkatinera.

det är bättre om du hämtar allt du vill ha från databasen i en fråga, typ:

$result = mysql_query("SELECT summaBorta FROM km");

while ($row = mysql_fetch_array ($result)) {
    echo $row["namn"];
    echo $row["summaBorta"];
}

lycka till!

.b

ThACRoWMedlem sedan dec. 2001314 inlägg
#3

Japp det funkar, men man gör så här:

${"Summa".$array[0]."Borta"} = -->DB fråga
RödalacketMedlem sedan feb. 20002 612 inlägg
#4

Ahaa...det skall jag testa... :)

beikerMedlem sedan juli 200194 inlägg
#5

coolt... hade jag ingen aning om... men Rödalacket.. jag rekommenderar dig ändå att inte ställa många frågor till databasen när det räcker med en

RödalacketMedlem sedan feb. 20002 612 inlägg
#6

Nu är jag tillbaka igen med lite nygamla problem.

$myArray = Array('ett','tva','tre');
$i = 1;
${"summa".$myArray[$i]} = "Foo Foo";
echo $summatva;

Den där kodsnutten skriver ut Foo Foo på skärmen men nu skall arrayen stå före summa och då funkar det inte... :(

$myArray = Array('ett','tva','tre');
$i = 1;
${myArray[$i]."summa"} = "Foo Foo";
echo $tvasumma;

Har prövat en massa olika varianter men det vill sig inte.

Om jag skriver

$result = mysql_query("SELECT summaBorta FROM km");

while ($row = mysql_fetch_array ($result)) {
    echo $row["namn"];
    echo $row["summaBorta"];
}

då radar han väl bara upp namnen, summaBorta o.s.v.
Hur vet jag då vilket namn som hamnar var?

ThACRoWMedlem sedan dec. 2001314 inlägg
#7

Du har ju glömt ett dollar-tecken! :)
Så här ska det vara:

$myArray = Array('ett','tva','tre');
$i = 1;
${$myArray[$i]."summa"} = "Foo Foo";
echo $tvasumma;
RödalacketMedlem sedan feb. 20002 612 inlägg
#8

Hade det från början men jag trodde att inte det skulle vara där men nu funkar det perfekt.
Tack för hjälpen... :bire

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)