Recuperer les donnees dans BDD

Fermé
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013 - 9 juil. 2012 à 14:18
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013 - 12 juil. 2012 à 13:45
Bonjour tous,

j'ai crée un formulaire que je voulais récupérer dans ma base de données mais le code php de récupération dans ma base de données m'echappe vu qu'elle affiche une page page blanche au lieu d'envoyer des données dans ma base de données.
regarde le code de récupération :

<?php
$server = '...';
$user = '...';
$pass = '...';
$table =formulaire; $db=formulaire;

mysql_pconnect($server, $user, $pass)
or die("Impossible de se connecter au serveur $server");
/* ensuite se choisir la base : */
mysql_select_db($db)
or die("impossible de se connecter à la base $db");


*/Récupérer les données */

$nom=$_POST['nom'];
$prenom=$_POST['prenom']; /*et ainsi de suite */


/* puis faire la requete : */
$query = "INSERT INTO $table (nom, prenom, ...)
VALUES ('$nom', '$prenom', '...')";

$resultat = mysql_query($query)
or die("L'insertion a echouée car ". mysql_error() .".");
/deconnection mysql

?>

aide moi s'il vous plait.
MERCI CORDIALEMENT

15 réponses

Utilisateur anonyme
9 juil. 2012 à 14:36
Bonjour

Tel qu'il est écrit, ce code n'affiche rien de spécial si l'insertion réussit. Ce n'est donc pas mauvais signe de voir une page blanche.

J'ai quand même deux remarques :
1 -
$table =formulaire; $db=formulaire; 
Ce ne serait pas plutôt
$table ='formulaire'; $db='formulaire';
(avec des ' autour de 'formulaire' ? Ça dépend si tu as une constante formulaire définie avant, mais j'en doute.
2 - pour éviter la page blanche, ajouter un message en cas de succès :
...
$resultat = mysql_query($query) 
or die("L'insertion a echouée car ". mysql_error() ."."); 
//deconnection mysql 
echo 'insertion réussie';
?> 
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
9 juil. 2012 à 15:16
alors quelle est la difference entre:
$query = "INSERT INTO $table (nom, prenom, ...)
VALUES ('$nom', '$prenom', '...')";

et ceci;

$sql= "INSERT INTOtable (nom, prenom, ...)
VALUES ('$nom', '$prenom', '...')";
0
Utilisateur anonyme
9 juil. 2012 à 15:49
J'en vois plusieurs :
1 - Tu as changé le nom d'une variable : $query est devenu $sql. Ceci n'a aucune importance si tu passes la bonne variable à mysql_query ensuite.

2 - Tu as retiré un espace après INTO. du coup, ta seconde requête est incorrecte, INTOtable ne forme qu'un seul mot qui ne veut rien dire en SQL. Je suppose que c'est une faute de frappe et que tu voulais écrire INTO table.

3 - tu as remplacé un nom de variable ($table) par une valeur figée, table.
Comme ta variable contient 'formulaire', dans un cas, ta requête sera "INSERT INTO formulaire..." et dans l'autre "INSERT INTO table(...)
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
9 juil. 2012 à 15:57
mais je crois je me suis perdu a force de lire les tuto et autres qu'en dis tu de ceci:
<?

php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "INFOS" ) ;
//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"]

;

//prenom:
$prenom = $_POST["prenom"]

;

//adresse:
$adresse = $_POST["adresse"]

;

//code postal:
$cp = $_POST["codePostal"]

;

//numéro de téléphone:
$tel = $_POST["telephone"] ;
//création de la requête SQL:
$sql = "INSERT INTO personnes (nom, prenom, adresse, cp, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$tel') " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete

)

{
echo("L'insertion a été correctement effectuée")

;

}
else

