connection à mysql et alimentation depuis un formulaire ?

DISCRET

WRInaute discret
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:
<?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 :(
 

Fab le Fou

WRInaute passionné
Salut,

Dans ton code tu mets :

Code:
$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:
$sql = "INSERT INTO evad_clients(nom, prenom ) VALUES('$nom','$prenom')";

A+, Fab
 

DISCRET

WRInaute discret
merci de votre aide, j'ai finalement trouvé. Ca devait être la fatigue :)
Code:
$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
une autre difficulté se pose à moi, cette fois ce sont les sessions.

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

et pour les récupérer :
Code:
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 occasionnel
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
Didier_S a dit:
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 ;)
 

Discussions similaires

Haut