Problème avec Mysql_fetch_row

cs_palisse Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 16 août 2009 - 15 août 2009 à 01:02
cs_palisse Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 16 août 2009 - 16 août 2009 à 16:35
Bonjour,

Je cherche à pouvoir récupérer des données dans une BDD et mettre les valeurs des champs récupérés dans un message à envoyer.

Voici le code pour récupérer les dernières données enregistrées et envoyer le message:

<code>
<?php
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db( "contact" ) ;

// on récupère le dernier numéro inséré, soit le numéro de tibo
$dernier_id = mysql_insert_id($cnx);


// on prépare la requête pour récupérer le numero du propriétaire
$sql "SELECT * FROM rendezvous WHERE id '$dernier_id'";
$requete = mysql_query($sql, $cnx) or die( mysql_error() );
$result=mysql_fetch_row($requete);

$id = $result["0"];
$titre = $result["1"];
$nom = $result["2"];
$responsabilite = $result["3"];
$eleve = $result["4"];
$classe = $result["5"];
$email = $result["6"];
$prof = $result["7"];
$date1 = $result["8"];
$heure1 = $result["9"];
$date2 = $result["10"];
$heure2 = $result["11"];

// envoi email au secretariat
/* Construction du message */
$msg = " Ref: ".$result["0"]."

BONJOUR MR / MME LE PROFESSEUR DE ".$prof."

UNE DEMANDE DE RENDEZ-VOUS A ETE ENVOYEE PAR LE SITE DE SAINT ELME:

".$titre." ".$nom." (".$email.")

".$responsabilite." DE ".$eleve.", ELEVE EN CLASSE DE ".$classe."

SOUHAITE VOUS RENCONTRER SOIT:

- LE ".$date1." A ".$heure1."
ou
- LE ".$date2." A ".$heure2."

MERCI DE CONFIRMER UN DE CES CHOIX AUPRES DU SECRETARIAT.";


/* Envoi de l'e-mail */
mail("pop@coco.fr", "DEMANDE DE RENDEZ-VOUS PROF", $msg)
?>
<code>

Or si les données quand on valide le formulaire sont bien enregistrées dans la BDD; si la récupération est bonne dans mon tableau $row, le mail que je reçoit est vide de toutes données.

Quelqu'un pourrait-il m'aider??


Merci

3 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 août 2009 à 14:16
Salut Palisse,

Dans ces cas là la meilleure chose à faire est de "blinder" ton script avec des tests un peu partout : echo, print_r, or die, isset, etc ...

En l'occurrence ton erreur doit venir de mysql_insert_id($cnx). Tu ne sembles pas avoir de requête avant cette ligne et de ce fait $dernier_id doit être à 0 (fais un echo dessus)

Préfère une requête du style :
SELECT MAX(id) FROM taTable

Cordialement,


Kohntark -
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 août 2009 à 14:28
Pour préciser et corriger cette réponse rapide, supprime ta ligne "$dernier_id" et change ta requête pour :

$sql = "SELECT * FROM rendezvous ORDER BY id DESC LIMIT 0,1";


Cordialement,


Kohntark -
0
cs_palisse Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 16 août 2009
16 août 2009 à 16:35
Merci pour ces deux réponses Kohntark.

Effectivement avec "ORDER BY id DESC LIMIT 0,1" ça marche.... les données sont dans la BDD et ensuite un mail avec les infos arrive dans ma boite.

Cependant une petite question encore: Comment être sûr que ce dernier Id soit celui qui a été inséré???

Je chipotte mais je voudrai être sûr d'avoir le mail de tous mes inserts de la BDD.

Merci
0
Rejoignez-nous