/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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>&nbsp;</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.

Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste