|  | 		    
					
        
         
          
         
	
          | |  | HTML i en while løkke. Fra : Kasper Lund
 | 
 Dato :  28-06-07 12:55
 | 
 |  | Hej NG.
 
 Jeg er ved at lave en html side hvor jeg henter noget data fra en mysql
 database og præsenterer det i nogle tabeller.
 
 Jeg har så lavet en variabel der tælles op i while løkken så jeg kan lave
 mine tabeller, det ser ud som følgende:
 
 if (++$i % 2 == 0) echo "</tr><tr>\n";
 
 Problemet er nu at hvis der er to eller fire resultater der skal skrives ud
 får jeg en </tr><tr> for meget til sidst.
 
 Kan jeg tjekke om der er flere resultater tilbage og så droppe den sidste
 </tr><tr> hvis der ikke er flere?
 
 /Kasper
 
 
 |  |  | 
  Bertel Lund Hansen (28-06-2007) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  28-06-07 14:29
 | 
 |  | 
 
            Kasper Lund skrev:
 > Jeg har så lavet en variabel der tælles op i while løkken så jeg kan lave
 > mine tabeller, det ser ud som følgende:
 > if (++$i % 2 == 0) echo "</tr><tr>\n";
 Prøv at vise en større del af koden så man kan se hvor du laver
 din if-sætning.
 -- 
 Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/ |  |  | 
  Kasper Lund (28-06-2007) 
 
	
          | |  | Kommentar Fra : Kasper Lund
 | 
 Dato :  28-06-07 18:21
 | 
 |  | On Thu, 28 Jun 2007 15:29:03 +0200, Bertel Lund Hansen wrote:
 
 > Prøv at vise en større del af koden så man kan se hvor du laver
 > din if-sætning.
 >
 
 Kommer her, som du kan se har jeg brugt din hjælp fra den anden dag - tak
 for den forresten.
 
 while($row = mysql_fetch_assoc($result)){
 
 if (ereg(":",$row['service_description'])){
 $drev = $row['service_description'];
 $fri_tmp = $row['plugin_output'];
 $pos=-1;
 while (!ctype_digit($fri_tmp[++$pos]));
 sscanf (substr($fri_tmp,$pos), "%d",&$fri);
 $brugt = (100-$fri);
 
 echo "<td>\n";
 echo "Forbrugt harddisk plads på: {$drev}\n";
 echo "<br />\n";
 echo "<br />\n";
 echo "<img src=\"/rapport/functions/piechart.php?data=$fri*$brugt&label=Fri*Brugt\" />\n";
 echo "</td>\n";
 if (++$i % 2 == 0) echo "</tr><tr>\n";
 }
 }
 
 
 |  |  | 
  Bertel Lund Hansen (28-06-2007) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  28-06-07 21:13
 | 
 |  | 
 
            Kasper Lund skrev:
 > Kommer her, som du kan se har jeg brugt din hjælp fra den anden
 > dag - tak for den forresten.
 Velbekomme. Jeg barberer lige koden ned til det essentielle og bruger pseudotags:
 $i=0;
 $new_row="<tr>";
 while (etellerandet) {
    echo $new_row;
    echo "<td>Besked\n";
    echo "<image></td>\n";
    if (++$i % 2 == 0) $new_row="</tr><tr>\n";
    else $new_row="";
 }
 echo "</tr>\n";
 -- 
 Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/ |  |  | 
   Martin (28-06-2007) 
 
	
          | |  | Kommentar Fra : Martin
 | 
 Dato :  28-06-07 22:06
 | 
 |  | Bertel Lund Hansen wrote:
 > Kasper Lund skrev:
 >
 >> Kommer her, som du kan se har jeg brugt din hjælp fra den anden
 >> dag - tak for den forresten.
 >
 > Velbekomme. Jeg barberer lige koden ned til det essentielle og bruger pseudotags:
 >
 > $i=0;
 > $new_row="<tr>";
 > while (etellerandet) {
 >    echo $new_row;
 >    echo "<td>Besked\n";
 >    echo "<image></td>\n";
 >    if (++$i % 2 == 0) $new_row="</tr><tr>\n";
 >    else $new_row="";
 > }
 > echo "</tr>\n";
 >
 
 $numberOfCols = 2;
 $i=0;
 echo '<tr>';
 while(...) {
 if($i%$numberOfCols==0) echo '</tr><tr>';
 echo '<td>...</td>';
 $i++
 }
 
 while($i < $numberOfCols) {
 echo '<td> </td>';
 $i++;
 }
 echo '</tr>';
 
 Ellers får man nogle tomme felter i tabellen, og det ka vi jo ikk ha :P
 
 
 |  |  | 
    Bertel Lund Hansen (28-06-2007) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  28-06-07 22:40
 | 
 |  | 
 
            Martin skrev:
 > $numberOfCols = 2;
 > $i=0;
 > echo '<tr>';
 > while(...) {
 >    if($i%$numberOfCols==0) echo '</tr><tr>';
 Din kode starter med at skrive "<tr></tr>".
 > Ellers får man nogle tomme felter i tabellen, og det ka vi jo ikk ha :P
 Det er sådan set kun IE der kløjes i det, og det ses kun hvis man
 har sat border på. Det er ikke en HTML-fejl.
 Men det er en god detalje at lave en variabel til at styre
 antallet af felter.
 -- 
 Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/ |  |  | 
     Martin (29-06-2007) 
 
	
          | |  | Kommentar Fra : Martin
 | 
 Dato :  29-06-07 22:19
 | 
 |  | Bertel Lund Hansen wrote:
 > Martin skrev:
 >
 >> $numberOfCols = 2;
 >> $i=0;
 >> echo '<tr>';
 >> while(...) {
 >>    if($i%$numberOfCols==0) echo '</tr><tr>';
 >
 > Din kode starter med at skrive "<tr></tr>".
 
 Nej den starter med </tr><tr> :P
 Ja, </tr> ska self til sidst
 
 
 
 >
 >> Ellers får man nogle tomme felter i tabellen, og det ka vi jo ikk ha :P
 >
 > Det er sådan set kun IE der kløjes i det, og det ses kun hvis man
 > har sat border på. Det er ikke en HTML-fejl.
 >
 > Men det er en god detalje at lave en variabel til at styre
 > antallet af felter.
 
 
 |  |  | 
 |  |