ZoRaC Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Hei! Kan noen se litt på denne koden: <?php include 'db.inc.php'; /* Main SQL query */ $query = "SELECT ID, dag FROM resultater LIMIT 0,30"; $result = mysql_query($query) or die("<br>Query failed:<br> $query"); $num=mysql_numrows($result); mysql_close(); $i_main=0; while ($i_main < $num) { $dag=mysql_result($result,$i_main,"dag"); $ID=mysql_result($result,$i_main,"ID"); /* Sub SQL query */ $query_sub = "SELECT lop FROM resultater WHERE ID=$ID"; $result_sub = mysql_query($query_sub) or die("<br>Query failed:<br> $query_sub"); $num_sub=mysql_numrows($result_sub); mysql_close(); echo "Dag:<b> $dag</b><br><br>"; $i_sub=0; while ($i_sub < $num_sub) { $lop=mysql_result($result_sub,$i_sub,"lop"); echo "Løp: $lop<br>"; ++$i_sub; } ++$i_main; } ?> Basen har følgende felt: ID dag lop Dag kan være f.eks mandag, tisdag osv og løp kan være 01, 02, osv. Det kan være mange felt med "Mandag" som dag. f.eks kan lop 01, 02 og 03 ha dagen "Mandag" . Det jeg da vil er at det skal listes slik: Dag: Mandag Løp 01 Løp 02 Løp 03 Tirsdag Løp .... osv Når jeg bruker den koden der får jeg følgende feil: Query failed: SELECT lop FROM resultater WHERE ID=1 Hvorfor? Takker for svar! Lenke til kommentar
Klette Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 er ikke ekspert ( som du vet ), men prøv SELECT lop FROM resultater WHERE ID LIKE 1 Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 er ikke ekspert ( som du vet ), menprøv SELECT lop FROM resultater WHERE ID LIKE 1 Gir samme resultat... Sjekk mailen din Klette! Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 btw, hvis jeg kjører "SELECT lop FROM resultater WHERE ID=1" gjennom phpMyAdmin så går det greit... Lenke til kommentar
Klette Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 SELECT lop FROM resultater WHERE ID = "1" Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 Hjelper ingenting... Kan du svare på mailen min? Lenke til kommentar
Klette Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Er ikke hjemme, svarer om 30min. Lenke til kommentar
Klette Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 SELECT * FROM resultater WHERE ID = "1" ORDER BY dag , lop leser som en gal i manualen :wink: Lenke til kommentar
christt Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 For å liste ut alle lop sortert på dag ville jeg gjort det slik: $q = "SELECT * FROM resultater ORDER BY dag, lop"; $result = mysql_query($q); $currentdag = ""; while ($row = mysql_fetch_array($result)) { if ($row["dag"] <> $currendag) { echo $row["dag"]; $currentdag = $row["dag"]; } echo $row["lop"]); } Med forbehold om feil... Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 For å liste ut alle lop sortert på dag ville jeg gjort det slik: $q = "SELECT * FROM resultater ORDER BY dag, lop"; $result = mysql_query($q); $currentdag = ""; while ($row = mysql_fetch_array($result)) { if ($row["dag"] <> $currendag) { echo $row["dag"]; $currentdag = $row["dag"]; } echo $row["lop"]); } Med forbehold om feil... Det gir følgende resultat: fredag01 fredag02 mandag03 mandag05 Det jeg ønsker er: Fredag 01 02 Mandag 03 05 Lenke til kommentar
christt Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Det var rart... Prøv dette da: $q = "SELECT * FROM resultater ORDER BY dag, lop"; $result = mysql_query($q); $currentdag = ""; while ($row = mysql_fetch_array($result)) { if (strcasecmp($row["dag"],$currendag)) { echo '<b>' . $row["dag"] .'</b><br>; $currentdag = $row["dag"]; } echo $row["lop"] . '<br>'; } Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 Det var rart...Prøv dette da: $q = "SELECT * FROM resultater ORDER BY dag, lop"; $result = mysql_query($q); $currentdag = ""; while ($row = mysql_fetch_array($result)) { if (strcasecmp($row["dag"],$currendag)) { echo '<b>' . $row["dag"] .'</b><br>; $currentdag = $row["dag"]; } echo $row["lop"] . '<br>'; } Det nærmer seg: fredag 01 fredag 02 mandag 03 mandag 05 Lenke til kommentar
christt Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Det er denne linja det er noe galt med: if (strcasecmp($row["dag"],$currendag)) { Skjønner ikke hvorfor den ikke funker... Legg inn denne linja før if setningen: echo 'strcmp:' . strcasecmp($row["dag"],$currendag); Skriv det du får som resultat her i tråden... Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 strcmp:6fredag 01 strcmp:6fredag 02 strcmp:6mandag 03 strcmp:6mandag 05 Lenke til kommentar
christt Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Forandre alle tilfeller av: strcasecmp($row["dag"],$currendag)) til strcasecmp(trim($row["dag"]),trim($currendag))) gi meg så resultatet igjen Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 Denne koden: <?php include 'db.inc.php'; $q = "SELECT * FROM resultater ORDER BY dag, lop"; $result = mysql_query($q); $currentdag = ""; while ($row = mysql_fetch_array($result)) { echo 'strcmp:' . strcasecmp(trim($row["dag"]),trim($currendag)); if (strcasecmp(trim($row["dag"]),trim($currendag))) { echo '<b>' . $row["dag"] .'</b><br>'; $currentdag = $row["dag"]; } echo $row["lop"] . '<br>'; } ?> Gir dette resultat: strcmp:6fredag 01 strcmp:6fredag 02 strcmp:6mandag 03 strcmp:6mandag 05 Lenke til kommentar
christt Skrevet 19. mai 2003 Del Skrevet 19. mai 2003 Kan jeg få se innholdet i tabellen resultat? Lenke til kommentar
ZoRaC Skrevet 19. mai 2003 Forfatter Del Skrevet 19. mai 2003 ID dag lop 1 fredag 01 2 fredag 02 3 mandag 03 4 mandag 05 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå