webForumDet fria alternativet

Hämta specifik array

PHP

9 svar · 745 visningar · startad av filipbh

Medlem sedan juli 2002405 inlägg
Frågan#1

Hej, jag har lite problem och hoppas på att någon/några vänliga själar kan hjälpa till.

Jag har gjort en sql-hämtning som hämtar data i en viss ordning. Hur gör jag om jag vill ha en viss rad/id´s uppgifter?

Så här ser koden ut:

$pos=1;
echo "<tr><td>";

//Tabell-table
echo "<table width=\"350\" cellspacing=\"0\"><tr><th>Pos.</th><th>Lag</th><th>#&nbsp;</th><th>&nbsp;V&nbsp;</th><th>&nbsp;O&nbsp;</th><th>&nbsp;F&nbsp;</th><th>&nbsp;Mål&nbsp;</th><th>&nbsp;MS&nbsp;</th><th>&nbsp;Poäng&nbsp;</th></tr>";
while($post=mysql_fetch_array($result)){
 $tabell_id[$id] = $post['id'];
 $tabell_pos[$id] = $pos;
 $tabell_lag[$id] = $post['lag'];
 $tabell_matcher[$id] = $post['matcher'];
 $tabell_v[$id] = $post['v'];
 $tabell_o[$id] = $post['o'];
 $tabell_f[$id] = $post['f'];
 $tabell_gmal[$id] = $post['gmal'];
 $tabell_imal[$id] = $post['imal'];
 $tabell_ms[$id] = $post['ms'];
 $tabell_poang[$id] = $post['poang'];
 $pos++;

echo "<tr bgcolor=\"";?><? echo ($bg2++%2) ? '#FFFFFF' : '#ECE9D8' ?>"><? echo "<td>".$tabell_pos[$id] . "</td><td>" . $tabell_lag[$id] . "</td><td>" . $tabell_matcher[$id] . "</td><td>&nbsp;" . $tabell_v[$id] . "</td><td>&nbsp;" . $tabell_o[$id] . "</td><td>&nbsp;" . $tabell_f[$id] . "</td><td>" . $tabell_gmal[$id] . ":" . $tabell_imal[$id] . "</td><td align=\"right\">" . $tabell_ms[$id] . "</td><td align=\"right\">" . $tabell_poang[$id] . "</td></tr>";

}//Slut hämtar tabellen

echo "</table>";
//Slut tabell-table

echo "(Ett visst lags placering: " .$tabell_pos['3'] . "-".$tabell_lag['3'] . "-".$tabell_v['3'] . "-".$tabell_poang['3'];

Den sista echo-raden skriver inte ut id 3´s info. Jag måste ju på nåt sätt kunna få ut informationen efter mysql-hämtningen.

Säg till om jag ska förtydliga mig...

Medlem sedan juli 2002405 inlägg
#2

Tyvärr lever jag inte alltid efter hur jag "lär" (Koda inte när du är trött)...

Felet är helt uppenbart då jag inte bestämde $id.
Det ska givetvis vara $id = $post['id']; och inte $tabell_id[$id] = $post['id'];

Medlem sedan dec. 2004736 inlägg
#3

Är inte särskilt hemma på PHP, men om $pos är en integer så skapas ju dina $tabell_x med integer som index, och därför ska du väl hämta det enligt $tabell_pos[3] ?

"Koda inte när du är trött" - Nej, just det. "$pos" != "$id"... Fel tänkt av mig..

Medlem sedan juli 2002405 inlägg
#4

Ledel skrev:

Är inte särskilt hemma på PHP, men om $pos är en integer så skapas ju dina $tabell_x med integer som index, och därför ska du väl hämta det enligt $tabell_pos[3] ?

$pos är dock bara den tillfälliga ordningen som varje rad får och kan därför variera från hämtning till hämtning, beroende på hur datan ser ut. Tack för din tid i alla fall...

Medlem sedan feb. 20099 inlägg
#5

Spontan kommentar:
Varför göra det så krångligt med flera variabler.
Om du skapar 2-dimensionella arrays så blir det lite lättare.

ex.

$tabell = array($id=>array("data1"=>"värde"));

eller i ditt fall:

$tabell[$id] = array($data)
Medlem sedan juli 2002405 inlägg
#6

gernberg skrev:

Spontan kommentar:
Varför göra det så krångligt med flera variabler.
Om du skapar 2-dimensionella arrays så blir det lite lättare.

ex.

$tabell = array($id=>array("data1"=>"värde"));

eller i ditt fall:

$tabell[$id] = array($data)

Hur ska jag kunna särskilja de olika värdena då?

Medlem sedan feb. 20099 inlägg
#7

Nu förstår jag inte hur du menar, kan du förtydliga?

