Gå til innhold

Flere queries på en gang


Anbefalte innlegg

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
Videoannonse
Annonse

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
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

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
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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...