Avatar billede stagedk Nybegynder
20. juli 2010 - 19:24 Der er 7 kommentarer og
1 løsning

problemer med rows.

Hej i kloge hoveder!, er stødt på et problem som jeg rigtig godt kunne tænke mig at få løst.
for at prøve at forklare det er jeg ved at lave en top20 liste over sange nogle sange i php som bliver hentet fra en db i mysql.

har sat dem op i tabeller men gider virkelig ikke skrive alle 20 ind (det bliver for uoverskueligt!).

<table cellspacing='5' border='0'>

  <tr align='left'>
    <th>01.</th>
    <th>$row[artist] - $row[songname]</th>
  </tr>


  <tr align='left'>
    <th>02.</th>
    <th>$row[artist] - $row[songname]</th>
  </tr>

sådan ser den ud nu, men problemet er jo at den viser det samme i begge. Er det muligt at lave noget like $row[1][songname], $row[2][songname] osv så [1] er tallet som er angivet i databasen?.

Skal i bruge mere info må i lige skrive :)
Avatar billede majbom Novice
20. juli 2010 - 19:34 #1
$res = mysql_query("SELECT artist, songname FROM songs ORDER BY position DESC LIMIT 20") or die(mysql_error());
while($rows = mysql_fetch_assoc($res)){
  echo "<tr align='left'>\n";
  echo "<th>".$rows['position']."</th>\n";
  echo "<th>".$rows['artist']." - ".$rows['songname']."</th>\n";
  echo "</tr>";
}


jeg ved ikke om du har placeringen af nummeret på din top20 i database, men hvis du har, har jeg brugt "position". hvis du ikke har, er det svært at lave en top20...
Avatar billede Slettet bruger
20. juli 2010 - 19:39 #2
Du skal loope resultatet af din SQL-forspørgelse igennem.
Et eksempel på hvordan det gøres:
<?php
$sql = "SELECT * FROM songs ORDER BY songname ASC";
$result = mysql_query($sql);
$songnr = 1;
$songlist = '<table cellspacing="5" border="0">';
while($row = mysql_fetch_assoc($result)) {
  if($songnr < 10) $songnr = "0".$songnr;
  $songlist .= '<tr align="left">'.
              '<th>'.$songnr.'.</th>'.
              '<th>'.$row["artist"].' - '.$row["songname"].'</th>'.
              '</tr>';
  $songnr++;
}
$songlist .= '</table>';
?>


Håber det kan hjælpe dig :-)
Avatar billede Slettet bruger
20. juli 2010 - 19:40 #3
Hov så ikke splazz havde skrevet imens jeg skrev min kommentar.. nå ja bedre sent end aldrig?
Avatar billede stagedk Nybegynder
20. juli 2010 - 19:49 #4
Tak for hjælpen splash, lige hvad jeg havde brug for :)!
Avatar billede stagedk Nybegynder
20. juli 2010 - 19:54 #5
nu lyder jeg måske lidt dum men det er ved at være et stykke tid siden jeg har rodet med mysql :D
Hvis nu jeg vil have den outputter numrene omvendt, hvad skriver jeg så i min query i stedet for order by number :D ?
altså så den hedder
20
19
18

og ikke
1
2
3
:)
Avatar billede stagedk Nybegynder
20. juli 2010 - 19:59 #6
nvm prob solved :D, smider du lige et svar splazzzzzzzzzzzzz
Avatar billede majbom Novice
20. juli 2010 - 20:02 #7
ORDER BY position ASC :)
Avatar billede majbom Novice
20. juli 2010 - 20:28 #8
tfp
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