Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2011, 22h01   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 33
Points : 0
Points : 0
Par défaut Bug avec la base de donné [WHERE]

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 :
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 :
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 :
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 :
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.
YoshioToutou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 22h54   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
As-tu testé ta requête dans phpmyadmin ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 23h28   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 33
Points : 0
Points : 0
je ne l'avais pas fait, et j'ai eu une réponse qui ne renvoyait aucun champs (comme sur la page d'index) et j'ai donc enlever
LIMIT $limit_mysql, $limit_page
Et je ne sais pas par quel miracle cela a fonctionner.
il semble que mon problème soit résolu (pas comme je le voudrais, mais j'arrive tout de même a un resultat, et je ne pourrais pas faire mieux en ne modifiant pas l'intégralité de mon code).

Une autre question :
Est ce grave (si je suis le seul admin/gestion) de mélanger des requetes objets et de requete non-objet, car j'ai appris PHP sur le tas, et sans vraiment me soucier des deux, et maintenant je ne sais pas si cela peut influencer.
YoshioToutou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h55.


 
 
 
 
Partenaires

Hébergement Web