jpdel13 Posté 23 Juillet 2012 Posté 23 Juillet 2012 Bonjour,malgre plusieurs tentatives, je n'arrive pas a me connecter sur ma base de donnee et je n'ai pas de message d'erreurs. Je suis en local avec WAMP, noom de ma base "maintenance13" et nom de ma table "commentaires". Voici le code en question. <?php$connection = mysql_connect("localhost","root","");if ( ! $connection ) die ("connection impossible");$mabasededonnee="maintenance13";mysql_select_db($mabasededonnee);$requete="SELECT * FROM commentaire"; mysql_query($requete,$connection);mysql_close($connection);if(isset($_POST["Valider"]));{ $prenom = stripslashes($_POST["prenom"]); $commentaire = stripslashes($_POST["commentaire"]); if(empty($prenom)){ echo 'prenom est vide. <br/>'; } else if(empty($commentaire)){ echo 'commentaire est vide.<br/>'; }}?> Merci pour votre aide. Jp
Dan Posté 23 Juillet 2012 Posté 23 Juillet 2012 Bonjour, Je ne vois d'affichage dans ton programme qu'en cas d'erreur. Sans erreur, rien ne s'affiche et c'est normal. Ta ligne mysql_query($requete,$connection); effectue bien une requête, mais que fais tu du résultat de celle-ci ? Rien à part tester des valeurs vides ! Ta requête mysql_query() retourne une ressource, qu'il faut ensuite exploiter, par exemple avec un mysql_fetch_array() ou un mysql_fetch_assoc()
Ernestine Posté 23 Juillet 2012 Posté 23 Juillet 2012 nom de ma table "commentaires". Dans ta requête, tu as mis "commentaire" au singulier, est-ce une faute de frappe dans ton message ?
captain_torche Posté 23 Juillet 2012 Posté 23 Juillet 2012 Dans ton cas, le paramètre facultatif $link_identifier de la fonction mysql_select_db est obligatoire. Ton avant-dernière ligne devrait ressembler à ceci : mysql_select_db($mabasededonnees, $connection); Soit dit en passant, il est préférable de conserver une même langue pour tes définitions de variables. $mabasededonnees est en français, mais $connection ... est en anglais ! L'orthographe française est "connexion". Je te rassure, c'est une faute très fréquente !
Dan Posté 23 Juillet 2012 Posté 23 Juillet 2012 Remplace : mysql_query($requete,$connection);par $resultat=mysql_query($requete,$connection);if (!$resultat) { $message = 'Requête invalide: ' . mysql_error() . "\n"; $message .= 'Requête effectuee: ' . $query; die($message);}
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Remplace : mysql_query($requete,$connection);par $resultat=mysql_query($requete,$connection);if (!$resultat) { $message = 'Requête invalide: ' . mysql_error() . "\n"; $message .= 'Requête effectuee: ' . $query; die($message);} Merci à vous pour vos reponses, j'ai effectivement changer "commentaires". J'ai aussi changer la partie "requete" mais voici un message d'erreur "Notice: Undefined variable: query in C:\wamp\www\maintenance13\". Que puis je faire ?
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Dans ton cas, le paramètre facultatif $link_identifier de la fonction mysql_select_db est obligatoire. Ton avant-dernière ligne devrait ressembler à ceci : mysql_select_db($mabasededonnees, $connection); Soit dit en passant, il est préférable de conserver une même langue pour tes définitions de variables. $mabasededonnees est en français, mais $connection ... est en anglais ! L'orthographe française est "connexion". Je te rassure, c'est une faute très fréquente ! Merci à toi "captain_torche" je regarde ca aussi
Aenoa Posté 23 Juillet 2012 Posté 23 Juillet 2012 Merci à vous pour vos reponses, j'ai effectivement changer "commentaires". J'ai aussi changer la partie "requete" mais voici un message d'erreur "Notice: Undefined variable: query in C:\wamp\www\maintenance13\". Que puis je faire ? remplace $query par $requete
Dan Posté 23 Juillet 2012 Posté 23 Juillet 2012 Oui, désolé, mais j'ai fait un copier-coller en oubliant de remplacer $query
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Oui, désolé, mais j'ai fait un copier-coller en oubliant de remplacer $query Merci Dan je ne dirais pas que ca marche mais on avance grace à vous. mais car il y a tjrs un "mais" je me retrouve avec un message ma disant : "Requête invalide: Table 'maintenance13.commentaires' doesn't exist Requête effectuee: SELECT * FROM commentaires" alors que ma base est bien creer "maintenance13" et ma table elle aussi est bien creer "commentaire" et une colonne nommée "commentaires" est bien creer aussi. Auriez vous une explication ?? Merci à vous.
Aenoa Posté 23 Juillet 2012 Posté 23 Juillet 2012 tu a mal précisé, donc ta table se nomme COMMENTAIRE (sans S) donc la requête doit avoir "Select * from commentaire" ; ta colonne n'est pas citée vue que tu sélectionne toute les colonnes. Sinon tu aurais marqué "Select commentaires from commentaire".
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 tu a mal précisé, donc ta table se nomme COMMENTAIRE (sans S) donc la requête doit avoir "Select * from commentaire" ; ta colonne n'est pas citée vue que tu sélectionne toute les colonnes. Sinon tu aurais marqué "Select commentaires from commentaire". Je suis d'accord avec toi.Il aurait vallu que je nomme ma colonne autrement mais c'est dans le cadre d'un test avant la mise en ligne donc je peux changer. Je me retrouve quand meme avec une erreur "Notice: Undefined index: prenom in C:\wamp\www\maintenance13" je comprends bien que c'est un index non declare, maisje ne vois pas ou . Merci à vous.
Aenoa Posté 23 Juillet 2012 Posté 23 Juillet 2012 quel est ta requête + ce qui précède ? (en partant de la connexion sql) ? Normalement elle n'a rien a voir avec ta requête, tu a juste une variable $prenom que tu n'a pas déclaré et que tu demande d'afficher quelque part
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 quel est ta requête + ce qui précède ? (en partant de la connexion sql) ? Normalement elle n'a rien a voir avec ta requête, tu a juste une variable $prenom que tu n'a pas déclaré et que tu demande d'afficher quelque part Effectivement mais voici mon code, si tu arrives a voir l'erreur avant moi !! code: <?php$connexion = mysql_connect("localhost","root","");if ( ! $connexion ) die ("connexion impossible");$mabasededonnee="maintenance13";mysql_select_db($mabasededonnee);$requete="SELECT * FROM commentaire"; $resultat=mysql_query($requete,$connexion);if (!$resultat) { $message = 'Requête invalide: ' . mysql_error() . "\n"; $message .= 'Requête effectuee: ' . $requete; die($message);}mysql_close($connexion);if(isset($_POST["Valider"]));{ $prenom = stripslashes($_POST["prenom"]); $commentaires = stripslashes($_POST["commentaires"]); if(empty($prenom)){ echo 'prenom est vide. <br/>'; } else if(empty($commentaire)){ echo 'commentaire est vide.<br/>'; } }?> Merci encore !!!
Dan Posté 23 Juillet 2012 Posté 23 Juillet 2012 Poste-nous la structure de ta base... ce sera plus simple.
Aenoa Posté 23 Juillet 2012 Posté 23 Juillet 2012 dans ta vérification de si $commentaire est vide, ça tombe des nue: tu met les commentaires dans $commentaires (avec S) et vérifie $commentaire (sans S). <?php$connexion = mysql_connect("localhost","root","");if (!$connexion) die ("connexion impossible");$mabasededonnee="maintenance13";mysql_select_db($mabasededonnee, $connexion);$requete="SELECT * FROM commentaire"; $resultat=mysql_query($requete, $connexion);if (!$resultat) { $message = 'Requête invalide: ' . mysql_error() . "\n"; $message .= 'Requête effectuee: ' . $requete; die($message);}mysql_close($connexion);if(isset($_POST["Valider"]));{ $prenom = stripslashes($_POST["prenom"]); $commentaires = stripslashes($_POST["commentaires"]); if(empty($prenom)) { echo 'prenom est vide. <br/>'; } elseif(empty($commentaires)) { echo 'commentaire est vide.<br/>'; }}?>
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Poste-nous la structure de ta base... ce sera plus simple. je peux savoir comment on fait sur ce site ?
Dan Posté 23 Juillet 2012 Posté 23 Juillet 2012 Tu affiches la structure de ta table commentaire(s?) dans phpMyAdmin et tu copies ce que tu vois à l'écran. Mais je pense que Aenoa t'a donné la réponse... l'erreur est entre "commentaire" avec ou sans le "s" final !
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Tu affiches la structure de ta table commentaire(s?) dans phpMyAdmin et tu copies ce que tu vois à l'écran. Mais je pense que Aenoa t'a donné la réponse... l'erreur est entre "commentaire" avec ou sans le "s" final ! Alors !!! je n'ai plus de messages d'erreur sur les "index", au moins ca !!! mais je reviendrais vers vous pour d'autres erreurs. Un grand merci à vous tous , ca remonte l'envie d'avancer avec de l'aide. Merci et a bientot ;-) Jp
jpdel13 Posté 23 Juillet 2012 Auteur Posté 23 Juillet 2012 Bonsoir, apres plusieurs petits changements, je n'ai plus d'erreurs mais je n'ai tjrs pas de resultat dans ma base de donnée quand je ne remplie pas toutes les "cases" de mon formulaire,je n'ai pas de message. voici le code: <?php$connexion = mysql_connect("localhost","root","");if ( ! $connexion ) die ("connexion impossible");$mabasededonnee="maintenance13";mysql_select_db($mabasededonnee);$requete="SELECT * FROM commentaire"; $resultat=mysql_query($requete,$connexion);if (!$resultat) { $message = 'Requête invalide: ' . mysql_error() . "\n"; $message .= 'Requête effectuee: ' . $requete; die($message);}mysql_close($connexion);if(isset($_POST["Valider"]));{ $prenom = stripslashes (isset($_POST["prenom"])); $resume = stripslashes(isset($_POST["resume"]));if(empty($prenom)){ echo 'prenom est vide. <br/>'; } else if(empty($resume)){ echo 'resume est vide.<br/>'; }}?> merci à vous. Jp
Ernestine Posté 23 Juillet 2012 Posté 23 Juillet 2012 C'est normal que ça n'affiche rien, puisque ton code n'exécute aucun affichage, comme te l'a dit Dan dans les premiers messages. Après mysql_close($connexion); Ajoute : while ($row = mysql_fetch_assoc($resultat)) print_r($row); Normalement, ça doit t'afficher le résultat de la requête. Et ton formulaire (avec $prenom et $resume) n'a aucun rapport avec la requête.
Dan Posté 24 Juillet 2012 Posté 24 Juillet 2012 Je remarque une dernière erreur dans ton code ! Il ne faut pas de ; à la fin de if(isset($_POST["Valider"])); ou le bloc qui suit { ... } ne sera pas exécuté suite au résultat du "if"
jpdel13 Posté 24 Juillet 2012 Auteur Posté 24 Juillet 2012 Merci à vous. J'ai effectue les modifications mais sans resultat dans ma base . Message de ma base: "MySQL a retourné un résultat vide (aucune ligne). ( Traitement en 0.0006 sec )". Merci à vous.
Ernestine Posté 24 Juillet 2012 Posté 24 Juillet 2012 Evidemment que ce script ne provoque aucun changement dans ta base : c'est un script de lecture, qui se contente de sélectionner les éléments... Et si la table est vide, il est logique que Mysql ne retourne aucun résultat. Ce n'est pas une erreur. C'est normal.
jpdel13 Posté 24 Juillet 2012 Auteur Posté 24 Juillet 2012 Evidemment que ce script ne provoque aucun changement dans ta base : c'est un script de lecture, qui se contente de sélectionner les éléments... Et si la table est vide, il est logique que Mysql ne retourne aucun résultat. Ce n'est pas une erreur. C'est normal. OK !!!! je veux simplement rentrer des informations sur ma base a partir d'un formulaire, il faut donc utiliser "insert into" ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant