A voir également:
- Max id sql
- Select max id - Meilleures réponses
- Select max id sql - Meilleures réponses
- Select max id sql ✓ - Forum - Programmation
- SQL- Select MAX(Id) - Forum - Programmation
- Le MAX en SQL ✓ - Forum - Programmation
- Une seul requête pour plusieurs ID SQL/PHP ✓ - Forum - MySQL
- {MySQL} Max ID dans une base ✓ - Forum - MySQL
5 réponses
J'ai fais une erreur dans mon code, juste avant...
$requete = "SELECT MAX(IdDevis) FROM DEVIS ;"; $result = mysql_query($requete, $link/*connexion avec la BD*/) or die($query . " - " . mysql_error());//retourne une erreur et ferme la connexion en cas d'erreur $max=mysql_fetch_array($result); //un petit test pour la forme! c'est important de mettre le zero puisque la commande retourne un scalaire et la fonction un tableau echo $max[0]; $requete = "INSERT INTO COMMANDE (IdDevis) VALUE ( ' " . $max[0] ." ');"; mysql_query($requete, $link/*connexion avec la BD*/) or die($query . " - " . mysql_error());
rudak
22 août 2010 à 20:54
- Messages postés
- 587
- Date d'inscription
- samedi 7 juin 2008
- Statut
- Membre
- Dernière intervention
- 4 juin 2011
22 août 2010 à 20:54
Désolé, mais une requête SQL se termine toujours par un ; et une ligne de commande en php aussi alors 2 ;!
ah ? depuis quand ?
Tu as un ; en trop dans ta requête
$reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ;";
Doit être
$reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ";
$reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ;";
Doit être
$reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ";
Lors d'un enregistrement... d'une insertion tu veux dire? Pas sûr de comprendre... Ce qui suit pourrait-il d'aider?
INSERT INTO Commande (ldDevis) SELECT MAX(ldDevis) FROM Devis
Ceci est valide en Transact SQL. Je n'ai jamais testé si MySQL le prend... Il faut faire attention à la manière dont la table Commande est déclarée. Aux champs autonumber et aux colonnes qui n'acceptent pas les null et n'ont pas de valeur par défaut, notament (faut ajouter des colonnes dans le SELECT alors).
Caroline
INSERT INTO Commande (ldDevis) SELECT MAX(ldDevis) FROM Devis
Ceci est valide en Transact SQL. Je n'ai jamais testé si MySQL le prend... Il faut faire attention à la manière dont la table Commande est déclarée. Aux champs autonumber et aux colonnes qui n'acceptent pas les null et n'ont pas de valeur par défaut, notament (faut ajouter des colonnes dans le SELECT alors).
Caroline
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTu as un ; en trop dans ta requête $reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ;"; Doit être $reqNumDevis = "SELECT MAX(IdDevis) FROM DEVIS ";
Désolé, mais une requête SQL se termine toujours par un ; et une ligne de commande en php aussi alors 2 ;! Aussi pour ce qui est de la fonction Max() mySQL n'est pas aussi puissant que certain autre SGBD comme oracle par exemple. Il tolère les requête imbriquer à condition qu'elle ne sois pas récursive sur la même table. Sinon je te propose la fonction auto_increment(), elle se fait ors du create de la table. Si c'est une nécessité de le faire à la main fais 2 requêtes.
$requete = "SELECT MAX(IdDevis) FROM DEVIS ;"; $result = mysql_query($requete, $link/*connexion avec la BD*/) or die($query . " - " . mysql_error());//retourne une erreur et ferme la connexion en cas d'erreur $requete = "INSERT INTO COMMANDE (IdDevis) VALUE ( ' " . $result ." ');"; mysql_query($requete, $link/*connexion avec la BD*/) or die($query . " - " . mysql_error());
En me relisant je me suis rendu compte que je ne répondait pas tout à fait a ta question mais ça peu surment pas nuire! Bonne Chance!
15 févr. 2009 à 19:46
c'est la fonction qui prend ça en charge
à voir : https://www.php.net/mysql_query
15 sept. 2010 à 12:19
Marche aussi bien...