Medlem sedan juli 2002405 inlägg
#8

gernberg skrev:

Nu förstår jag inte hur du menar, kan du förtydliga?

Det verkar ha hamnat lite i fel ordning nu tror jag för högre upp förklarade jag mitt misstag. Jag hade aldrig gett $id ett värde i och med att jag skrev $tabell_id[$id] = $post['id']; istället för $id = $post['id'];. Det ändrade jag och nu fungerar allt hur fint som helst.

Fast jag är nog ändå inte säker på hur jag ska kunna få ut arrayen. Eller vilken array som hamnar i $tabell[$id] ($tabell[$id] = array($data)).

Medlem sedan feb. 20099 inlägg
#9

Din kod:

<?
$pos=1;
echo "<tr><td>";

//Tabell-table
echo "<table width=\"350\" cellspacing=\"0\"><tr><th>Pos.</th><th>Lag</th><th>#&nbsp;</th><th>&nbsp;V&nbsp;</th><th>&nbsp;O&nbsp;</th><th>&nbsp;F&nbsp;</th><th>&nbsp;Mål&nbsp;</th><th>&nbsp;MS&nbsp;</th><th>&nbsp;Poäng&nbsp;</th></tr>";
while($post=mysql_fetch_array($result)){
 $tabell_id[$id] = $post['id'];
 $tabell_pos[$id] = $pos;
 $tabell_lag[$id] = $post['lag'];
 $tabell_matcher[$id] = $post['matcher'];
 $tabell_v[$id] = $post['v'];
 $tabell_o[$id] = $post['o'];
 $tabell_f[$id] = $post['f'];
 $tabell_gmal[$id] = $post['gmal'];
 $tabell_imal[$id] = $post['imal'];
 $tabell_ms[$id] = $post['ms'];
 $tabell_poang[$id] = $post['poang'];
 $pos++;

echo "<tr bgcolor=\"";?><? echo ($bg2++%2) ? '#FFFFFF' : '#ECE9D8' ?>"><? echo "<td>".$tabell_pos[$id] . "</td><td>" . $tabell_lag[$id] . "</td><td>" . $tabell_matcher[$id] . "</td><td>&nbsp;" . $tabell_v[$id] . "</td><td>&nbsp;" . $tabell_o[$id] . "</td><td>&nbsp;" . $tabell_f[$id] . "</td><td>" . $tabell_gmal[$id] . ":" . $tabell_imal[$id] . "</td><td align=\"right\">" . $tabell_ms[$id] . "</td><td align=\"right\">" . $tabell_poang[$id] . "</td></tr>";

}//Slut hämtar tabellen

echo "</table>";
//Slut tabell-table

echo "(Ett visst lags placering: " .$tabell_pos['3'] . "-".$tabell_lag['3'] . "-".$tabell_v['3'] . "-".$tabell_poang['3'];

Mitt förslag

<?
$pos=1;
echo "<tr><td>";

//Tabell-table
echo "<table width=\"350\" cellspacing=\"0\"><tr><th>Pos.</th><th>Lag</th><th>#&nbsp;</th><th>&nbsp;V&nbsp;</th><th>&nbsp;O&nbsp;</th><th>&nbsp;F&nbsp;</th><th>&nbsp;Mål&nbsp;</th><th>&nbsp;MS&nbsp;</th><th>&nbsp;Poäng&nbsp;</th></tr>";
while($post=mysql_fetch_array($result)){
 $lag[$post['id']] = array_merge(array("pos"=>$pos), $post);
 $pos++;

echo "<tr bgcolor=\"";?><? echo ($bg2++%2) ? '#FFFFFF' : '#ECE9D8' ?>"><? echo "<td>".$pos. "</td><td>" . $post['lag']. "</td><td>" . $post['matcher']. "</td><td>&nbsp;" . $post['v']. "</td><td>&nbsp;" . $post['o']. "</td><td>&nbsp;" . $post['f'] . "</td><td>" . $post['gmail'] . ":" . $post['imal']. "</td><td align=\"right\">" .$post['ms']. "</td><td align=\"right\">" . $post['poang'] . "</td></tr>";

}//Slut hämtar tabellen

echo "</table>";
//Slut tabell-table

$laget = $lag[3]; // Hämtar laget med ID 3 till $laget

echo "(Ett visst lags placering: " .$laget['pos'] . "-". $laget['lag'] . "-".$laget['3']['v'] . "-".$laget['poang'];

// Prova också detta för att skriva ut alla lag
echo "<pre>";
print_r($lag);
echo "</pre>";

Jag har inte testat koden, men jag hoppas du förstår hur jag menar.

Medlem sedan juli 2002405 inlägg
#10

Ska testa. Tackar...

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)