Bonjour,
Je lis le tuto "Le tutoriel pour grands débutants pressés" à ce chapitre : PHP Étape VI. Mail malgré le fait que le champ ID de ma table abonnement est en AUTOINCREMENT ( Structure Table_abonnement ), je n'arrive pas à y insérer les données automatiquement .Ça ne marche que si j'introduis manuellement les valeurs numériques dans la requête INSERT. Ce qui n'est guère pratique même pour un grand débutant 
! Le message d'erreur que je reçois est tel que : 
	
	1 2
   |  Probleme de requête INSERT dans abonnement
Incorrect integer value: '' for column 'id' at row 1  | 
 Le problème vient donc de cette ligne : 
	
	$insert_rqst = 'INSERT INTO abonnement VALUES("", "'.$civilite.'", '.$nom.'","'	 .$prenom.'", "'.$age.'", "'.$adresse.'", "'.$ville.'", "'.$code.'", "'.$tel.'",  "'.$abo.'")';
 Voici le code intégral inspiré du tuto en question. 
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
   |  
 <?php 
include_once("fonctions.php");
if(isset($_POST['valider']))
{
	// Connection à la base de données
	do_connexion_for_root();
	// Récupération des valeurs entrées par l'utilisateur: '
	$civilite = mysql_real_escape_string(htmlspecialchars($_POST['civility']));
	$nom = mysql_real_escape_string(htmlspecialchars($_POST['name']));
	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['firstname']));
	$age = mysql_real_escape_string(htmlspecialchars($_POST['age']));
	$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adres']));
	$ville = mysql_real_escape_string(htmlspecialchars($_POST['city']));
	$code = mysql_real_escape_string(htmlspecialchars($_POST['postalcode']));
	$tel = mysql_real_escape_string(htmlspecialchars($_POST['phonenumber']));
	$abo = mysql_real_escape_string(htmlspecialchars($_POST['abonnements']));
	// Gestion d'un nom de femme :
	$dame = '';
	if(($civilite=='Mme')||($civilite=='Mlle')){ $dame='e'; }
	// Gestion du nom complet du magazine
	$magazine = '';
    if ($abo == 'main'){ $magazine='J\'ai la main verte.'; }
    elseif ($abo == 'pied'){ $magazine='J\'ai le pied marin.'; }
    elseif ($abo == 'oeil'){ $magazine='J\'ai l\'oeil vif.'; }
    else{ $magazine = 'J\'ai la rate qui se dilate.'; }
 
	echo 'Vous ÊTES : ' . $civilite . ' <br />' . $nom . ' '.  $prenom .
	',agé '.$dame. ' de ' .$age . ' ans <br /><br />' 
	. '<strong>Votre adresse</strong> : ' .$adresse . '  '.$ville. ' '. $code .
	'<strong><br />Votre téléphone : </strong>'.$tel.'<br/>VOUS AVEZ						  		CHOISI DE VOUS ABONNER À :'.'<h3>'. $magazine .'</h3>'. '<br />
		Merci de vous être abonné '.$dame. 'à  ce magazine ! <hr />';
	do_connexion_for_root();
	// Préparation de la commande sql d'insertion
	$insert_rqst = 'INSERT INTO abonnement VALUES("", "'.$civilite.'", '.$nom.'","'	 .$prenom.'", "'.$age.'", "'.$adresse.'", "'.$ville.'", "'.$code.'", "'.$tel.'",  "'.$abo.'")';             
 
	// Insertion proprement dite :
	mysql_query($insert_rqst)or die('Probleme de requête INSERT dans abonnement <br />'
									. mysql_error());
	// Selection/Affichage des données entrées : 
	$slct_rqst01 = mysql_query("SELECT * FROM abonnement ORDER BY id DESC")or die(							'Probleme de requête SELECT dans abonnement <br />'. mysql_error());
    // Selection/Affichage des données entrées : 
	while($value_slct_rqst = mysql_fetch_array($slct_rqst01))
    {
		echo $value_slct_rqst['civility']. ': ' . $value_slct_rqst['name']. 																	$value_slct_rqst['firstname'];
	}
    // fermeture de la connection
	mysql_close();
}
else
{
?>
 
<html >
<head>
    ...
</head> 
 
<body>
   <h2>...
   <form name="abonnement" action="abonnement.php" method="post">
	<label for="civility">Civilité</label><br />
	<input type="radio" id="civility" name="civility" value="Mr" />Monsieur<br />
	<input type="radio" id="civility" name="civility" value="Mme" />Madame<br />
	<input type="radio" id="civility" name="civility" value="Mlle" />Madmoiselle
	<br /><br />
    <label for="name">Nom</label>
    <input type="text" id="name" name="name" />
    <label for="firstname">Prénom</label>
    <input type="text" id="firstname" name="firstname" />
    <label for="age">Âge</label>
    <input type="text" id="age" name="age" />
    <fieldset>
		<legend></legend>
		<label for="adres">Adresse : </label>
   		<input type="text" id="adres" name="adres"  size="100" maxlength="100" />
	    <label for="postalcode">Code Postal : </label>
   		<input type="text" id="postalcode" name="postalcode"  size="6" maxlength="6" />
   		<label for="city">Ville : </label>
   		<input type="text" id="city" name="city"  size="20" maxlength="20" /><br /><br />
   		<label for="phonenumber">Téléphone:</label>
		<input type="text" id="phonenumber" name="phonenumber" size="10" maxlength="10" />
		<br />
	</fieldset>
	<label for="abonnements">Abonnement</label><br />
	<input type="radio" id="abonnements" name="abonnements" value="main" />J’ai la main verte.<br />
	<input type="radio" id="abonnements" name="abonnements" value="pied" />J’ai le pied marin.<br />
	<input type="radio" id="abonnements" name="abonnements" value="oeil" />J’ai l'oeil vif.<br />
	<input type="radio" id="abonnements" name="abonnements" value="rate" />
			J’ai la rate qui se dilate.<br />
	<br />
	<input name="valider" type="submit" value="OK"><br />
   </form>
   <?php
   }
   ?>
</body>
 
</html> | 
 Je suis souvent confronté à ce problème. Est-ce dû à un problème de configuration de PHPMYADMIN ou MySQL?   Je n'y crois pas personnellement mais vu que j'ai aucune explication ! Merci d'avance  pour votre avis et votre coup de main pour m'éclairer sur cette question.
						
					
Partager