Aller au contenu

pas de connection sur ma base


jpdel13

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 54
  • Créé
  • Dernière réponse

Contributeurs actifs dans ce sujet

Contributeurs actifs dans ce sujet

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

Lien vers le commentaire
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 !

Lien vers le commentaire
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);
}

Lien vers le commentaire
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 ?

Lien vers le commentaire
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

Lien vers le commentaire
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 :)

Lien vers le commentaire
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.

Lien vers le commentaire
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".

Lien vers le commentaire
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.

Lien vers le commentaire
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 :)

Lien vers le commentaire
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 !!!

Lien vers le commentaire
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/>';
}
}

?>

Lien vers le commentaire
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 !

Lien vers le commentaire
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

Lien vers le commentaire
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

Lien vers le commentaire
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.

Lien vers le commentaire
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"

Lien vers le commentaire
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.

Lien vers le commentaire
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.

Lien vers le commentaire
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" ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant

×
×
  • Créer...