Bonjour,
J'ai besoin d'aide pour l'utilisation d'une requête SQL LIMIT avec OFFSET je n'obtient jamais le résultat dont j'ai besoin.
En français:
- Requête 1: Je prends les données d'une actus par l'id reçu avec la méthode GET par l'URL.
- Requête 2: J'affiche l'id précédent de la base de données.
Exemple si id URL = 12 et que l'id inférieur présent est 10. Je veux afficher ce 10.
- Requête 3: J'affiche l'id suivant de la base de données.
Exemple si id URL = 12 et que l'id supérieur présent est 15. Je veux afficher ce 15.
Je n'arrive pas à utiliser les LIMIT avec OFFSET correctement même en utilisant un ORDER BY.
Il me faut quelque chose comme:
ORDER BY id ASC LIMIT 1 OFFSET idurl;
et
ORDERBY id DESC LIMIT 1 OFFSET idurl;
Mais cela ne donne pas le résultat escompté.
Le codage:
$dbid=$_GET['id'];
//INITIALISATION $DBIDPREMIER
$sqlactus6 = "SELECT * FROM xactus WHERE id='".$dbid."'";
$reqactus6 = mysql_query($sqlactus6) or die('Erreur SQL !<br>'.$sqlactus6.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($reqactus6))
{
$dbidpremier=$data['id'];
echo $dbidpremier;
}
$sqlactus3 = "SELECT * FROM xactus WHERE id='".$_GET['id']."'";
$reqactus3 = mysql_query($sqlactus3) or die('Erreur SQL !<br>'.$sqlactus3.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($reqactus3))
{
$dbid=$data['id'];
$dbclassement=$data['classement'];
$dbdatedujour=$data['datedujour'];
$dbtitre=$data['titre'];
$dbarticle=$data['article'];
$dbcategorie=$data['categorie'];
$dblinkimage=$data['linkimage'];
echo $dbidpremier;
//AFFICHER
//CHECK IMAGE
if($dblinkimage==""){
echo "".$dbdatedujour."<br>";
echo "".$dbcategorie."<br>";
echo "".$dbtitre."<br>";
echo "".$dbarticle."<br>";
}else{//SINON
echo "".$dbdatedujour."<br>";
echo "".$dbcategorie."<br>";
echo "".$dbtitre."<br>";
echo "".$dblinkimage."<br>";
echo "".$dbarticle."<br>";
}
}
}
//PRECEDENT
$sqlactus4 = "SELECT * FROM xactus ORDER BY id ASC LIMIT ".$dbidpremier."";
$reqactus4 = mysql_query($sqlactus4) or die('Erreur SQL !<br>'.$sqlactus4.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($reqactus4))
{
$dbid=$data['id'];
echo "while 4";
$dblinkimage=$data['linkimage'];
if($dblinkimage==""){
echo "<a href=\"actus.php&id=".$dbid."\">Précédent</a>";
}else{//SINON
echo "<a href=\"actusimg.php&id=".$dbid."\">Précédent</a>";
}
}
//SUIVANT
$sqlactus5 = "SELECT * FROM xactus ORDER BY id DESC LIMIT ".$dbidpremier."";
$reqactus5 = mysql_query($sqlactus5) or die('Erreur SQL !<br>'.$sqlactus5.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($reqactus5))
{
$dbid=$data['id'];
echo "while 5";
$dblinkimage=$data['linkimage'];
if($dblinkimage==""){
echo "<a href=\"actus.php&id=".$dbid."\">Suivant</a>";
}else{//SINON
echo "<a href=\"actusimg.php&id=".$dbid."\">Suivant</a>";
}
}
?>
Merci par avance pour votre aide.
--