Tu 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!