Aller au contenu
Xeon

"Couldn't execute query"

Noter ce sujet :

Recommended Posts

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

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
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");

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela m'étonne...

Peux tu nous donner un beaucoup de ton code?

Partager ce message


Lien à poster
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>

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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:

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×