Récuperer et incrémenter une variable d'une base de donnée (php)

milicienoir - 28 mai 2013 à 08:06
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 31 mai 2013 à 13:37
Bonjour,
Je dois créer un formulaire qui s'incrémente a chaque fois qu'une personne le remplit.
J'ai un petit problème avec ma base de donnée, je veux extraire une valeur (sa j'y arrive) mais le problème c'est que je voudrais que ma dernière ligne car je voudrais ensuite incrémenter cette valeur numérique.

mon code :
mysql_connect("localhost", "arnaud", "root"); // Connexion à la base de données
 mysql_select_db("presta_info"); // Sélection de la base de données 
 $reponse = mysql_query ("SELECT * FROM formulaire ORDER BY numero DESC"); // Requête SQL
 
 while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau
 {
echo $donnees['numero'];  
  

 }
 mysql_close();

merci d'avance

4 réponses

sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
28 mai 2013 à 08:45
Bonjour,

Tu peux modifier ta requête pour ne récupérer que le numéro maximum : SELECT max(numero) FROM formulaire.

Ou alors, tu mets un break dès que tu récupères la valeur de numero :
 mysql_connect("localhost", "arnaud", "root");
 mysql_select_db("presta_info");
 $reponse = mysql_query ("SELECT numero FROM formulaire ORDER BY numero DESC");
 
 while ($donnees = mysql_fetch_array($reponse)){
echo $donnees['numero'];break;
 }
 mysql_close();


NB : pour des raisons d'optimisation, je te conseille de ne récupérer que les champs dont tu as besoin dans ta requête.
0
milicienoir
28 mai 2013 à 09:07
J'ai trouvé comment faire j'ai tout simplement enlevé ma boucle

mysql_connect("localhost", "arnaud", "root"); // Connexion à la base de données
mysql_select_db("presta_info"); // Sélection de la base de données
$reponse = mysql_query ("SELECT * FROM formulaire ORDER BY numero DESC"); // Requête SQL

$donnees = mysql_fetch_array($reponse); // On boucle pour afficher toutes les données et on met toutes données dans un tableau


//echo ("");
$num = $donnees['numero'];
$num ++ ;


echo $num;
0
pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 1
31 mai 2013 à 10:52
Bonjour,

Si tu n'as besoin que d'une ligne, pourquoi demander à mysql de récupérer l'ensemble des données de la table ?
La commande "top 1" te permet de ne récupérer que la première ligne. Comme tu tries par numéro descendant, tu n'auras qu'un numéro....

$reponse = mysql_query ("SELECT top 1 numero FROM formulaire ORDER BY numero DESC"); // Requête SQL


-------------------
Oderint dum metuant
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
31 mai 2013 à 13:37
Hello,

Moi je ferai ceci :

$reponse = mysql_query("SELECT numero FROM formulaire ORDER BY numero DESC LIMIT 1");


A+

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous