webForumDet fria alternativet

php och celler

13 svar · 703 visningar · startad av pellesvenne

pellesvenneMedlem sedan jan. 2002226 inlägg
#1
<tr>
<td>test</td>
<td>Tom</td>
<td>test2</td>
</tr>

<tr>
<td>test3</td>
<td>Tom</td>
<td>test4</td>
</tr>

<tr>
<td>test5</td>
<td>Tom</td>
$i = 1;
while ($rad=mysql_fetch_array($result)) {

if ($rad['typ'] == 1) {

if ($i == 1) {
echo "<br>&lt;tr><br>&lt;td>".$rad['rubrik']."&lt;/td><br>";
}elseif($i == 2) {
echo "&lt;td>Tom&lt;/td><br>";
}elseif($i == 3) {
echo "&lt;td>".$rad['rubrik']."&lt;/td><br></&lt;/tr>";
echo "&lt;/tr><br><br>";
$i = 0;
}

$i++;
}
HamatzuMedlem sedan mars 2005242 inlägg
#2

Du får nog ta och beskriva ditt problem lite bättre om du vill ha hjälp.

pellesvenneMedlem sedan jan. 2002226 inlägg
#3

kolla på html koden! det en <td> samt <tr> vid slutet som fattas hur kan man få dit dem?.

emissionMedlem sedan dec. 19996 095 inlägg
#4

pellesvenne skrev:

kolla på html koden!.

Eh....jag skulle kunna säga "Kolla på php-koden!". Du trycker ut br-taggar i tabellen där de inte får vara (endast inne i en td) och tr-taggarna är html-encodade med <...

Vad vill du uppnå och vad är problemet?!

PeddaMedlem sedan juni 20004 880 inlägg
#5

Förmodar att du inte har mer data i databasen så du aldrig kommer in i den sista ifsatsen då whilesatsen redan har brutits.
Du får nog kolla hur många rader du har i databasen och på slutet fylla ut din tabell med tomma <td> och avslutande </tr>

Och ang. det emission skriver om dina br-taggar så ska du använda \r \n (beroende på server) för att göra radbrytningar i htmlkod.
t.ex.

echo "<td>Tom</td>\n";
pellesvenneMedlem sedan jan. 2002226 inlägg
#6

kan du visa kod exempel? jag vet inte riktigt hur jag ska göra?

PeddaMedlem sedan juni 20004 880 inlägg
#7
 $i = 1;
while ($rad=mysql_fetch_array($result)) {

if ($rad['typ'] == 1) {

if ($i == 1) {
     echo "<tr>\n<td>".$rad['rubrik']."</td>\n";
}elseif($i == 2) {
     echo "<td>Tom</td>\n";
}elseif($i == 3) {
     echo "<td>".$rad['rubrik']."</td>\n";
     echo "</tr>\n\n";
     $i = 0;
}

$i++;
} 

// är while-satsen slut så fyller vi på tabellen med resterande <td> och </tr>
if($i == 2) {
     echo "<td>Tom</td>\n";
     $i++;
}
if($i == 3) {
     echo "<td>Tom</td>\n";
     echo "</tr>\n\n";
}

Otestad kod, men borde funka.

pellesvenneMedlem sedan jan. 2002226 inlägg
#8

Nu blev det såhär?

<tr>
<td>Test1</td>
<td>Tom</td>
<td>Tom</td>
</tr>

<td>Test2</td>
</tr>

<tr>
<td>Test3</td>
<td>Tom</td>
<td>Tom</td>
</tr>

<td>Test4</td>
</tr>

<tr>
<td>Test5</td>
<td>Tom</td>
<td>Tom</td>
</tr>
PeddaMedlem sedan juni 20004 880 inlägg
#9

Ok, räknade inte dina måsvingar innan och ser nu att i koden du gav oss hade du inte den sista med så mina två sista if-satser har nog hamnat inuti din while-sats. Flytta ur dom ur while-satsen så dom körs efteråt som dom ska.

/red. Lägger in koden

 $i = 1;
while ($rad=mysql_fetch_array($result)) {

if ($rad['typ'] == 1) {

if ($i == 1) {
     echo "<tr>\n<td>".$rad['rubrik']."</td>\n";
}elseif($i == 2) {
     echo "<td>Tom</td>\n";
}elseif($i == 3) {
     echo "<td>".$rad['rubrik']."</td>\n";
     echo "</tr>\n\n";
     $i = 0;
}

$i++;
}

}    //      <-- den avslutande måsvingen som inte fanns med i koden

// är while-satsen slut så fyller vi på tabellen med resterande <td> och </tr>
if($i == 2) {
     echo "<td>Tom</td>\n";
     $i++;
}
if($i == 3) {
     echo "<td>Tom</td>\n";
     echo "</tr>\n\n";
}
pellesvenneMedlem sedan jan. 2002226 inlägg
#10

Hmm nu visas bara 30 poster istället för 45?

PeddaMedlem sedan juni 20004 880 inlägg
#11

Kolla koden i mitt förra inlägg.

pellesvenneMedlem sedan jan. 2002226 inlägg
#12

jepp men man får inte med alla poster med senaste koden? och inte min första kod heller

pellesvenneMedlem sedan jan. 2002226 inlägg
#13

jag tror jag löste det så här!

while ($rad=mysql_fetch_array($result)) { 
if ($rad['typ'] == 2) { 
$a++;

if ($i == 1) { 
     echo "<tr>\n<td>".$rad['rubrik']."</td>\n"; 
}

if($i == 2) { 
     echo "<td>Tom</td>\n"; 
     $i++; 
} 

if($i == 3) { 
     echo "<td>".$rad['rubrik']."</td>\n"; 
     echo "</tr>\n\n"; 
     $i = 0; 
} 

$i++; 
} 

}   //      <-- den avslutande måsvingen som inte fanns med i koden 

// är while-satsen slut så fyller vi på tabellen med resterande <td> och </tr> 

if($i == 2) { 
     echo "<td>Tom</td>\n"; 
     $i++; 
} 

if($i == 3) { 
  echo "<td>Tom</td>\n"; 
  echo "</tr>\n\n"; 
}
pellesvenneMedlem sedan jan. 2002226 inlägg
#14

tack ska du ha pedda!

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb