IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Bug avec la base de donné [WHERE]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    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 : 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.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    As-tu testé ta requête dans phpmyadmin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Par défaut
    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.

Discussions similaires

  1. problème avec ma base de donnée
    Par polace dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/10/2005, 22h26
  2. Réponses: 6
    Dernier message: 20/09/2005, 22h28
  3. Gestion des chemins des images avec une base de données...
    Par Nean dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/07/2005, 08h08
  4. probleme avec une base de donnée postgres SQL
    Par Alexlesilex dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/06/2005, 22h09
  5. problème avec ma base de données
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 25/02/2005, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo