Avatar billede shjorth Nybegynder
27. maj 2009 - 15:55 Der er 4 kommentarer og
1 løsning

Navn på variabler (php)

Hejsa.

Jeg har forsøgt at gøre flg:

$q = mysql_query("SELECT * FROM am_routes WHERE userid = '".$userid."'")or die(mysql_error());
while($row = mysql_fetch_array($q)) {
$q2 = mysql_query("SELECT * FROM am_destinations WHERE id = '".$row['route_id']."'")or die(mysql_error());
$row2 = mysql_fetch_array($q2);
$datax = array($row2['plotx_from'],$row2['plotx_to']);
$datay = array($row2['ploty_from'],$row2['ploty_to']);
$lp = new LinePlot($datay,$datax);
$lp->SetColor('red');
$lp->mark->SetCallbackYX('markCallback');
$graph->Add($lp);   
}

Men fordi variablerne (datax osv) hedder det samme hver gang løkken kører vil den kun vise den sidste streg.. Derfor skal jeg på en eller anden måde give variablerne forskellige navne for hver gang løkken kører.

Lidt tricky, men der må da findes en løsning? :D
Avatar billede zkill Nybegynder
27. maj 2009 - 16:19 #1
$q = mysql_query("SELECT * FROM am_routes WHERE userid = '".$userid."'")or die(mysql_error());

$datax = array();
$datay = array();

$i = 0;
while($row = mysql_fetch_array($q))
{
    $q2 = mysql_query("SELECT * FROM am_destinations WHERE id = '".$row['route_id']."'")or die(mysql_error());
    $row2 = mysql_fetch_array($q2);
   
    $datax[$i] = array($row2['plotx_from'],$row2['plotx_to']);
    $datay[$i] = array($row2['ploty_from'],$row2['ploty_to']);
    $i++;
   
    $lp = new LinePlot($datay,$datax);

    $lp->SetColor('red');

    $lp->mark->SetCallbackYX('markCallback');

    $graph->Add($lp);   
}

eller du kan smide dem i et array ;)
Avatar billede ebusiness Nybegynder
27. maj 2009 - 16:20 #2
Det du leder efter er nok et array:

$b = array(); //sætter b til at være et array
$b[]="streng1"; //fylder en streng ind i det første ledige element i b
$b[]=123; //fylder et tal ind i det første ledige element i b
$b[]="streng2";
$b[3]="streng3"; //fylder en streng ind i element 3 i b
$b["aloha"]="streng4"; //fylder en streng ind i element aloha i b

echo $b[0]; //udskriver element 0 i b ("streng1")
echo $b[1];
echo $b[2];
echo $b[3];
echo $b["aloha"];

foreach ($b as $a) { //udskriver alle elementer i b
    echo $b;
}

Mere info: http://dk.php.net/manual/en/language.types.array.php
Avatar billede shjorth Nybegynder
27. maj 2009 - 16:25 #3
Har nu forsøgt med:

$i = 0;
while($row = mysql_fetch_array($q))
{
    $q2 = mysql_query("SELECT * FROM am_destinations WHERE id = '".$row['route_id']."'")or die(mysql_error());
    $row2 = mysql_fetch_array($q2);
 
    $datax[$i] = array($row2['plotx_from'],$row2['plotx_to']);
    $datay[$i] = array($row2['ploty_from'],$row2['ploty_to']);
    $i++;
 
    $lp[$i] = new LinePlot($datay[$i],$datax[$i]);

    $lp[$i]->SetColor('red');

    $lp[$i]->mark->SetCallbackYX('markCallback');

    $graph->Add($lp[$i]);
   
    $i++;
}

Men så indeholder $datax og $datay ikke noget, af en eller anden grund?
Avatar billede shjorth Nybegynder
27. maj 2009 - 16:27 #4
$i++; rykket til bunden, og så virker det perfekt :D

Mange tak.

Det jeg ledte efter var nok [] tagget. Jeg havde selv forsøgt med $datax$i = ...

Takker mange gange
Avatar billede zkill Nybegynder
28. maj 2009 - 10:28 #5
ok.. troede kun du sku gemme datax og datay.. derfor jeg ik satte den på de andre..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester