connection à mysql et alimentation depuis un formulaire ?

DISCRET
WRInaute discret
WRInaute discret
 
Messages: 185
Inscription: 18 Oct 2004

connection à mysql et alimentation depuis un formulaire ?

Message le Lun Sep 12, 2005 22:40

Bonsoir,
j'essaie depuis un formulaire d'alimenter une base de données. Mon problème est que je n'arrive pas à l'alimenter.
le code qui en théorie devrait permettre la connection à mysql :
Code: Tout sélectionner
<?php
// On commence par récupérer les champs
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";

// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) )
    {
    echo '<font color="red">Attention, seul le champs <b>pseudo</b> peut rester vide !</font>';
    }

// Aucun champ n'est vide, on peut enregistrer dans la table
else     
    {
       // connexion à la base
$db = mysql_connect('mysql4.7', 'login', 'lelogicievad", "pswd crypté')  or die('Erreur de connexion '.mysql_error());

    // sélection de la base 
    $mysql_select_db('lelogicievad',$db)  or die('Erreur de selection '.mysql_error());
   
    // on écrit la requête sql
    $sql = "INSERT INTO evad_clients(id, nom, prenom ) VALUES('','$nom','$prenom')";
   
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
    }
?>


qu'est ce qu'il ne va pas, pourquoi ça ne s'enregistre pas dans la base :(


Mumuri
WRInaute passionné
WRInaute passionné
 
Messages: 1800
Inscription: 3 Nov 2004

Message le Mar Sep 13, 2005 7:16

essaye de faire un echo $sql et regarde si ca enregistre dans la base.


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Mar Sep 13, 2005 9:45

Salut,

Dans ton code tu mets :

Code: Tout sélectionner
$sql = "INSERT INTO evad_clients(id, nom, prenom ) VALUES('','$nom','$prenom')";


Si ton champ "id" a été défini comme s'incrémentant tout seul, ce qui je suppose est le cas, tu peux simplement faire :

Code: Tout sélectionner
$sql = "INSERT INTO evad_clients(nom, prenom ) VALUES('$nom','$prenom')";


A+, Fab

DISCRET
WRInaute discret
WRInaute discret
 
Messages: 185
Inscription: 18 Oct 2004

Message le Mar Sep 13, 2005 12:07

merci de votre aide, j'ai finalement trouvé. Ca devait être la fatigue :)
Code: Tout sélectionner
$mysql_select_db('lelogicievad',$db)  or die('Erreur de selection

il fallait juste que je retire le $ devant mysql et là "$prenom" dans la base j'avais mis un N à la fin au lieu d'un M.

DISCRET
WRInaute discret
WRInaute discret
 
Messages: 185
Inscription: 18 Oct 2004

Message le Mar Sep 13, 2005 17:37

une autre difficulté se pose à moi, cette fois ce sont les sessions.

je mets les données en session comme ça :
Code: Tout sélectionner
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['prenom'] = $data['prenom'];
  $_SESSION['telfd'] = $data['telfd'];


et pour les récupérer :
Code: Tout sélectionner
echo 'Nom : ',$_SESSION['nom'],'<br />
Prénom : ',$_SESSION['prenom'],'<br />
Tél fixe domicile : ',$_SESSION['telfd'],'<br />


les deux premières sont récupéré mais pour la (les) dernière(s) il m'affiche juste "Tél fixe domicile :". Si j'inverse la deuxième et la troisième "nom" et "prénom" sont toujours bon mais "tél fixe domicile" reste toujours blanc.

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Mer Sep 14, 2005 3:45

Fab le Fou > je suis un fervent défenseur de cette façon de coder, qui simplifie les requêtes ET la maintenance du code.
Ne mettez dans les requêtes SQL que le strict minimum de champs, et utilisez quand c'est possible les valeurs de champs par défaut MySQL.

(edit, j'ai oublié de participer au post)
Vérifie que ton champ se nomme bien 'telfd', et qu'il est rempli !

DISCRET
WRInaute discret
WRInaute discret
 
Messages: 185
Inscription: 18 Oct 2004

Message le Mer Sep 14, 2005 11:28

Didier_S a écrit:Fab le Fou > je suis un fervent défenseur de cette façon de coder, qui simplifie les requêtes ET la maintenance du code.
Ne mettez dans les requêtes SQL que le strict minimum de champs, et utilisez quand c'est possible les valeurs de champs par défaut MySQL.

(edit, j'ai oublié de participer au post)
Vérifie que ton champ se nomme bien 'telfd', et qu'il est rempli !


J'ai suivi votre recommandation concernant ID :)
Pour le deuxième sujet après avoir lu des dizaines de pages sur les sessions j'ai "découvert" qu'il fallait mettre les URL en absolu et non pas en relatif. Mais je ne comprend pas pourquoi les champs Nom et Prénom passaient toujours.
Donc voila pour le moment tout se passe bien, on verra bien la prochaine étape ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité