récuperer un ID

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : récuperer un ID

Re: récuperer un ID

par pierro95 » 14 juil. 2011, 23:18

Génial Ryle
Ça fonctionne parfaitement bien...
je te remercie énormément... 2 jours que j’étais dessus... :-)
Encore merci et peut être à bientôt selon comment avance le reste :-)

Bonne soirée

Re: récuperer un ID

par Ryle » 14 juil. 2011, 19:49

Il faut que tu appelles la fonction juste après avoir exécuté l'insertion, donc ici :
$sql = 'INSERT INTO forum VALUES("", "'.mysql_escape_string($nom).'", ';
$sql.= '"'.mysql_escape_string($email).'", "'.mysql_escape_string($date_insertion).'", ';
$sql.= '"'.mysql_escape_string($message).'", "'.mysql_escape_string($id_reponse).'", ';
$sql.= '"'.mysql_escape_string(getenv('REMOTE_ADDR')).'", "0", ';
$sql.= '"'.mysql_escape_string($titre).'",'.mysql_escape_string($recevoirMail).', ';
$sql.= '"'.mysql_escape_string($date_insertion).'")';
mysql_query($sql) or die(showError('3', mysql_error())); // Exécution de l'insertion
$id = mysql_insert_id(); // Récupération de l'identifiant généré par mysql
echo "Le nouvel id est " . $id;
Tu pourras ensuite utiliser la valeur de l'id que tu viens d'enregistrer :)

Re: récuperer un ID

par pierro95 » 14 juil. 2011, 18:50

j'ai essayé ceci
// Gestion des envoi par mail
if ($envoiParMail && function_exists('mail')) {
        $emails = '';
        // Recupération des emails pour l'envoi
	$sql = 'SELECT DISTINCT(email) as mail FROM forum WHERE (reception_mail=1) AND (email<>"'.mysql_real_escape_string($email).'")';
	$sql.= ' AND (id='.mysql_real_escape_string($id_reponse).' OR id_reponse='.mysql_real_escape_string($id_reponse).' '.mysql_insert_id().')';

	$res = mysql_query($sql) or die(showError('3', mysql_error()));
	if (mysql_num_rows($res)>0) {
		// Contenu du mail
                $last_id = mysql_insert_id();
		$sujet = '1 réponse à été ajouté à votre message sur le forum '.$nomsite;
		$corps = 'Voici la réponse apportée : '."\n\n";
		$corps.= $last_id;
       
                // Envoi des emails
                while($r = mysql_fetch_array($res)) {
                        mail($r['mail'], $sujet, $corps,'From: Forum '.$nomsite.' <'.$webmail.'>'."\n");
                }
        }
}
Ca ne marche pas. j'ai aussi essayé de le placer un peu partout, rien a faire.....

ou est ce et comment dois je placer ceci svp???

Re: récuperer un ID

par Ryle » 14 juil. 2011, 10:33

Note:

Parce que mysql_insert_id() agit sur la dernière requête exécutée, assurez-vous d'appeler la fonction mysql_insert_id() immédiatement après l'exécution de la requête qui a générée la valeur.
;)

Re: récuperer un ID

par pierro95 » 14 juil. 2011, 02:03

Je suis allé voir sur le site dont tu ma parlé...
Par contre, je ne sais pas pourquoi, mais cça me retourne toujours 0 comme valeur

Voici comment je l'ai inséré
// Gestion des envoi par mail
if ($envoiParMail && function_exists('mail')) {
	$emails = '';
	// Recupération des emails pour l'envoi
	$sql = 'SELECT DISTINCT(email) as mail FROM forum WHERE (reception_mail=1) AND (email<>"'.mysql_escape_string($email).'")';
	$sql.= ' AND (id='.mysql_escape_string($id_reponse).' OR id_reponse='.mysql_escape_string($id_reponse).')';
	$res = mysql_query($sql) or die(showError('3', mysql_error()));
	if (mysql_num_rows($res)>0) {
		// Contenu du mail
	    $last_id = mysql_insert_id();
		$sujet = '1 réponse à été ajouté à votre message sur le forum '.$nomsite;
		$corps = 'Vous pouvez consulter votre message à l'adresse suivante : '."\n\n";
		$corps.= $last_id;
        
		// Envoi des emails
		while($r = mysql_fetch_array($res)) {
			mail($r['mail'], $sujet, $corps,'From: Forum '.$nomsite.' <'.$webmail.'>'."\n");
		}
	}
}

