Bonjour, j'ai une page d'acceuil sur mon site, qui affiche autant de news que l'on désire, mais j'ai voulu inserer un système de triage pour afficher les news d'un certains domaines, mais lorsque je fais la requête, rien n'est selectionné, je pense que le problème vient du WHERE car la requête fonctionnait avant.
Voici le code :
le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<p>
Combien de news par pages ? (actuellement <?php echo $nbr_news; ?>)<br />
</p>
<form method="post" action="index.php">
<input type="text" name="newspage"/>
<input type="checkbox" name="MAJ" id="MAJ" /> <label for="MAJ">Mise à jour</label>
<input type="submit" value="Afficher" />
</form>
Les conditions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
if (!empty($_POST['newspage']) and $_POST['newspage'] !=0){
$limit_page = $_POST['newspage'];
}
elseif (!empty($_POST['MAJ'])){
$limit_page = $_POST['newspage'];
$triage = 1;
}
else{
$triage = -1;
$limit_page ='6';
}
?>
donc je veux recuperer les données de la base de donnée avec le triage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
if ($triage < 1){
$stmt = $sql->prepare("SELECT id, Titre, Contenu, Auteur, Date FROM news ORDER BY id DESC LIMIT $limit_mysql, $limit_page");
$stmt->bind_result($ID, $Titre, $Contenu, $Auteur, $Date);
$stmt->execute() or my_error($stmt->errno,$stmt->error);
echo 12345;
 
}
elseif ($triage > 0){
$stmt = $sql->prepare("SELECT id, Titre, Contenu, Auteur, Date, Type FROM news WHERE Type = $triage ORDER BY id DESC LIMIT $limit_mysql, $limit_page");
$stmt->bind_result($ID, $Titre, $Contenu, $Auteur, $Date, $Type);
$stmt->execute() or my_error($stmt->errno,$stmt->error);
echo 56789;
}
?>
Le echo est la uniquement pour comprendre d'ou vient le problème :
Quand le formulaire n'est pas envoyé (case coché), c'est 12345 qui s'affiche, par contre quand le formulaire est envoyé c'est 56789 qui s'affiche.
et pour afficher les caractères :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
while($stmt->fetch())
{
echo '<p class="paragraphe">' . $Titre . '<br />Le :' . $Date . '<br /> ' . stripslashes(nl2br($Contenu)) . '<br /><span class="Rouge">' . $Auteur . '</span></p>';
}
J'ai vraiment besoin d'aide et si vous voulez plus d'informations sur ma page, pas de problème, mais je n'ai mis que ce qui me semblait être vraiment important.

Par rapport à la base de donnée, j'ai rajouté un champ Type qui est un int.