PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 23-07-2009 15:01:15

lyn87
Membre
Inscription : 22-07-2009
Messages : 2

requete sql??

j'ai un probléme avec la requete sql suivante
j'ai deux tables passager et compagnon :

`passager` (`id_client1` ,`civ` ,`nom` ,`prenom` ,`email` ,`tel`
`compagnon` (`id_comp` ,`id_client1` ,`civ_comp` ,`nom_comp` ,`prenom_comp` ,`an_de_naissance`)

j'ai le client sera inséré dans la table passager ;et le compagnon qui est soit adulte ou enfant
dans le cas ou c'est un adulte il sera inséré dans la table compagnon sans "an_de_naissance" et dans le cas ou c'est un enfant ou bébé il sera inséré dans la même table sans "civ_comp"
j'ai reussi à faire ce code mais j'ai un probléme lors de l'insertion d'un adulte dans la table compagnon sql m'affiche erreur"Incorrect integer value: '' for column 'an_de_naissance' at row 1"
voici mon code :

<?php
//************************************Client*****************************************

$i=0;
echo('<form  method="post" action="information voyageur.php">');

echo(' le nombre de voyageur est : '.$ta_variable_utilise.'<br/><br>');


echo'
<label><span class="Style3">Civilité : </span>
<select name="civ'
.$i.'" >
<option value="Mr">Mr</option>
<option value="Mme">Mme</option>
<option value="Mlle">Mlle</option>
</select>
</label>
<label><span class="Style3">Nom :</span><input type="text" name="nom'
.$i.'"  /></label>
<label><span class="Style3">Prénom :</span><input type="text" name="prenom'
.$i.'"/></label>

';
$adults=$adults-1;
echo('<hr>');

//*******************************************Compagnons***********************************

for($i=1;$i<($ta_variable_utilise);$i++)
{
if($adults!=0)
{
echo'
<label><span class="Style3">Civilité : </span>
<select name="civ'
.$i.'" >
<option value="Mr">Mr</option>
<option value="Mme">Mme</option>
<option value="Mlle">Mlle</option>
</select></label>
<label><span class="Style3">Nom :</span><input type="text" name="nom'
.$i.'" /></label>
<label><span class="Style3">Prénom :</span><input type="text" name="prenom'
.$i.'" /></label>
'
;
$adults=$adults-1;
echo('<hr>');
}


//**********************************les enfants***************************************
elseif ($enfants!=0)
{
echo'
<label><span class="Style3">Nom :</span><input type="text" name="nom'
.$i.'"   /></label>

<label><span class="Style3">Prénom :</span><input type="text" name="prenom'.$i.'"/></label>
<label><span class="Style3">Né en:</span>
<select name="an'
.$i.'" >
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
<option value="2002">2002</option>
<option value="2001">2001</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
</select></label><br><br>
'
;
$enfants=$enfants-1;

}
//**************************************les bebes************************************
 else
 {
 
 echo'
<label><span class="Style3">Nom :</span><input type="text" name="nom'
.$i.'"   /></label>
<label><span class="Style3">Prénom :</span><input type="text" name="prenom'
.$i.'" /></label>

<label><span class="Style3">Né en:</span>
<select name="an'.$i.'" >
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
</select> </label></br></br>'
;
 
 }
}
//*****************************email et numero de telephone du client******************************************
$i=0;
echo'<label><span class="Style3">Email :</span><input type="text" name="email'.$i.'"  /></label>
<label><span class="Style3">N° de téléphone :</span><input type="text" name="tel'
.$i.'"  /></label><br><br>';
//***************************************************************************************************************

echo'<input name="reserver" type="submit" value="Réserver"></br>';
 echo'<input type="hidden" name="compteur_boucle" value="'.$ta_variable_utilise.'" />';
  echo'<input type="hidden" name="adults" value="'.$adults.'" />';
}


//***************************************************************************************************************

//ensuite on lance la boucle pour taiter les infos
if (isset($_POST['reserver']))
{
connectAdministrateur();

 
$ta_variable_utilise=$_POST['compteur_boucle'];
$adults=$_POST['adults'];

$i=0;
$civ = isset($_POST['civ'.$i])?$_POST['civ'.$i] : null;
$nom = isset($_POST['nom'.$i])?$_POST['nom'.$i] : null;
$prenom = isset($_POST['prenom'.$i])?$_POST['prenom'.$i] : null;
$email = isset($_POST['email'.$i])?$_POST['email'.$i] : null;
$tel =   isset($_POST['tel'.$i])?$_POST['tel'.$i] :null;


$sql='INSERT INTO passager (`id_client1` ,`civ` ,`nom` ,`prenom` ,`email` ,`tel`)
VALUES ("0","'
.$civ.'","'.$nom.' ","'.$prenom.'","'.$email.'","'.$tel.'")';

//maintenant je les inseres
mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

//****************************************************************************************************************
// les compagnons

$id_client1 = mysql_insert_id();
for($i=1;$i<$ta_variable_utilise;$i++)
{

$civ = isset($_POST['civ'.$i])?$_POST['civ'.$i] : null;
$nom = isset($_POST['nom'.$i])?$_POST['nom'.$i] : null;
$prenom = isset($_POST['prenom'.$i])?$_POST['prenom'.$i] : null;
$an_de_naissance= isset($_POST['an'.$i])?$_POST['an'.$i]:null;
$requete='INSERT INTO compagnon VALUES ("0","'.$id_client1.'","'.$civ.'","'.$nom.'" ,"'.$prenom.'","'.$an_de_naissance.'" ) ';

//maintenant je les inseres
mysql_query($requete) or die ('Erreur SQL !'.$requete.'<br />'.mysql_error());

}

}


?>

Hors ligne

#2 24-07-2009 17:48:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : requete sql??

Saluton,
Outre les réserves que j'émets quant à la congruité de la modélisation, dans une requête INSERT, les valeurs numériques n'ont pas à être encapsulées entre quotes ou guillemets.
Ceci dit une longue tartine de code (même pas colorisée, merci MK) pour une erreur qui concerne la génération d'une requête SQL....
Par ailleurs tu ne sembles pas maîtriser (non plus) la syntaxe HTML pour les données tabulaires : name(ou mieux id)="prenom[]" fonctionne tout à fait très bien et permet de travailler avec foreach ce qui est plus propre que ces horribles boucles for.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums