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