Version complète: sur le forum Webmaster Hub : "Couldn't execute query"
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Xeon
Bonjour,

J'ai un script avec une requête mysql :

$query = "SELECT DISTINCT animalNom FROM Animal
WHERE animalType='$categorie' ORDER BY animalNom";
$result = mysql_query($query)
or die ("Couldn't execute query");

Lorsque je la lance dans phpmyadmin, elle me renvoie bien la liste voulue, mais si je la lance dans un fichier php, j'ai la réponse "Couldn't execute query".

D'où pourrait venir l'erreur ?

Merci de votre aide
Portekoi
Es tu bien connecté à ta base?
Boo2M0rs0
remplace la commande die actuelle par die( mysql_error () ) pour savoir ce qu'il se passe.

Mais je pense aussi que tu n'es peut être pas connecté à la base (comme le suggère portekoi ).

Il y a peut être aussi une apostrophe simple dans le contenu de la variable $categorie.
bigornot
Essaie peut-etre :

CODE
$query = "SELECT DISTINCT animalNom FROM Animal
WHERE animalType='".$categorie."' ORDER BY animalNom";
$result = mysql_query($query) or die ("Couldn't execute query");
Xeon
CITATION(Boo2M0rs0 @ mardi 02 août 2005, 08h36)
remplace la commande die actuelle par die( mysql_error () ) pour savoir ce qu'il se passe.

Mais je pense aussi que tu n'es peut être pas connecté à la base (comme le suggère portekoi ).

Il y a peut être aussi une apostrophe simple dans le contenu de la variable $categorie.
*




Je pense que je suis bien connecté à la bdd, car si je rajoute une catégorie manuellement par phpmyadmin, je la retrouve ensuite dans mon programme en ligne.

J'ai essayé die( mysql_error () ), mais cela me renvoie la même erreur.

De même avec le rajout des guillements.
Portekoi
Cela m'étonne...

Peux tu nous donner un beaucoup de ton code?
Xeon
Voici l'url pour tester :

http://www.matiere-esprit-science.com/php/...a/selection.php


Et voici le code :

CODE
<?php
 /* Programme : ajouteranimal.php
  * Desc :    Ajoute un nouvel animal à la base de données
  *           puis affiche un écran de confirmation.
  */

 if (@$_POST['neoBouton'] == "annuler")                  # 7
 {
    header("Location: selection.php");
 }
 $animalNom = $_POST['animalNom'];
 $neoNom = $_POST['neoNom'];
 $animalPrix = $_POST['animalPrix'];
 $animalImage = $_POST['animalImage'];
 $animalCouleur = $_POST['animalCouleur'];
 $categorie = $_POST['categorie'];
 $animalDescription = $_POST['animalDescription'];

 if ($animalNom == "nouveau")                                 #18
 {
   if ($neoNom == "")                                  #20
   {
      include("neoNom_form.inc");
      exit();
   }
   else                                                 #25
   {
     $animalNom=trim($neoNom);
     $animalNom=ucfirst(strtolower(strip_tags($animalNom)));
   }
 }
 if ($animalImage == "")                                        #31
      $animalImage = "na.gif";
?>
<html>
<head><title>Ajouter un animal</title></head>
<body>
<?php
 include("mdp.inc");                                   #38
 $connection = mysql_connect($host,$user,$password)
      or die ("couldn't connect to server");
 $db = mysql_select_db($database,$connection)
      or die ("Couldn't select database");
 /* Nettoyer les informations */
 $animalDescription = strip_tags(trim($animalDescription));
 $animalPrix = strip_tags(trim($animalPrix));
 $animalImage = strip_tags(trim($animalImage));
 $animalCouleur = strip_tags(trim($animalCouleur));

 $query = "INSERT INTO Animal
     (animalNom,animalType,animalDescription,animalPrix,animalImage) VALUES
     ('$animalNom','$categorie','$animalDescription','$animalPrix',
      '$animalImage')";
 $result = mysql_query($query)
      or die ("Couldn't execute query.");
 $petID = mysql_insert_id();                            #55

 echo "L'animal suivant a été ajouté au catalogue : <br>
       <ul>
        <li>categorie: $categorie
        <li>Nom : $animalNom
        <li>Description : $animalDescription
        <li>Prix : $animalPrix
        <li>Image : $animalImage \n";

 if ($animalCouleur != "")                                   #66
 {
   if ($animalNom == "Poisson rouge" or $animalNom == "Perruche")
   {
      $query = "SELECT animalNom FROM Couleur
                      WHERE animalNom='$animalNom'
                      AND animalCouleur='$animalCouleur'";
      $result = mysql_query($query)
                or die ("Couldn't execute query.");
      $num = mysql_num_rows($result);
      if ($num < 1)
      {
        $query = "INSERT INTO Couleur (animalNom,animalCouleur,animalImage)
                  VALUES ('$animalNom','$animalCouleur','$animalImage')";
        $result = mysql_query($query)
                or die ("Couldn't execute query.");
        echo "<li>Couleur : $animalCouleur\n";
      }
   }
 }                                                      #85
 echo "</ul>";
 echo "<a href='selection.php'>Ajouter un autre animal</a>\n";
?>
</body></html>
Anonymus
Bonjour,

1/:
CODE
Si cetet catégorie

A remplacer par :
CODE
Si cette catégorie


2/ :
Le code que tu nous as posté correspond à la page :
/* Programme : ajouteranimal.php

alors que si l'on ajoute une catégorie via le lien que tu nous as donné :
CITATION

nous sommes sur la page :
./anicata/nouveaunom.php

Ce n'est pas la bonne page/bon code. sad.gif

3/ :
Dans ce code, il y a :
CODE
$query = "INSERT INTO Animal
    (animalNom,animalType,animalDescription,animalPrix,animalImage) VALUES
    ('$animalNom','$categorie','$animalDescription','$animalPrix',
     '$animalImage')";
$result = mysql_query($query)
     or die ("Couldn't execute query.");

Il faudrait que tu modifies/rajoutes :
CODE
$query = "INSERT INTO Animal
    (animalNom,animalType,animalDescription,animalPrix,animalImage) VALUES
    ('$animalNom','$categorie','$animalDescription','$animalPrix',
     '$animalImage')";
echo "<br>".$query;
$result = mysql_query($query)
     or die ("Couldn't execute query.");

et que tu nous donnes le résultat wink.gif

4/ :
Il y a un certain nombre de :
CODE
or die ("Couldn't execute query.");

Ces codes ne te permettent pas de savoir où ca bloque (quelle ligne). Tu devrais les numéroter, pour ainsi savoir lequel bloque exactement. Exemple :
CODE
or die ("Impossible d'executer SELECT 'animal' ligne 130");


Voilà pour l'instant wink.gif

Anonymus.
Portekoi
Bonjour,

Suggestion : Ne fais travaille pas sur des fichiers .inc mais plus tôt .php car cela évite que la personne voit le contenu de ce dernier.

Et , à ma connaissance, il n'y a aucun avantage à travailler avec des .inc sauf savoir que c'est un fichier 'include' ^_^


Portekoi
Xeon
C'est bon.

Grâce à la technique pour repérer la query qui ne fonctionne pas, j'ai pu trouver l'erreur (la table était mal nommée).

Merci beaucoup. IMSTP2.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.