webForumDet fria alternativet

Skriva ut allt i en array

5 svar · 469 visningar · startad av Sjodahl

SjodahlMedlem sedan maj 20033 218 inlägg
#1

Hej!

Inte riktigt säker på att jag gör rätt ...
Det jag vill göra är att hämta ut 5 st poster i en tabell och spara ner dem i en array för att sedan kunna skriva ut dem på sidan.
Börjar med att plocka ut dem i en funtion:

Funtionen ser ut så här verkar att fungera:

$query = "SELECT lastname, skill from players ORDER BY Skill DESC LIMIT 5";

$temp = mysql_query($query, $link);

while($Array = mysql_fetch_array($temp)){
$arr[] = $Array;
}

return $arr;
}

Här vill jag sedan lista dem efter jag anropat funtionen

$temp = funtion();

echo($temp['0']);

men allt jag lyckas att skriva ut är array ;D
Vet inte riktigt hur jag skall skriva ut värdet i arrayen

MatteMedlem sedan aug. 20002 975 inlägg
#2

Först, byt ut mysql_fetch_array mot mysql_fetch_row om du vill ha en numrerad array, eller mysql_fetch_assoc om du vill ha en array med associativa index. Med mysql_fetch_array får du bägge delarna i samma array.

Det du hämtar med din kod blir dessutom en tvådimensionell array.

För att skriva ut en array får du använda foreach eller något liknande, du kan inte skriva ut arrayen rakt upp och ner.

Ett exempel

foreach ($arr as $row) {

   $row = implode(", ", $row);
   echo $row."<br>\n";

}

En annan variant om du använt mysql_fetch_assoc

foreach ($arr as $row) {

   foreach ($row as $key => $val) {
      echo "$key = $val <br>\n";
   }

   echo "<hr>\n";

}
SjodahlMedlem sedan maj 20033 218 inlägg
#3

Tackar fungerar fin fint, men lär sig ngt nytt varje dag ;D

SjodahlMedlem sedan maj 20033 218 inlägg
#4

en liten fundering till bara.

meckar lite med att få värdena i en tabell som ser ut så här:

\<tr\>
\<td width="11%"\>Antal\<b\>\</b\>\</td\>
\<td width="56%"\>Spelarnamn\</td\>
\<td width="33%"\>Värde\</td\>
\</tr\>

-------- Min kod ------ skall värva in resultaten i tabellen

$arr = Top_5_Players();
foreach ($arr as $row) {

foreach ($row as $key => $val) {
echo "$val <br>\n";
}
// echo "<hr>\n";

} ?>

Alpha IIMedlem sedan maj 20002 993 inlägg
#5
print_r $array;
Patrik81Medlem sedan okt. 2001538 inlägg
#6

Jag skulle testat att göra något liknande detta:

foreach ($arr as $row){
   echo("<tr>\n");
   echo("<td><b>" . $row[0] . "</b></td>\n");
   echo("<td><b>" . $row[1] . "</b></td>\n");
   echo("<td><b>" . $row[2] . "</b></td>\n");
   echo("</tr>\n");

Det jag funderar lite över är att du hämtar bara efternamn och skill enligt din query, och du vill skriva ut antal, spelarnamn och värde... Så det kommer ju att bli ett litet fel med min kod, eftersom $row[2] inte kommer ha något värde.
Sedan får du ju möjligtvis ändra siffrorna till de fältnamn du har i databasen, om du väljer att använda mysql_fetch_assoc() men det kanske var självklart?

Iaf. hoppas detta hjälper lite.

MVH Patrik

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