Probleme de liaison avec base mysql et formul
Résolu/Fermé
amphitrion
Messages postés
6
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
28 juin 2008
-
26 juin 2008 à 20:57
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 28 juin 2008 à 11:09
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 28 juin 2008 à 11:09
A voir également:
- Probleme de liaison avec base mysql et formul
- Formule si et - Guide
- Formules excel de base - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Base de registre - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
3 réponses
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
26 juin 2008 à 23:54
26 juin 2008 à 23:54
Bonsoir,
Je pense que ton soucis vient du fait que tu fait ta requête avant de déclarer ton $query, d'où ton message d'erreur de "query was empty". D'autre part je me permet de te rajouter un else {}, en effet dans le script que tu as donné tu aurais eu plusieurs messages d'erreurs s'additionnant en cas de mauvais mysql_select_db
Correction :
Je me permet quand même de te dire que ton script tel quel est très vulnérable. En effet, il est plus que recommandé d'échapper toutes les variables reçues par POST et GET. Je te laisse te renseigner tout seul là dessus car c'est comme ça que l'on apprend le mieux mais tu verras c'est vraiment pas compliquer.
Et sinon j'ai pas compris la question subsidiaire... Comment faire quoi si l'on a plusieurs tables ? Si c'est l'insertion, tu peux tout simplement faire plusieurs requêtes à se suivre, la première pour insérer dans la table 1, la seconde pour insérer dans la table 2, etc
En espérant que j'ai été assez clair.
Je pense que ton soucis vient du fait que tu fait ta requête avant de déclarer ton $query, d'où ton message d'erreur de "query was empty". D'autre part je me permet de te rajouter un else {}, en effet dans le script que tu as donné tu aurais eu plusieurs messages d'erreurs s'additionnant en cas de mauvais mysql_select_db
Correction :
Page 2 (merci.php) page de reception <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <?php // parametres d'access $base='baseamphitrion'; $login='baseamphitrion'; $pwd= 'mot de passe'; $host="mon serveur"; // connection au serveur $db=mysql_connect($host, $login, $pwd) or die('Erreur de connexion'); if(!$db) { print "erreur connection $db"; exit; } // on choisit la bonne base if(!mysql_select_db($base,$db)) { print "erreur ".mysql_error()."<br>"; mysql_close($db); exit; } else { ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>pagede reception</title> </head> <body> <?php $prenom=$_POST['prenom']; $nom=$_POST['nom']; $adresse=$_POST['adresse']; $cp=$_POST['cp']; $ville=$_POST['ville']; $telfixe=$_POST['telfixe']; $portable=$_POST['portable']; $email=$_POST['email']; $typeclient=$_POST['typeclient']; $dejainvest=$_POST['dejainvest']; $datecontact=$_POST['datecontact']; $typebien=$_POST['typebien']; $budget=$_POST['budget']; $region=$_POST['region']; $observations=$_POST['observations']; /* puis faire la requete : */ $query = "INSERT INTO baseamphitrion VALUES('$prenom','$nom','$adresse','$cp','$telfixe','$telfixe','$portable','$fax','$email', '$typeclient','$dejainvest','$datecontact', '$typebien','$budget','$budget','$region','$observations' )"; $resultat = mysql_query($query) or die("L'insertion a echouée car ". mysql_error() ."."); // on ferme la base mysql_close($db); } ?> </body> </html>Voilà ça devrait fonctionner comme ça.
Je me permet quand même de te dire que ton script tel quel est très vulnérable. En effet, il est plus que recommandé d'échapper toutes les variables reçues par POST et GET. Je te laisse te renseigner tout seul là dessus car c'est comme ça que l'on apprend le mieux mais tu verras c'est vraiment pas compliquer.
Et sinon j'ai pas compris la question subsidiaire... Comment faire quoi si l'on a plusieurs tables ? Si c'est l'insertion, tu peux tout simplement faire plusieurs requêtes à se suivre, la première pour insérer dans la table 1, la seconde pour insérer dans la table 2, etc
En espérant que j'ai été assez clair.
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
28 juin 2008 à 00:31
28 juin 2008 à 00:31
Pour ton premier message d'erreur, ça vient du fait que, apparemment, tu n'as pas de table "baseamphitrion" dans ta base "baseamphitrion". Dans la requète INSERT INTO, tu dois mettre le nom de la table dans laquelle tu veux insérer tes données et non le nom de la base de données que tu utilises. Ce nom tu le donnes déja avec le "mysql_select_db".
Et pour la deuxième partie, en fait c'est exactement la même réponse que la première partie ;) Tu mets le nom de la table dans laquelle tu veux insérer tes données après le INSERT INTO
Ex :
une petite documentation si je ne suis pas clair : ici
Et pour la deuxième partie, en fait c'est exactement la même réponse que la première partie ;) Tu mets le nom de la table dans laquelle tu veux insérer tes données après le INSERT INTO
Ex :
$query = "INSERT INTO clients VALUES('$prenom','$nom','$adresse','$cp','$telfixe','$telfixe','$portable','$fax','$email', '$typeclient','$dejainvest','$datecontact', '$typebien','$budget','$budget','$region','$observations' )";
une petite documentation si je ne suis pas clair : ici
amphitrion
Messages postés
6
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
28 juin 2008
28 juin 2008 à 00:44
28 juin 2008 à 00:44
Merci beaucoup pour tes conseils; cela fonctionne maintenant!
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
28 juin 2008 à 11:09
28 juin 2008 à 11:09
De rien ce fut un plaisir
27 juin 2008 à 16:00
J'obtiens maintenant la réponse suivante: "L'insertion a échouée car Table 'baseamphitrion.baseamphitrion' doesn't exist."
/* puis faire la requete : */
$query = "INSERT INTO baseamphitrion
c'est à ce niveau que cela pourrait clocher ?
En ce qui concerne ma question sur les tables, je voulais dire que ma base comporte 2 tables différentes et que je me demandais si il ne fallait pas préciser dans le script le nom de la table qui contient les champs concernés.
Jai essayé INSERT INTO baseamphitrion clients (nom de ma table) et j'ai reçu:
"L'insertion a echouée car You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'clients VALUES('Michel','COPIN','32 rue d\'hébuterne','59126','0320465020','0613' at line 1."
Merci pour ton aide.
je précise aussi que je débute en php et que la première partie du script m'a été donné par mon hébegeur online.net