PHP dans mySQL

Fermé
Pamela - 20 juil. 2009 à 21:53
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 - 20 juil. 2009 à 22:09
Bonjour a tous!

Je suis en train de faire une connection entre mon formulaire codé en PHP et une base de données mySQL.
Voila mon code php au complet incluant le formulaire et la connection mysql:

<?php
// CONNECTION A LA BASE DE DONNEES
$dsn="connecteurOdbc";
$user="root";
$pwd="";
$cnx = odbc_connect($dsn,$user,$pwd) or die("<br>IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES");

if ($cnx)
{

if (isset($_POST['Submit']))
{
if(isset($_POST['prenom']) && isset($_POST['nom']) && isset($_POST['telephone']) && isset($_POST['courriel']) && isset($_POST['organisme']) && isset($_POST['fonction']) && isset($_POST['ordre']))
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
{
echo '<div><p class="titres"><b>Merci d\'avoir rempli le formulaire!</p> </b><br>
<p class="texte"><i>Vos informations sont les suivantes: </i></p><br>
<p class="textePetit"><u><b>Prénom</b></u>: ' .$_POST['prenom']. ' <br><br>
<u><b>Nom</b></u>: ' .$_POST['nom']. ' <br><br>
<u><b>Téléphone (bureau)</b></u>: ' .$_POST['telephone']. ' </p><br><br>';
if(!empty($_POST['telecopieur']))
{
echo '<div><p class="textePetit"><u><b>Télécopieur</b></u>:' .$_POST['telecopieur']. ' </p> <br>';
}
echo '<div><p class="textePetit"><u><b>Courriel</b></u>: ' .$_POST['courriel']. ' <br><br>
<u><b>Organisme</b></u>: ' .$_POST['organisme']. ' <br><br>
<u><b>Fonction</b></u>: ' .$_POST['fonction']. ' <br><br>
<u><b>Ordre d\'enseignement</b></u>: ' .$_POST['ordre']. ' </p><br><br>';

}
else
{
echo '<div><p class="texte"><b> Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer </b></p>';
}
}
else
{
echo '<div> Les variables n\'existent pas';
}
}
else { }
}
else {}
?>


<?php
// INSERTION DE DONNEES DANS LA BD
// recuperation des valeurs des champs
// est-ce quil fo faire une cnx avant la recuperation des donnees? ou bien une seule fois cest assez? je lai fait au debut du code...
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$fonction=$_POST['fonction'];
$org=$_POST['organisme'];
$tel=$_POST['telephone'];
$telecopieur=$_POST['telecopieur'];
$courriel=$_POST['courriel'];

$sql="INSERT INTO participant(nom,prenom,fonction,org,tel,telecopieur,courriel) VALUES ('$nom','$prenom','$fonction','$org','$tel','$telecopieur','$courriel')"; // creation de la requete sql
echo '<center>.$sql.<br>'; //affichage de la requete sql
$query=odbc_do($sql,$cnx) or die (odbc_error());
if($query)
echo '<center>L\'insertion a été correctement effectuee</center>';
else
echo '<center>L\'insertion a échouee</center>';

odbc_close();
?>

et lorsque je l'exécute sur wampserver, le formulaire fonctionne parfaitement et la connection initiale aussi, mais le problème cest ke les données ne sont pas stockées dans la bd et aussi, j'ai le message d'erreur suivant:
Warning: odbc_do(): supplied argument is not a valid ODBC-Link resource in C:\wamp\www\colloque\formulaire.php on line 86

la ligne 86 étant:
$query=odbc_do($sql,$cnx) or die (odbc_error());

Le formulaire s'affiche très bien mais le echo '<center>.$sql.<br>'; affiche seulement un $sql au lieu de sa valeur...

DONC en bref :P
mes questions sont:

1)pourquoi est-ce que ça me fait une erreur? (erreur de syntaxe?)
2)pourquoi est-ce que en bas du formulaire, ça s'affiche .$sql au lieu de la valeur du $sql..

Voila ce que mon formulaire affiche apres avoir rempli les champs:

Merci d'avoir rempli le formulaire!

Vos informations sont les suivantes:

Prénom: Pere

Nom: Noel

Téléphone (bureau): 444-1919


Courriel: un.courriel@gmail.com

Organisme: CS de Montréal

Fonction: Directeur ou directrice d'école

Ordre d'enseignement: Primaire


.$sql.


Warning: odbc_do(): supplied argument is not a valid ODBC-Link resource in C:\wamp\www\colloque\formulaire.php on line 86


Merci d'avance!!

(p.s desolé pour ce long message :P)

3 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
20 juil. 2009 à 21:56
1) C'est pas courant d'utiliser ODBC pour interroger une base de données...
Pourquoi ne pas utiliser les méthodes mysql_connect ?
2) Remplacer
echo '<center>.$sql.<br>'; //affichage de la requete sql
par echo '<center>'.$sql.'<br>'; //affichage de la requete sql
0
J'utilise odbc_connect() parce que j'ai utilisé une source de données ODBC pour exporter une table access vers mySQL..donc ca marcherais quand meme sans odbc_connect()?
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
20 juil. 2009 à 22:09
Oui.... à partir du moment ou la base est bien complete et est accessible. Il n'y a pas de problème...
0