Tom's Guide > Forum > Programmation > [Résolu] Petit problème de script

[Résolu] Petit problème de script

Forum Programmation : [Résolu] Petit problème de script

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !

Lire la meilleure réponse, apportée par SiM07.

Mot :    Pseudo :           
 

Bonjour,
Lorsque j'exécute la requête ci_dessous en sql, elle fonctionne correctement et m'affcihe bien le dernier enregistrement de ma table.
--> La requête : SELECT * FROM nouveladherent ORDER BY 'num' DESC limit 0, 1
Lorsque je l'incorpore dns mon script php, le résultat n'est pas le même, il m'affiche le premier enregistrement et non pas le dernier.
Voilà mon script php:
mysql_select_db($database_Connect, $Connect);

$req = "SELECT * FROM nouveladherent ORDER BY 'num' DESC limit 0, 1";
$recupenr = mysql_query($req, $Connect) or die(mysql_error());

$enr = mysql_fetch_array($recupenr);

// Recuperation des champs
$num = $enr[0];
$Civilite = $enr[1];
echo $Civilite;
// $Civilite = $row[0];
$Nom = $enr[2];
echo $Nom;
$Prenom = $enr[3];
echo $Prenom;
$Mail = $enr[10];
echo $Mail;
Merci pour votre aide.
Cordialement


Message édité par dandibot le 17-11-2009 à 08:47:43
Ouch ! pas beau du tout ce code ! (désolé).

1) ne jamais mettre * dans une requête sql.
2) éviter d'utiliser mysql_fetch_array mais plutot fetch_assoc ou fetch_row.
3) Eviter or die() mais priviligier or trigger_error() ou des exeptions. Sinon tu peux afficher des erreurs aux visiteurs et c'est une très mauvaise pratique.

Ici si tu modifie un jour la structure de ta base, rien que ajouter un champs tu vas devoir revoir ton code ... pas top !

Tu n'as pas donné la structure de ta table mais je suppose que num correspond à ce qu'on nomme généralement id.

Dans ce cas on a :

Code :
  1. SELECT * FROM nouveladherent ORDER BY id DESC limit 0, 1



Pourquoi avoir mis des quotes ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Meilleure réponse

Ouch ! pas beau du tout ce code ! (désolé).

1) ne jamais mettre * dans une requête sql.
2) éviter d'utiliser mysql_fetch_array mais plutot fetch_assoc ou fetch_row.
3) Eviter or die() mais priviligier or trigger_error() ou des exeptions. Sinon tu peux afficher des erreurs aux visiteurs et c'est une très mauvaise pratique.

Ici si tu modifie un jour la structure de ta base, rien que ajouter un champs tu vas devoir revoir ton code ... pas top !

Tu n'as pas donné la structure de ta table mais je suppose que num correspond à ce qu'on nomme généralement id.

Dans ce cas on a :

Code :
  1. SELECT * FROM nouveladherent ORDER BY id DESC limit 0, 1



Pourquoi avoir mis des quotes ?

Répondre à SiM07

Bonjour SiM07,
Merci pour toutes ces informations que je vais mettre en oeuvre.
Je n'ai pas répondu plus tôt car je me suis absenté quelques jours. Je vais tout de même expliquer comment j'ai résolu ce problème de script.
En fait c'était une question de logique. Je voulais avec un seul bouton générer plusieurs actions (insertion de données dans une table, retour d'une confirmation, recueil de certaines valeurs de champs et envoi d'un mail au responsable).
Tout ceci n'arrivait pas à être synchronisé ce qui fait que je ne pouvais pas récupérer le dernier enregistrement qui venait d'être inséré dans la table 'nouveladherent'.
Pour contourner ce problème de synchronisation, j'ai tout simplement forcé la fermeture de la page de confirmation par un bouton qui lance le script de recueil du dernier enregistrement inséré et qui envoie le mail au responsable.
Merci beaucoup et à trés bientôt.
Cordialement

Répondre à franqui34@idn
Tom's Guide > Forum > Programmation > [Résolu] Petit problème de script
Aller à :

Il y a 2269 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens