Aller au contenu
jpdel13

pas de connection sur ma base

Noter ce sujet :

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

Partager ce message


Lien à poster
Partager sur d’autres 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()

Partager ce message


Lien à poster
Partager sur d’autres 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 ?

Partager ce message


Lien à poster
Partager sur d’autres 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 !

Partager ce message


Lien à poster
Partager sur d’autres 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);
}

Partager ce message


Lien à poster
Partager sur d’autres 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 ?

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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 :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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".

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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 :)

Partager ce message


Lien à poster
Partager sur d’autres 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 !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres 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/>';
}
}

?>

Partager ce message


Lien à poster
Partager sur d’autres 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 !

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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"

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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" ?

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

×