webForumDet fria alternativet

Hämta specifik array

9 svar · 742 visningar · startad av filipbh

filipbhMedlem sedan juli 2002402 inlägg
#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...

filipbhMedlem sedan juli 2002402 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'];

LedelMedlem sedan dec. 2004735 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..

filipbhMedlem sedan juli 2002402 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...

gernbergMedlem 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)
filipbhMedlem sedan juli 2002402 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å?

gernbergMedlem sedan feb. 20099 inlägg
#7

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

filipbhMedlem sedan juli 2002402 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)).

gernbergMedlem 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.

filipbhMedlem sedan juli 2002402 inlägg
#10

Ska testa. Tackar...

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb