Récupérér les 4 derniers enregistrements d'une table !

WRInaute discret
Bonjour !

Je souhaiterai récupérer les 4 derniers enregistrements d'une table mysql .

J'utilise ca mais ca marche pas (unexpected T_STRING line38) :

<?php
// on se connecte à notre base
mysql_connect('localhost', 'root', 'blabla');
mysql_select_db('matable');

$requete='SELECT FROM listing LIMIT 4';

$var= mysql query($requete) or die;

while ($data=mysql_fetch_array($var))

{
echo '<table><tr><td>'.$data['img'].'</td><td width="400">';
$id = $data["id"];
$titre = htmlentities(StripSlashes($data["titre"]));
echo "<a href=\"../../cine/fc/film.php?id=$id\" class=txtl>$titre</a>";
echo '<br><font class="txth"><font color="06347a" size="2"><b>Genre</b> :
'.$data['genre'].'
<br><b>De</b> :
'.$data['realisateurs'].'
<br><b>Avec</b> :
'.$data['acteurs'].'
</font></TD></TR></TABLE>';


?>
<?
}
// on ferme la connexion à la base de données.
mysql_close ();


?>

Le LINE 38 c'est le début de l'echo , mais je vois pas d'erruer moi pourtant ...lol


Merci
 
WRInaute discret
A mon avis, l'erreur provient de la mauvaise utilisation des quotes et des guillements dans la ligne "echo..."

Essayes plutot ça par exemple :

echo "<table><tr><td>".$data['img']."</td><td width=\"400\">";


Concernant la requete SQL proprement dite :
$requete='SELECT FROM listing LIMIT 4';
Si tu spécifies pas de clause ORDER BY ... (ORDER BY date DESC, ORDER BY id... ? je ne sais pas ce que tu as dans ta base), tu ne peux pas être certain d'obtenir les quatre derniers enregistrements...
 
WRInaute impliqué
Code:
<?php
// on se connecte à notre base
mysql_connect('localhost', 'root', 'blabla');
mysql_select_db('matable');

$var= mysql_query("SELECT *  FROM listing ORDER BY titre ASC LIMIT 4") or die();
while ($data = mysql_fetch_array($var))

{
echo '<table><tr><td>'.$data['img'].'</td><td width="400">';
echo '<a href="../../cine/fc/film.php?id='.$data["id"].'" class="txtl">'.htmlentities(stripslashes($data["titre"])).'</a>';
echo '<br><font class="txth"><font color="#06347a" size="2"><b>Genre</b> :'.$data['genre'].'
<br><b>De</b> :'.$data['realisateurs'].'
<br><b>Avec</b> :'.$data['acteurs'].'
</font></TD></TR></TABLE>';
}
// on ferme la connexion à la base de données.
mysql_close ();
?>

Et balance une erreur plus détaillée si t'en obtiens (j'avais pas de ligne 38 dans ton code)
 
WRInaute passionné
Ma version à moi ;) *

Code:
<?php
// on se connecte à notre base
mysql_connect('localhost', 'root', 'blabla');
mysql_select_db('matable');

$var = mysql_query("SELECT id, img, titre, genre, realisateurs, acteurs  FROM listing ORDER BY id DESC LIMIT 4") or die(mysql_error());

// on ferme la connexion à la base de données.
mysql_close ();

while ($data = mysql_fetch_array($var)) {
?>
<table>
 <tr>
  <td><?php echo $data['img']; ?></td>
  <td width="400"><a href="../../cine/fc/film.php?id=<?php echo $data['id']; ?>" class="txtl"><?php echo htmlentities(stripslashes($data['titre'])); ?></a>
  <br><font class="txth"><font color="#06347a" size="2"><b>Genre</b> : <?php echo htmlentities(stripslashes($data['genre'])); ?>
  <br><b>De</b> : <?php echo htmlentities(stripslashes($data['realisateurs'])); ?>
  <br><b>Avec</b> : <?php echo htmlentities(stripslashes($data['acteurs'])); ?>
  </font></td>
 </tr>
</table>
<?php
}
?>

* enfin, presque, j'aurais plutôt utilisé des CSS...

Fred
 
WRInaute discret
lol


Alors résultat : c'est le code a george qui fonctionne !

Il fonctionne parfaitement meme , il me renvoi bien les 4 derniers enregistrements !

Les notres fonctionnaient en fait mais ne nous retournaient pas les 4 derniers enregistrements ...


Une idée peut etre de ce qui n'allait pas george ? (afin d'éviter ces erreurs par la suite)
 
Discussions similaires
Haut