extraction d'un n°

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:27

<?php
	   $table = "formateurs"; 
    $sql = "SELECT * FROM " . $table; 
    $res = mysql_query($sql); 
    $nb = mysql_num_rows($res);
    $i = 0; 
    while ($i < $nb){ 
	echo '<font face="Arial, Helvetica, sans-serif" size="2" color="#666666">'.'<b>'.mysql_result($res, $i, "id").'</b>'.'</font>';
	 $i++; 
    } 
   	?>
Ce script m'affiche la suite des identifiants : 1 2 3 4 5 ...

Je souhaiterais qu'il n'affiche que le dernier. Merci pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 déc. 2006, 12:29

Comme pour le précédent message, "Bounjour" et "s'il vous plait", c'est pas cher et ça fait plaisir. :-k

Regarde du coté du SQL et plus particulièrement LIMIT et ORDER BY
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:35

Limit ça sonne bien. Mais comme je suis totalement néophyte, c'est la syntaxe qui me manque.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:47

Un peu de doc pour les néophytes ;)

:arrow: http://www.phpdebutant.org/article84.php

Eléphant du PHP | 440 Messages

15 déc. 2006, 23:24

Merci pour la doc mais je ne m'en sors pas.
<?php
	   $table = "formateurs"; 
    $sql = "SELECT * FROM " . $table; 
    $res = mysql_query($sql); 
    $nb = mysql_num_rows($res);
    $i = 0; 
    while ($i < $nb){ 
	echo '<font face="Arial, Helvetica, sans-serif" size="2" color="#666666"><b>'.mysql_result($res, $i, "id").'</b></font>';
	 $i++; 
    } 
   	?>
Je dois trouver la dernière valeur du champ id.
Il faut utiliser peut-être Limit, peut-être Count. Mais comment ?
Merci d'avance pour votre aide précieuse.

ViPHP
ViPHP | 1961 Messages

15 déc. 2006, 23:46

Bonjour,
Avec ça
Comme pour le précédent message, "Bounjour" et "s'il vous plait", c'est pas cher et ça fait plaisir. :-k

Regarde du coté du SQL et plus particulièrement LIMIT et ORDER BY
plus le lein que t'a donnée charabia tu devrais arriver facilement.

Tu dois modifier ta requête pour quelle ne te donne que un rang "LIMIT 0,1" mais ce rang doit être celui du "id" le plus grand il te faut don trier le résultat du plus grand au plus petit "ORDER BY id DESC".

Comme là tu n'as qu'un résultat, dans ton PHP tu n'as plus besoin de ta boucle while().

Essaie de le le faire avec ses infos.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

16 déc. 2006, 00:34

voici où j'en suis et qui ne fonctionne évidemment toujours pas !
      <?php
	   $table = "formateurs"; 
    $sql = "SELECT * FROM " . $table."LIMIT 0,1"."ORDER BY id DESC"; 
    $res = mysql_query($sql); 
    $nb = mysql_num_rows($res);
    $i = 0; 
    echo '<font face="Arial, Helvetica, sans-serif" size="2" color="#666666"><b>'.mysql_result($res, $i, "id").'</b></font>';
	 $i++; 
   	?>

ViPHP
ViPHP | 1961 Messages

16 déc. 2006, 00:47

Re,

Pourtant tu n'est pas bien loin.

Tu as des soucis de syntaxe, tu colles toutes tes concaténtions (il n'y a pas d'espace).

Il faut toujours tester le retour de MySQL.
Si tu l'avais fat tu te serais rendu compte que la requête n'est pas correctement construite.

De plus $i il ne te sert plus à rien (plus de rangs à chercher, tu n'en a qu'un)
Essaie ceci mais en essayant de comprendre
<?php
    $table = "formateurs"; 
    $sql = "SELECT * FROM " . $table . " ORDER BY id DESC LIMIT 0,1"; 
    $res = mysql_query($sql) or die('ERR_SQL :<br />' . $sql . '<br />' . mysql_error()); 
    echo '<font face="Arial, Helvetica, sans-serif" size="2" color="#666666"><b>'. mysql_result($res, 0, "id").'</b></font>';
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

16 déc. 2006, 11:06

super ça marche. même si je l'avoue je ne comprends pas tout à la syntaxe.

Mammouth du PHP | 19672 Messages

16 déc. 2006, 11:18

super ça marche. même si je l'avoue je ne comprends pas tout à la syntaxe.
Alors n'hésite pas à poser des question, sinon dans un mois, dans six mois ou dans deux ans, tu sera toujours à la recherche de solutions. Bien comprendre une syntaxe peut te faire avancer beaucoup plus facilement ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: