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 :

BDD et Mysql: Pb de requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Par défaut BDD et Mysql: Pb de requête
    Bonjour,

    Je suis entrain de faire une boîte à idée sur mon site, mais j'ai qq petits problèmes dont celui-ci: lors de l'affichage de ma page boite.php j'ai ceci comme réponse.

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/bastinpaliseul.be/bastinpaliseul.be/httpd.www/Pages/Boite/Boite.php on line 21

    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
                include ('config.php');
                $reponse = mysql_query ("SELECT * FROM Boite ORDER BY id");
                while ($donnees = mysql_fetch_array($reponse)) 
                {
            ?>
                    <div class="toutes_news">
                    <div class="pseudo_toutes_news"><?php echo $donnees['pseudo'];?><?php echo $donnees['email'];?></div>
                    <div class="titre_toutes_news"><a href="affichage_news.php?id=<?php echo $donnees['id'];?>&amp;titre=<?php echo $donnees['titre'];?>">
                    <?php echo $donnees['titre'];?></a></div>
                    </div>
            <?php
            }
                mysql_close(); 
            ?>
    De plus, lors je vais sur ma page ajout.php et que je rentre correctement mon formulaire, la page est censée appelée une autre page: ajout_idee.php qui elle insère les élément dans ma BDD. Je n'ai pas de message d'erreur, mais par contre je n'ai rien dans ma BDD.

    Page ajout.php

    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
    17
     
    <body>
     <div class="titre_actu">Ecrire une idée pour le site</div>
     <form method="post" action="ajout_idee.php">
      <div class="idee">
       <div class="titre_zone_texte">Pseudo :</div>
       <div class="zone_texte"><input type="text" name="pseudo" size="50" maxlength="50"></div>
       <div class="titre_zone_texte">Email :</div>
       <div class="zone_texte"><input type="text" name="pseudo" size="50" maxlength="50"></div>
       <div class="titre_zone_texte">Titre de l'idée :</div>
       <div class="zone_texte"><input type="text" name="titre" size="100" maxlength="255"></div>
       <div class="titre_zone_texte">Idée :</div>
       <div class="zone_texte"><textarea name="news" rows="10" cols="60"></textarea></div>
      </div>
      <div class="bouton"><input type="submit" value="Valider"></div>
     </form>
    </body>
    Page ajout_idee.php
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?php
     include ('config.php');
     
     if (isset($_POST['pseudo']) AND isset($_POST['email']) AND isset($_POST['titre']) AND isset($_POST['idee']))
     {
     $pseudo = htmlentities($_POST['pseudo']);
     $email = htmlentities($_POST['email']);
     $titre = htmlentities($_POST['titre']);
     $idee = mysql_real_escape_string(stripslashes($_POST['idee']));
     $idee = nl2br($news);
     
     if (empty($pseudo))
     {
      echo ("Saisissez votre pseudo");
      exit();
     }
     if (empty($email))
     {
      echo ("Saisissez votre Email");
      exit();
     }
     if (empty($titre))
     {
      echo ("Le titre ne peut être vide");
      exit();
     }
     if (empty($idee))
     {
      echo ("Tapez une idée");
      exit();
     }
      mysql_query ("Insert INTO Boite VALUES ('', ' " .$pseudo. " ', ' " .$email. " ', ' " .$titre. " ', ' " .$idee. " ')");
     }
     mysql_close();
     echo 'Merci - Redirection automatique dans 5 secondes';
     echo "<META HTTP-EQUIV='Refresh' CONTENT='5; URL=http://bastinpaliseul.be/Pages/Boite/Boite.php'>";
    ?>
    Et ma table se présente comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    id INT auto increment Clé primaire
    pseudo varchar 50
    email varchar 50     
    titre varchar 50     
    news longtext

    Bon voilà si qqn à une ou plusieurs idées, c'est le bienvenu!
    Merci les amis...

  2. #2
    Membre expérimenté
    Homme Profil pro
    Analyst
    Inscrit en
    Juillet 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 150
    Par défaut
    Bonjour,
    Pout ton insert, il ne faut pas préciser le champ auto_increment. Par ligne de commande mysql, tu obtiens l'erreur:
    ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1

    Il faut donc écrire un sql en précisant les colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert INTO Boite(pseudo,email,title,news) VALUES ( 'elbe', ' elbe@elbe.com', 'Mon titre ', ' Mon idee ');
    Renseignes toi sur les sites PHP (Y'a surement un manuel sur le site developpez) pour que tes requetes s'executent correctement (on ne voit pas ici la déclaration de la bdd, on suppose que c'est dans le include) et pour gérer correctement les erreurs (A priori, mysql_query renvoie au moins un int,... ).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Par défaut
    J'ai essayé ceci mais ca ne va pas non plus:
    J'ai comme message: no database selected.
    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
    17
    18
    <?php
    //include ('config.php');
    // On se connecte d'abord à MySQL : 
    $db=mysql_connect("localhost", "BDD", "MDP",$db); 
    mysql_select_db("boite",$db); 
    $reponse = mysql_query ("SELECT * FROM boite ORDER BY id") or die(mysql_error());
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <div class="toutes_news">
    <div class="pseudo_toutes_news"><?php echo $donnees['pseudo'];?><?php echo $donnees['email'];?></div>
    <div class="titre_toutes_news"><a href="affichage_news.php?id=<?php echo $donnees['id'];?>&amp;titre=<?php echo $donnees['titre'];?>">
    <?php echo $donnees['titre'];?></a></div>
    </div>
    <?php
    }
    mysql_close(); 
    ?>
    J'ai aussi essayé ceci mais ca ne va pas non plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_connect("localhost", "BDD", "MDP"); 
    mysql_select_db("boite");
    @+

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    [QUOTE=Dundee01;4923809]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/bastinpaliseul.be/bastinpaliseul.be/httpd.www/Pages/Boite/Boite.php on line 21[/quote)
    Ce message signifie que la fonction php mysql_fetch_array ne reçoit pas en argument une ressource mysql, c'est à dire que son paramètre n'est pas le résultat d'une requête envoyée au serveur MySQL.

    Le code que tu nous montres ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
                include ('config.php');
                $reponse = mysql_query ("SELECT * FROM Boite ORDER BY id");
                while ($donnees = mysql_fetch_array($reponse))
    Est-ce bien le code du fichier Boite.php incriminé dans le message d'erreur ?
    A priori, ce code semble bon mais la requête s'exécute t-elle correctement sur le serveur ? Essaie de la lancer directement sur le serveur et vois si le résultat est satisfaisant.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/05/2012, 23h46
  2. [PHP MySQL] Erreur execution requête de type INSERT
    Par Pfeffer dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/01/2006, 17h38
  3. relation maitre/esclave entre 2 BDD sur MySQL?
    Par root76 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 14/10/2005, 14h37
  4. composant pour BDD pour MySQL
    Par aragom dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/03/2005, 14h18
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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