mysql resultaat in een tabel

Status
Niet open voor verdere reacties.

kloppert

Gebruiker
Lid geworden
1 sep 2009
Berichten
8
Dag,
Ik was aan het proberen om foto's in een tabel te zetten. De foto's zijn linkjes naar picasaweb, en de linkjes staan in een database.
De code ziet er dan als volgt uit:
PHP:
else {
    while($data = mysql_fetch_assoc($sql)) {
	$i = 1;
        echo '<table><tr>';
	while($i < 6){ 
            echo '<td>'.htmlspecialchars(stripslashes($data['datum'])).'<br>';
            echo $data['link'].'<br><br></td>';
	    $i++;
	    $data = mysql_fetch_assoc($sql);
	}
	echo '</tr>';
    } 
    echo '</table>';
}
Er gaan dus 5 foto's in een rij, maar als ie in de rij zit wordt het volgende resultaat niet uitgelezen met "mysql_fetch". Daarom heb ik dat een keertje extra erin gezet, onderin de 2e while lus. Maar het probleem is nu dat de laatste foto (link) niet wordt weergegeven, omdat het "mysql_fetch" achteraan in de while lus staat.
Iemand een oplossing?
Alvast bedankt, kloppert
 
Blijft $i op deze wijze niet altijd 1? Anyways, wat doet het wel en wat doet het niet. Als $data['datum'] wel klopt, en $data['link'] niet, dan ligt het ergens anders aan dan de fetch natuurlijk (want ze horen bij dezelfde row uit de database).

Misschien even een gehele code plaatsen en zeggen wat je exact wil als uitkomst.
 
De code voor de tabel:
Code:
CREATE TABLE `foto` (
  `id` int(11) NOT NULL auto_increment,
  `link` text NOT NULL,
  `datum` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
En de hele code:
PHP:
<?php
$host = ***
$user = ***
$pass = ***
$datb = ***

// Verbinding maken
mysql_connect($host, $user, $pass) or die ("Er is iets mis gegaan");
mysql_select_db($datb) or die ("Er is iets mis gegaan");

$sql = mysql_query("SELECT * FROM foto ORDER BY id DESC");
if (mysql_num_rows($sql) == 0) {
    // Als er nog geen reacties geplaatst zijn
    echo 'Er zijn geen foto\'s!';
} 
else {
    while($data = mysql_fetch_assoc($sql)) {
	$i = 1;
        echo '<table><tr>';
	while($i < 6){ 
            echo '<td>'.htmlspecialchars(stripslashes($data['datum'])).'<br>';
            echo $data['bericht'].'<br><br></td>';
	    $i++;
	    $data = mysql_fetch_assoc($sql);
	}
	echo '</tr>';
    } 
    echo '</table>';
}
?>
Alle gegevens worden er goed uitgehaald, dat stuk werkt wel. Probleem is nu echter dat de laatste link in de 2e while lus niet wordt getoond.
En $i blijft niet steeds 1, deze wordt alleen 1 wanneer er aan een nieuwe rij met foto's (links) begonnen wordt.
 
Laatst bewerkt:
En je wilt 5 foto's in een rij van de tabel plaatsen toch?
en daarna op de volgende rij verder gaan
 
PHP:
$cnt = 0;
echo '<table>';
echo '<tr>';
    while($data = mysql_fetch_assoc($sql)) {
      if($cnt == 5)
     {
      echo '</tr><tr>';
      $cnt = 0;
      }
            echo '<td>'.htmlspecialchars(stripslashes($data['datum'])).'<br>';
            echo $data['link'].'<br><br></td>';
      $cnt++;
 }

//om in de laatste regels lege <td></td> toe te voegen, zodat de tabel niet in elkaar zakt
while($cnt < 5)
{
echo '<td></td>';
$cnt++
}

echo'</tr>';
echo '</table>';
 
Super! Bedankt Leon, het werkt helemaal.
(behalve dit dan: $cnt++, ";" vergeten)
 
mooi zo! Nou die ";" zul je me wel vergeven he ;)
nu kun je de vraag sluiten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan