Jump to content
jpdel13

pas de connection sur ma base

Rate this topic

Recommended Posts

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

Share this post


Link to post
Share on other sites

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()

Share this post


Link to post
Share on other sites
nom de ma table "commentaires".

Dans ta requête, tu as mis "commentaire" au singulier, est-ce une faute de frappe dans ton message ?

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Oui, désolé, mais j'ai fait un copier-coller en oubliant de remplacer $query ;)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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".

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 !!!

Share this post


Link to post
Share on other sites

Poste-nous la structure de ta base... ce sera plus simple.

Share this post


Link to post
Share on other sites

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/>';
}
}

?>

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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"

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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" ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...