Récupérer la valeur d'un champ unique (ID) sans boucle while

Eléphant du PHP | 428 Messages

28 sept. 2009, 18:00

Bonjour,

Juste une petite question: suis-je obligé d'effectuer une boucle while sur cette requete (voir plus bas) pour récupérer la valeur d'un champ ID qui est unique et non répété (car auto-incrémenté) ?

Si non, comment ?
$req_main="SELECT gallery_id FROM $CfgTableMain WHERE gallery_date=$_GET[date] AND (gallery_title_fr=$_GET[title_fr] OR  gallery_title_en=$_GET[title_en])";
$res_main=mysql_query($req_main) or die('Error: Could not execute mysql query MAIN'); 
Alors boucle while pour récupérer la valeur de gallery_id ou avez-vous une autre solution ?

Merci pour votre aide,
raph

ViPHP
ViPHP | 2287 Messages

28 sept. 2009, 19:03

La boucle while dans une requête sql sert à itérer (parcourir un à un) les résultats retournés.

Toi tu nous parles d'un champ au sein des résultats, ce qui n'est pas le même concept. Pour simplifier, je parle de lignes, et toi tu parles de colonnes. Si tu es certain que ta requête ne ramènera pas plus d'un résultat (ou alors, que tu sais que tu n'as pas besoin de lire les résultats retournés au delà du premier) alors tu peux te passer d'une boucle while, dans le cas contraire le while est impératif.

Note bien que je ne parle à aucun moment des champs utilisés dans ce raisonnement. Que tu utilises zéro, un ou cinquante champs des résultats retournés, le problème reste le même ;)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 428 Messages

28 sept. 2009, 20:32

C'est bon, j'ai trouvé :
$db = mysql_connect($CfgServerHost, $CfgServerUser, $CfgServerPassword) or die('Error: Could not connect to database');
mysql_select_db($CfgDatabase,$db) or die ('Error: Cannot select database');

$req_main="SELECT gallery_id FROM $CfgTableMain WHERE gallery_date=$_GET[date] AND (gallery_title_fr=$_GET[title_fr] OR  gallery_title_en=$_GET[title_en])";
$res_main=mysql_query($req_main) or die('Error: Could not execute mysql query MAIN');

$row = mysql_fetch_array ($res_main);
$Int_title = $date.'-'.$row['gallery_id'];
mysql_close($db);
Pas de boucle while et récupère bien l'ID qui est unique et non répetée car auto-incrémentée.
Je ne cherche pas à reprendre l'id de tous mes records Calimero. (Je sais c'est trop injuste ^^)
Je recherchait simplement à isoler l'id renvoyée par le résultat de la requete et comme l'id est unique et non répété par requete c'est ce qu'il me falait...


Comme d'habitude c'est toujours sur les trucs les plus con que je butte ;)