{
echo("L'insertion à échouée")

;
}
?>
0
Globalement, ça a l'air bien.
En regardant un peu plus en détail :
1 - avant d'inclure une variable dans une requête mysql, il faut échapper les caractères spéciaux avec la fonction mysql_real_escape_string, sinon tu vas avoir de gros problèmes, en particulier si les variables contiennent des apostrophes :
$nom = mysql_real_escape_string($_POST["nom"]);
(idem pour les autres)
2 - le if($requete est inutile, tu peux directement mettre echo("L'insertion a été correctement effectuée"). En effet, s'il y a un problème dans la requête, le "or die" d'exécutera, et le die arrête l'exécution du script. Donc ce qui suit le or die ne s'exécutera que si la requête est bonne : ton if($requete) sera toujours vrai, car s'il devait être faux, on se serait arrêté avant.

[edit] gros détail au départ : <?php sur une seule ligne, pas <? sur une ligne et php plus loin
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
9 juil. 2012 à 16:31
Alors premièrement je vous remercie beaucoup de votre aide puis je veux être claire et précis sur ma demande puisque je suis super novice. En fait j'ai crée un formulaire de deux champs c'est a dire Nom et Prenom avec a la fin le bouton envoyer.
Je vous supplie de bien vouloir me donner un bon code php de récupération des données dans ma base de données
.Merci encore
N.B: je suis héberger chez HEBERGRATUIT.COM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
9 juil. 2012 à 16:43
Le code que tu as donné est correct aux petits détails près que je t'ai indiqués.
J'ajoute d'autres détails : si nu n'as que deux champs, il ne faut pas traiter l'adresse, le code postal, ni le téléphone évidemment. De plus, chez un hébergeur, je doute que ton nom d'utilisateur soit 'root' et ton mot de passe, vide, il faudra remettre les bons. Même chose pour le nom de ta base de données, ce n'est sûrement pas INFOS.
Si tes champs s'appellent bien 'nom' et 'prenom', le code pourrait ressembler à ça :
<?php 
//connexion au serveur  (connection c'est de l'anglais)

$cnx = mysql_connect( "localhost", "root", "" ) or die(mysql_error());  // remplacer par bonnes valeurs
//sélection de la base de données: 
$db = mysql_select_db( "INFOS" ) or die(mysql_error()) ;  // remplacer par bonne valeur

//récupération des valeurs des champs: 

//nom: 
$nom =mysql_real_escape_string( $_POST["nom"]) ; 

//prenom: 
$prenom = mysql_real_escape_string( $_POST["prenom"]);
 
//création de la requête SQL: 

$sql = "INSERT INTO personnes (nom, prenom) VALUES ( '$nom', '$prenom', ) " ; 
//exécution de la requête SQL: 
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; 
echo("L'insertion a été correctement effectuée") 

?>
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
9 juil. 2012 à 16:59
ok merci..donc ici ( "localhost", "root", "" ) qu'est ce que je mettrais?
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
9 juil. 2012 à 17:02
ok ok je vois..merci je te dirais si j'ai reussi..Merci beaucoup.
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 09:03
salut le père,
je ne sais pas ce qui se passe mais je crois que ca me déborde vraiment.
ton code n'affiche rien(page blanche) après avoir cliquer sur le bouton.
Alors que faire?
0
Commençons par le commencement.
Oublie pour l'instant le formulaire et la base de données.
Fais un simple script qui ne contient que ça :
<?php 
echo 'bonjour'; 
?>

Est-ce que ça marche ?
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 09:47
oui je vois bien cela mais le temps me fait défaut vraiment mais puis je t'ecrire un message privé?
0
Non, pas de message privé.
Si tu veux ne pas perdre de temps, sois précis : quand tu écris oui je vois bien cela, que désigne 'cela' ? En clair, est-ce que tu veux dire que tu comprends ce que je te demande, ou que tu as vu 'bonjour' s'afficher ?
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 10:07
ok ok ça s,affiche bien, ça marche bien
alors?
0
Utilisateur anonyme
12 juil. 2012 à 10:11
Alors redonne ton script qui devrait récupérer les données du formulaires et t'affiche une page blanche (en cachant tes mots de passe)
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 10:18
voici le code qui m'affiche une page blanche:
<?php
//connexion au serveur (connection c'est de l'anglais)

$cnx = mysql_connect ('localhost','rober_12154412','mot de passe') or die(mysql_error()); // remplacer par bonnes valeurs
//sélection de la base de données:
$db = mysql_select_db (ma base de donnees) or die(mysql_error()) ; // remplacer par bonne valeur

//récupération des valeurs des champs:

//nom:
$nom =mysql_real_escape_string( $_POST["nom"]) ;

//prenom:
$prenom = mysql_real_escape_string( $_POST["prenom"]);

//création de la requête SQL:

$sql = INSERT INTO 'information'('nom', 'prenom') VALUES ($nom,$prenom]) ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
echo("L'insertion a été correctement effectuée")

?>
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 10:21
ma database est : rober_10969254_Infos
ma table est :information
il ya deux champs: nom et prenom
0
Utilisateur anonyme
12 juil. 2012 à 10:48
Je ne vois pas comment ce code peut ne rien afficher.

1 - Déjà, à la place de 'ma base de donnees' tu devrais avoir le vrai nom de ta base de données entre apostrophes ('rober_10969254_Infos' si j'ai bien copmpris)
2 - Il n'y a rien d'autre dans le fichier qui contient ce code ?
3 - Comment s'appelle le fichier qui contient ce code ?
4 - Peux-tu montrer le code complet du formulaire qui appelle ce code ?
0
Utilisateur anonyme
12 juil. 2012 à 10:53
Remarque supplémentaire : pourquoi fais-tu n'importe quoi ? Ta requête $sql="INSERT... était bien entre " dans tes messages précédents, elle n'y est plus. PHP aurait dû te balancer de gros messages d'erreurs.
Soit ton code n'est pas du tout pris en compte, soit tu ne l'as pas recopié correctement.
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 12:34
regarde le petit code qui fait appel a la page "recuperant.php"
<html>
<head>
</head> <body>
<form method = "post" action="recuperant.php">
Nom <br>
<input type = "text" name = "nom"> <br>
Prenom <br>
<input type="text" name="prenom"> <br>
<input type = "submit" name = "submit" value = "envoyer">
</form>
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 12:40
ce code est dans un fichier nommé "envoi.html" et le code php se trouve dans "recuperant.php"
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 12:59
oh oh..je viens de reessayer et voici que je recois ce message:
Unknown column 'lievre' in 'field list'

Et ceci apres avoir taper le nom "lievre"
0
Tiens, la page blanche n'est plus blanche... Qu'as-tu donc fait ? Enfin, tu n'es pas obligé de répondre à cette question.

Unknown column 'lievre' in 'field list'
Normal, tu as massacré la requête qui était pourtant correcte avant.
$sql = "INSERT INTO information('nom', 'prenom') VALUES ('$nom','$prenom') ; 

Tu as supprimé les ' autour de $nom et $prenom. Pour mysql, un texte qui n'est pas entouré d'apostrophes ou quotes, c'est a priori un nom de champ (column).
0
lievre24 Messages postés 35 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 10 avril 2013
12 juil. 2012 à 13:45
wow !!! je trouve c'est bon maintenant. ca s'insère bien..je te remercie beaucoup pour tobn aide si précieuse ,sans toi je crois ca serais chaotique..en tout cas merci
0