Gein Medlem sedan sep. 2000 5 700 inlägg Frågan 25 sep. 2003 16:59 #1 <?php
$query = "SELECT hole, hcp FROM golf_bana_scoreboard WHERE id = ".$_POST['course']." ORDER BY hcp ASC";
$result = mysql_query($query, $link)
OR DIE("Fel i queryn: <br />".$query);
while($array = mysql_fetch_array($result))
{
foreach($array as $item){
echo $item."<br>";
}
}
?>
Denna kod skriver ut dubbel upplaga av varje fält. Varför gör den det?
Det är två kolumner och 18 rader.
Om jag kikar i t.ex. MySQL-front va svaret skulle ge mej ser det ut ungefär såhär:
hole hcp
4 1
15 2
5 3
... osv
Men php-koden spottar ut följande:
4
4
1
1
15
15
2
2
5
5
3
3
... osv
Varför kör den ut dubbel upplaga av svaret?
Gein Medlem sedan sep. 2000 5 700 inlägg Aha, så här ser den tydligen ut:
Key: 0; Value: 4
Key: hole; Value: 4
Key: 1; Value: 1
Key: hcp; Value: 1
Key: 0; Value: 15
Key: hole; Value: 15
Key: 1; Value: 2
Key: hcp; Value: 2
Key: 0; Value: 5
Key: hole; Value: 5
Key: 1; Value: 3
Key: hcp; Value: 3
Det förklarar saken.
Hur gör man för att skippa att lagra svaret i arrayen med fält-namn? Är enbart intresserad av nuffrorna
Peeer Medlem sedan mars 2002 5 907 inlägg Re: Hantera svar från SQL-fråga
<?php
$query = "SELECT hole, hcp FROM golf_bana_scoreboard WHERE id = ".$_POST['course']." ORDER BY hcp ASC";
$result = mysql_query($query, $link)
OR DIE("Fel i queryn: <br />".$query);
while($array = mysql_fetch_array($result))
{
echo $array["hole"] . " - " . $array["hcp"] ."<br>";
}
?>
Kan du inte göra något sådant här då? Eller blir det fortfarande dubbelt då?
Gein Medlem sedan sep. 2000 5 700 inlägg Jag förklarade nog lite dåligt tror jag. Men jag löste iaf mitt problem genom att kasta över alla värden i en ny array.
Matte Medlem sedan aug. 2000 2 975 inlägg mysql_fetch_assoc() hämtar en array med strängindex (associativ).
mysql_fetch_row() hämtar en numrerad array.
mysql_fetch_array() hämtar med både associativa och numeriska index. Du får med andra ord två av varje värde.
Använd någon av de två översta.
Gein Medlem sedan sep. 2000 5 700 inlägg Där har vi det jag sökte :)
mysql_fetch_row() va det givetvis. Tack
Mungo Medlem sedan jan. 2000 372 inlägg Ja, eller mysql_fetch_array($result, MYSQL_NUM) :)