Erreur Call to a member function prepare() on a non-object in [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013
-
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013
-
Bonjour,

je me permet de vous demander de l'aide concernant un problème de récupération d'une valeur select de mon formulaire afin de modifier ma base de donnée.
Ma requête me renvoie une erreur :
Fatal error: Call to a member function prepare() on a non-object in /homepages/33/d163956901/htdocs/bulledeweb/mgi/boreales/modif.php on line 24

Voila mon code formulaire :

<form method="post" action="modif.php">
   <p>
           <select name="boreales002">
           <option value="Optionné">Optionné</option>
           <option value="disponible">Disponible</option>
	   <option value="Vendu">Vendu</option>
           
       </select>
   </p>
<input type="submit" value="Envoyer" />
</form>


Et mon code php de requête :

<?php
//On déclare les variables pour pouvoir se connecter à sa base
 
$nom_du_serveur ="db448704934.db.1and1.com";
$nom_de_la_base ="db448704934";
$nom_utilisateur ="dbo448704934";
$passe ="ephemere";
 
//Variable de connexion à la base de données
 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
 
//Vérification d'accès à la base de données
 
mysql_select_db("$nom_de_la_base") or die("Impossible d'ouvrir la base de données ");


$boreales002     = $_POST["boreales002"];

//modif satut


$req = $bdd->prepare('UPDATE boreales SET statut = :nvstat WHERE id = 1');
$req->execute(array(
    'nvstat' => $boreales002
));

 
// On ferme la connexion
 
// mysql_close();
 ?>


Merci pour voter aide







11 réponses

Messages postés
8320
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 517
Salut,

je te conseille de commencer par retirer les codes d'accès à ta base de données...
Ensuite, tu n'instancies nulle part ta variable $bdd, c'est normal ?
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Bonjour ,

Bien merci je change de suite le code d'accès.
Je viens de me rendre compte et je te remercie que oui je n'instancies pas .
Que me conseille tu comme code pour le faire ?
Je te remercie je suis vraiment un novice de base de donnée
Messages postés
8320
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 517
Et bien je ne connais pas ton code, ni les variables que tu essayes de manipuler au moment de ta requête, mais elles ont l'air de ne pas exister ici.

tu peux essayer un code du genre :

$req = "UPDATE boreales SET statut = '$boreales002' WHERE id = 1";
$res = mysql_query($req);
if (!$res) die('Requête invalide : ' . mysql_error());


je pense que ça devrait fonctionner
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Je crois que je n'ai pas du bien comprendre le fonctionnement de cette fonction .
En faite je récupere la valeur de la fonction "select" du formulaire appelé : boreales002.

Cette valeur je lui donne le nom de variable de "nvstat".

Je fait apres une requete pour modifier la base de données .

Est ce bien cela ?
Messages postés
8320
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 517
tu n'as toujours pas retiré tes accès à ta base de données, si tu les laisses, tu risques des soucis...

$nom_du_serveur ="******";
$nom_de_la_base ="********";
$nom_utilisateur ="********";
$passe ="*******";


sinon je pense que tu as à peu près compris le principe, la syntaxe que tu utilises, je ne la connais pas, mais il semble manquer quelque chose.

Avec les quelques lignes que je t'ai donné, tu devrais t'en sortir...
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Merci beaucoup cela fonctionne comment te remercier !!!

Maintenant accepterais tu de m'aider sur un deuxième point !!.

Je voudrais maintenant une fois que la personne a modifier le statut en par exemple "optionné" par le formulaire et que la base de donné est modifié .

Je dois faire apparaître dans un champ de texte cette nouvelle valeur .

As tu une idée sur le code ?

Merci d'avance
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Je viens de modifier le code
Messages postés
8320
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 517
Comment me remercier ? fastoche ! Envoie moi un chèque ;)

Avec un système simple tu pourrais avoir quelques chose comme ça, après à toi d'adapter et de mettre ça ou tu veux...

<?php
//On déclare les variables pour pouvoir se connecter à sa base
 
$nom_du_serveur ="*****";
$nom_de_la_base ="*****";
$nom_utilisateur ="*******";
$passe ="******";
 
//Variable de connexion à la base de données
 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
 
//Vérification d'accès à la base de données
 
mysql_select_db("$nom_de_la_base") or die("Impossible d'ouvrir la base de données ");

$req = "SELECT nvstat FROM boreales WHERE id = 1";
// après le WHERE, je mets ça par déduction vu ton update d'avant...
$res = mysql_query($req);
if (!$res ) die('Requête invalide : ' . mysql_error());
list($nvstat) = mysql_fetch_array($res);

echo "le status est : " . $nvstat;

?>


j'ai fais ça à main levée, mais ça devrait fonctionner...
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Merci beaucoup pour ton aide je teste cela .
Comment intégrer ce code php dans du html d'après toi. Car si je crée un champ de formulaire et integre le php le navigateur ne fait qu'afficher le code ?

Désolé je suis plein de question
Messages postés
8320
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 517
c'est bien de poser des questions...

il faut renommer ton fichier en monfichier.php, c'est l'extension .php qui va dire au serveur d'interpréter le code qu'il y a dedans au lieu de te l'afficher directement dans le cas du html.
Messages postés
10
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2013

Merci à toi tout fonctionne parfaitement . Sujet résolu