Xeon Posté 2 Août 2005 Posté 2 Août 2005 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
Boo2M0rs0 Posté 2 Août 2005 Posté 2 Août 2005 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 Posté 2 Août 2005 Posté 2 Août 2005 Essaie peut-etre : $query = "SELECT DISTINCT animalNom FROM AnimalWHERE animalType='".$categorie."' ORDER BY animalNom";$result = mysql_query($query) or die ("Couldn't execute query");
Xeon Posté 3 Août 2005 Auteur Posté 3 Août 2005 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.
Portekoi Posté 3 Août 2005 Posté 3 Août 2005 Cela m'étonne... Peux tu nous donner un beaucoup de ton code?
Xeon Posté 4 Août 2005 Auteur Posté 4 Août 2005 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>
Anonymus Posté 4 Août 2005 Posté 4 Août 2005 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é : Voici l'url pour tester :http://www.matiere-esprit-science.com/php/...a/selection.php 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.
Portekoi Posté 4 Août 2005 Posté 4 Août 2005 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 Posté 10 Août 2005 Auteur Posté 10 Août 2005 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant