Se connecter / S'enregistrer

Résolu MySQL LAST_INSERT_ID()

Solutions (3)
Tags :
  • Php
  • string
  • MySQL
  • Programmation
|
J'ai écrit le script suivant qui malheureusement ne fonctionne pas. J'ai passé plus de 20h à trouver un moyen mais sans succès. Pouvez vous m'aider.

  1. <?php require_once('../Connections/itproject.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6. $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  7.  
  8. $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  9.  
  10. switch ($theType) {
  11. case "text":
  12. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  13. break;
  14. case "long":
  15. case "int":
  16. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  17. break;
  18. case "double":
  19. $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
  20. break;
  21. case "date":
  22. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  23. break;
  24. case "defined":
  25. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  26. break;
  27. }
  28. return $theValue;
  29. }
  30. }
  31.  
  32. mysql_select_db($database_itproject, $itproject);
  33.  
  34. $query_rscorection = ("SELECT * FROM reponse WHERE ID = LAST_INSERT_ID()");
  35.  
  36. $rscorection = mysql_query($query_rscorection, $itproject) or die(mysql_error());
  37. $row_rscorection = mysql_fetch_assoc($rscorection);
  38. $totalRows_rscorection = mysql_num_rows($rscorection);
  39. $new_id = mysql_insert_id()
  40.  
  41. ?>
  42.  
  43. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  44. "http://www.w3.org/TR/html4/loose.dtd">
  45. <html>
  46. <head>
  47. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  48. <title>It-Project QCM Juin 2007 1er partie</title>
  49. <style type="text/css">
  50. <!--
  51. body {
  52. background-color: #D8D8D8;
  53. }
  54. .Style1 {
  55. font-family: Castellar
  56. }
  57. -->
  58. </style>
  59. <link href="../style_QCM_PHP.css" rel="stylesheet" type="text/css">
  60. <style type="text/css">
  61. <!--
  62. .Style7 {color: #FFFFFF}
  63. -->
  64. </style>
  65. </head>
  66. <?php
  67.  
  68. $Last_ID = $row_rscorection['ID'];
  69. $Commentaire = $row_rscorection['Commentaire'];
  70.  
  71. $Q11a = $row_rscorection['Q11a'];
  72. $Q11b = $row_rscorection['Q11b'];
  73. $Q11c = $row_rscorection['Q11c'];
  74. $Q11d = $row_rscorection['Q11d'];
  75. $Q11e = $row_rscorection['Q11e'];
  76. $Q11f = $row_rscorection['Q11f'];
  77.  
  78. $Q12a = $row_rscorection['Q12a'];
  79. $Q12b = $row_rscorection['Q12b'];
  80. $Q12c = $row_rscorection['Q12c'];
  81. $Q12d = $row_rscorection['Q12d'];
  82. $Q12e = $row_rscorection['Q12e'];
  83.  
  84. ?>
  85. <body>
  86.  
  87. Pour la variable New_ID : <?php echo $new_id ?> <br>
  88. Pour la variable Last_ID : <?php echo $Last_ID ?> <br>
  89. Pour la variable Commentaire : <?php echo $Commentaire ?> <br>
  90.  
  91. <table width="98%" border="1">
  92.  
  93.  
  94.  
  95. <td><label>
  96. <?php if($Q11a==1) echo '<input name="Q11a" type="checkbox" id="Q11a" checked>'; else echo '<input name="Q11a" type="checkbox" id="Q11a" >'; ?>
  97. Q11a</label><br>
  98. <label>
  99. <?php if($Q11b==1) echo '<input name="Q11b" type="checkbox" id="Q11b" checked>'; else echo '<input name="Q11b" type="checkbox" id="Q11b" >'; ?>
  100. Q11b</label><br>
  101. <label>
  102. <?php if($Q11c==1) echo '<input name="Q11c" type="checkbox" id="Q11c" checked>'; else echo '<input name="Q11c" type="checkbox" id="Q11c" >'; ?>
  103. Q11c</label><br>
  104. <label>
  105. <?php if($Q11d==1) echo '<input name="Q11d" type="checkbox" id="Q11d" checked>'; else echo '<input name="Q11d" type="checkbox" id="Q11d" >'; ?>
  106. Q11b</label><br>
  107. <label>
  108. <?php if($Q11e==1) echo '<input name="Q11e" type="checkbox" id="Q11e" checked>'; else echo '<input name="Q11e" type="checkbox" id="Q11e" >'; ?>
  109. Q11e</label><br>
  110. <label>
  111. <?php if($Q11f==1) echo '<input name="Q11f" type="checkbox" id="Q11f" checked>'; else echo '<input name="Q11f" type="checkbox" id="Q11f" >'; ?>
  112. Q11f</label></td>
  113. </tr>
  114. <tr>
  115. <td><label>
  116. <?php if($Q12a==1) echo '<input name="Q12a" type="checkbox" id="Q12a" checked>'; else echo '<input name="Q12a" type="checkbox" id="Q12a" >'; ?>
  117. Q12a</label><br>
  118. <label>
  119. <?php if($Q12b==1) echo '<input name="Q12b" type="checkbox" id="Q12b" checked>'; else echo '<input name="Q12b" type="checkbox" id="Q12b" >'; ?>
  120. Q12b</label><br>
  121. <label>
  122. <?php if($Q12c==1) echo '<input name="Q12c" type="checkbox" id="Q12c" checked>'; else echo '<input name="Q12c" type="checkbox" id="Q12c" >'; ?>
  123. Q12c</label><br>
  124. <label>
  125. <?php if($Q12d==1) echo '<input name="Q12d" type="checkbox" id="Q12d" checked>'; else echo '<input name="Q12d" type="checkbox" id="Q12d" >'; ?>
  126. Q12d</label><br>
  127. <label>
  128. <?php if($Q12e==1) echo '<input name="Q12e" type="checkbox" id="Q12e" checked>'; else echo '<input name="Q12e" type="checkbox" id="Q12e" >'; ?>
  129. Q12e</label></td>
  130. </tr>
  131.  
  132.  
  133. </table>
  134. </body>
  135. </html>
  136. <?php
  137. mysql_free_result($rscorection);
  138. ?>
Contenus similaires
Meilleure solution
partage
|
C'est normal:
  1. $query_rscorection = ("SELECT * FROM reponse WHERE ID = LAST_INSERT_ID()" );
  2.  
  3. $rscorection = mysql_query($query_rscorection, $itproject) or die(mysql_error());
  4. $row_rscorection = mysql_fetch_assoc($rscorection);
  5. $totalRows_rscorection = mysql_num_rows($rscorection);
  6. $new_id = mysql_insert_id()

Ta requète fait un select, pas un insert. Donc forcément, mysql_insert_id() est null.

Et dans ta requète, LAST_INSERT_ID() est null aussi vu qu'il n'y a pas d'insert avant.

La bonne requète serait donc:
  1. $query_rscorection = ("SELECT * FROM reponse ORDER BY ID DESC LIMIT 1 OFFSET 0" );
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par ThierrySedbon.
  • Commenter cette réponse |
Score
0
òh
òi
|
crazycat, j'ai passé beaucoup d'heures sur ce problème et grâce à ton aide je crois que je vais en gagner beaucoup. En fait mon script est beaucoup plus compliqué que cela mais l'instruction que tu m’as donné va me permettre j'espère d'avancer. Je me permettrais de te réquisitionner si je n’y arrive pas.

En tous les cas merci beaucoup c'est sur super super super sympa.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS