Avatar billede macho Praktikant
29. juni 2004 - 22:57 Der er 12 kommentarer og
1 løsning

Tilføje rækkenummer ved udtræk fra MySql database - hvordan?

Jeg skal have lavet en resultatliste til et motionsløb og vil gerne kunne tilføje "placering" i en ny kolonne ud fra nedenstående udtræk fra en MySql database. Sorteringen er sådan set i orden, med hurtigste løber øverst. Jeg vil bare gerne tilføje 1, 2, 3, 4 o.s.v. ud for hver række, så man kan se, hvilken placering man har fået i løbet!



<?php
$db = mysql_connect("db", "navn", "password");
mysql_select_db("navn",$db);
$result = mysql_query("SELECT * FROM tabel WHERE gruppe='3KM-DRENGE' ORDER BY timer ASC, minutter ASC, sekunder ASC, koen DESC, foedeaar DESC",$db);
echo "<table cellpadding=0 cellspacing=3 border=0><tr><td><u>Gender</u></td><td><u>Last Name</u></td><td><u>First Name</u></td><td><u>Year of Birth</u></td><td><u>Club</u></td><td><u>Country</u></td><td><u>Timer</u></td><td><u>Minutter</u></td><td><u>Sekunder</u></td><td><u>Placering</u></td></tr>";
$alternate = "2";
while($myrow = mysql_fetch_row($result)) {
$field1 = $myrow["7"];
$field2 = $myrow["1"];
$field3 = $myrow["0"];
$field4 = $myrow["6"];
$field5 = $myrow["9"];
$field6 = $myrow["5"];
$field7 = $myrow["15"];
$field8 = $myrow["16"];
$field9 = $myrow["17"];

if ($alternate == "1") {
$color = "#ffffff";
$alternate = "2";
}
else {
$color = "#eaeaea";
$alternate = "1";
}
echo "<tr bgcolor=$color><td>$field1</td><td>$field2</td><td>$field3</td><td>$field4</td><td>$field5</td><td>$field6</td><td>$field7</td><td>$field8</td><td>$field9</td></tr>";
}
echo "</table>";
?>



Anyone?
Avatar billede dadane Novice
29. juni 2004 - 23:00 #1
I stedet for:

while($myrow = mysql_fetch_row($result)) {

skriver du

for ($i=1; $myrow = mysql_fetch_row($result)); $i++) {
Avatar billede dadane Novice
29. juni 2004 - 23:01 #2
Og så ændre du selvfølgelig din echo til at inkludere $i også.

echo "<tr bgcolor=$color><td>$i</td><td>$field1</td><td>$field2...
Avatar billede dadane Novice
29. juni 2004 - 23:03 #3
Det her:

if ($alternate == "1") {
$color = "#ffffff";
$alternate = "2";
}
else {
$color = "#eaeaea";
$alternate = "1";
}
echo "<tr bgcolor=$color><

Skriver kortere som

?><tr bgcolor="<?=$i%2?"#eaeaea":"#ffffff"?>"><td>...Og så slutter med <? i stedet for ";
Avatar billede macho Praktikant
29. juni 2004 - 23:06 #4
Virker perfekt! Dog havde du lige en ")" for meget. Den rigtige skal se sådan ud:

for ($i=1; $myrow = mysql_fetch_row($result); $i++) {

Smid et svar, så er pts. dine :-)
Avatar billede dadane Novice
29. juni 2004 - 23:07 #5
Vil nok i det hele taget ændre den alt fra og med din while til:

for ($i=1; $myrow = mysql_fetch_array($result); $i++) {
  ?><tr bgcolor=$color><td>$i</td><td><?=$row['gender']?></td><td><?=$row['lastname']?>...</td></tr>
} ?>
</table>
Avatar billede dadane Novice
29. juni 2004 - 23:08 #6
Ups - med det farvetrick jeg skrev ovenfor. Altså ikke med $color men "<?=$i%2?"#eaeaea":"#ffffff"?>"
Avatar billede macho Praktikant
29. juni 2004 - 23:17 #7
Takker endnu en gang - koden jeg har brugt først, har jeg andet steds fra, men din ser bestemt noget nemmere ud, så den vil jeg da gøre brug af!
Avatar billede dadane Novice
29. juni 2004 - 23:21 #8
Især den med at bruge mysql_fetch_array i stedet for mysql_fetch_row og så bruge deres navne synes jeg er god. Det gør koden MEGET mere overskuelig.

Hvad er $myrow["9"]? Og hvad hvis du får lyst til at tilføje felter til din tabel?

Iøvrigt bør du ikke lave SELECT * FROM med mindre du har brug for det hele. Nøjes med at select'e de felter du har noget at bruge til.
Avatar billede macho Praktikant
29. juni 2004 - 23:31 #9
dadane->
Jeg får mange gode råd fra dig - dejligt!
Har du måske yderligere en idé til, hvordan jeg centrere et felt i ovenstående tabel?
Avatar billede macho Praktikant
29. juni 2004 - 23:42 #10
Ja, det fandt jeg så selv hurtigt ud af: <center> placereres således:
?><tr bgcolor=$color><center><td>$i</td></center><td><center><?=$row['gender']?></td><center><td><center><?=$row['lastname']?>...</td></center>
Avatar billede macho Praktikant
29. juni 2004 - 23:46 #11
Den sidste gik lidt for hurtigt, så her er den rigtige:

?><tr bgcolor=$color><td><center>$i</center></td><td><center><?=$row['gender']?><center></td><td><center><?=$row['lastname']?></center>...</td>
Avatar billede dadane Novice
30. juni 2004 - 07:36 #12
<td align="center"> er vidst den autoriserede måde at gøre det på.
Avatar billede macho Praktikant
30. juni 2004 - 09:13 #13
Næh, det gi'r nemlig fejl, men det kan gøres uden "klammer" omkring center:
<td align=center>
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