Aller au contenu

pas de connection sur ma base


Sujets conseillés

Posté

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

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

Contributeurs actifs dans ce sujet

Contributeurs actifs dans ce sujet

Posté

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

Posté

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 !

Posté

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

Posté

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 ?

Posté

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

Posté

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

Posté

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

Posté

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.

Posté

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

Posté

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.

Posté

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

Posté

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

Posté

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

?>

Posté

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 !

Posté

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

Posté

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

Posté

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.

Posté

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"

Posté

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.

Posté

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.

Posté

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

Veuillez vous connecter pour commenter

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



Connectez-vous maintenant

×
×
  • Créer...