Aller au contenu

"Couldn't execute query"


Xeon

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Essaie peut-etre :

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

Lien vers le commentaire
Partager sur d’autres sites

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.

<{POST_SNAPBACK}>

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.

Lien vers le commentaire
Partager sur d’autres sites

Voici l'url pour tester :

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

Et voici le 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>

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

1/:

Si cetet catégorie

A remplacer par :

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é :

nous sommes sur la page :

./anicata/nouveaunom.php

Ce n'est pas la bonne page/bon code. :(

3/ :

Dans ce code, il y a :

$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 :

$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 ;)

4/ :

Il y a un certain nombre de :

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 :

or die ("Impossible d'executer SELECT 'animal' ligne 130");

Voilà pour l'instant ;)

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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. :fete:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...