Re: récuperer un ID

par Ryle » 14 juil. 2011, 01:25

ben ça s'écrit "$id = mysql_insert_id()" :)

D'une manière générale, quand tu as un doute sur le fonctionnement ou l'utilisation d'une fonction, le plus simple et le plus rapide consiste à regarder la doc sur php.net :)

http://www.php.net/manual/fr/function.m ... ert-id.php

Re: récuperer un ID

par pierro95 » 14 juil. 2011, 00:40

merci Ryle
mais je ne connais pas du tout.... Plus concrètement, en php, ça s'écrit comment???

merci

Re: récuperer un ID

par Ryle » 13 juil. 2011, 23:52

C'est l'identifiant de l'enregistrement que tu veux récupérer ? Si c'est le cas, tu peux le récupérer avec mysql_insert_id() :)

récuperer un ID

par pierro95 » 13 juil. 2011, 23:23

Bonsoir,
Je travaille actuellement sur un forum. J'aimerai récupérer l'id de l'auteur du 1er post pour l'inclure dans une url qui serai envoyé a celui ci en cas de réponse lui proposant de cliquer sur le lien pour voir la réponse. Et la, je sèche...
Je vous fais part du code:
$db = mysql_connect($host, $login, $password) or die(showError('1', mysql_error()));
mysql_select_db($base,$db) or die(showError('2', mysql_error()));

$sql = 'INSERT INTO forum VALUES("", "'.mysql_escape_string($nom).'", ';
$sql.= '"'.mysql_escape_string($email).'", "'.mysql_escape_string($date_insertion).'", ';
$sql.= '"'.mysql_escape_string($message).'", "'.mysql_escape_string($id_reponse).'", ';
$sql.= '"'.mysql_escape_string(getenv('REMOTE_ADDR')).'", "0", ';
$sql.= '"'.mysql_escape_string($titre).'",'.mysql_escape_string($recevoirMail).', ';
$sql.= '"'.mysql_escape_string($date_insertion).'")';
mysql_query($sql) or die(showError('3', mysql_error()));

if (!empty($id_reponse) && $remontageSujet) {
	$sql = 'UPDATE forum SET date_reponse="'.$date_insertion.'" WHERE id="'.$id_reponse.'"';
	mysql_query($sql) or die(showError('3', mysql_error()));
}

if ($envoiParMail && function_exists('mail')) {
	$emails = '';
	// Recupération des emails pour l'envoi
	$sql = 'SELECT DISTINCT(email) as mail FROM forum WHERE (reception_mail=1) AND (email<>"'.mysql_escape_string($email).'")';
	$sql.= ' AND (id='.mysql_escape_string($id_reponse).' OR id_reponse='.mysql_escape_string($id_reponse).')';
	$res = mysql_query($sql) or die(showError('3', mysql_error()));
	if (mysql_num_rows($res)>0) {
		$sujet = Une nouvelle réponse sur le forum '.$nomsite;
		$corps = 'Vous pouvez consulter votre message à l'adresse suivante .$urlsite+$id : '."\n\n";
		$corps.= $message;

		while($r = mysql_fetch_array($res)) {
			mail($r['mail'], $sujet, $corps,'From: Forum '.$nomsite.' <'.$webmail.'>'."\n");
		}
	}
}
mysql_close();
$corps = 'Vous pouvez consulter votre message à l'adresse suivante .$urlsite+$id : '."\n\n"; c'est la que devrai apparaitre l'id.

Quelqu'un pour me donner un coup de main svp? :mrgreen: :mrgreen: