Le fonctionnement de auto_increment ?
Résolu
smailtun
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
bonsoir,
je travaille avec wampserver(phpmyadmin).
ma table trajet content 3 champ :
ID_TRAJET QUI EST LA Clé primaire et auto_increment ,VIL_DEPART,VIL_DESTINA .
lorsque s'écrit à la ligne32
$sql="insert into trajet values(5,'".$lieudep."','".$lieudest."');"; l'insertion ça marche
mais si s'enlève 5 "le premier attribut " ça ne marche plus l'insertion
puisque ID_TRAJET est auto_increment ( l'auto ne marche pas :) ).
je pense que l'erreur a la ligne32 ,voici mon code :
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
{die( 'impossible de connecter: '.mysql_error());
}
mysql_select_db("test",$con);
$cin=$_POST['cin'];
$lieudep=$_POST['ld'];
$lieudest=$_POST['la'];
$heurdep=$_POST['hd'];
$heurarr=$_POST['ha'];
$dte=$_POST['dt'];
$prix=$_POST['px'];
$place=$_POST['pd'];
$nbrarr=$_POST['nbar'];
$decri=$_POST['desc'];
if($lieudep==null){ echo("<h1>lieu de depart manquant !h1>");include("Proposer.html");die('');}
if($lieudest==null){ echo("<h1>lieu de destination monquant ! </h1>");include("Proposer.html");die('');}
if($heurdep==null){ echo("<h1>heure depart manquant !</h1>");include("Proposer.html");die('');}
if($dte==null){ echo("<h1> il manque la date !</h1>");include("Proposer.html");die('');}
if($prix==null){ echo("<h1>indiquer le prix ! </h1>");include("Proposer.html");die('');}
if($place==null){ echo("<h1>indiquer le nombre de place !</h1>");include("Proposer.html");die('');}
$sql1="select count(*) as nbr from trajet where VIL_DEPART='".$lieudep."' and VIL_DESTINA='".$lieudest."' ;";
$re=mysql_query($sql1);
$tes= mysql_result($re,0);
if(($tes==0))
{
$sql="insert into trajet values('".$lieudep."','".$lieudest."');"; //cette ligne
echo("aaaaaaaaaaaaa3");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
$idtra=mysql_insert_id();
$sq3l="insert into proposer values('".$dte."','".$heurdep."','".$prix."','".$place."','".$cin."','".$idtra."','".$nbrarr."','".$decri."');";
if (!mysql_query($sq3l,$con))
{
die('Error: ' . mysql_error());
}
}
else
{
$sql1="select ID_TRAJET from trajet where VIL_DEPART='".$lieudep."' and VIL_DESTINA='".$lieudest."' ;";
$re=mysql_query($sql1);
$idtra=mysql_result($re,0);
$sq3l="insert into proposer values('".$dte."','".$heurdep."','".$prix."','".$place."','".$cin."','".$idtra."','".$nbrarr."','".$decri."');";
if (!mysql_query($sq3l,$con))
{
die('Error: ' . mysql_error());
}
}
mysql_close();
?>
et merci d'avance .
je travaille avec wampserver(phpmyadmin).
ma table trajet content 3 champ :
ID_TRAJET QUI EST LA Clé primaire et auto_increment ,VIL_DEPART,VIL_DESTINA .
lorsque s'écrit à la ligne32
$sql="insert into trajet values(5,'".$lieudep."','".$lieudest."');"; l'insertion ça marche
mais si s'enlève 5 "le premier attribut " ça ne marche plus l'insertion
puisque ID_TRAJET est auto_increment ( l'auto ne marche pas :) ).
je pense que l'erreur a la ligne32 ,voici mon code :
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
{die( 'impossible de connecter: '.mysql_error());
}
mysql_select_db("test",$con);
$cin=$_POST['cin'];
$lieudep=$_POST['ld'];
$lieudest=$_POST['la'];
$heurdep=$_POST['hd'];
$heurarr=$_POST['ha'];
$dte=$_POST['dt'];
$prix=$_POST['px'];
$place=$_POST['pd'];
$nbrarr=$_POST['nbar'];
$decri=$_POST['desc'];
if($lieudep==null){ echo("<h1>lieu de depart manquant !h1>");include("Proposer.html");die('');}
if($lieudest==null){ echo("<h1>lieu de destination monquant ! </h1>");include("Proposer.html");die('');}
if($heurdep==null){ echo("<h1>heure depart manquant !</h1>");include("Proposer.html");die('');}
if($dte==null){ echo("<h1> il manque la date !</h1>");include("Proposer.html");die('');}
if($prix==null){ echo("<h1>indiquer le prix ! </h1>");include("Proposer.html");die('');}
if($place==null){ echo("<h1>indiquer le nombre de place !</h1>");include("Proposer.html");die('');}
$sql1="select count(*) as nbr from trajet where VIL_DEPART='".$lieudep."' and VIL_DESTINA='".$lieudest."' ;";
$re=mysql_query($sql1);
$tes= mysql_result($re,0);
if(($tes==0))
{
$sql="insert into trajet values('".$lieudep."','".$lieudest."');"; //cette ligne
echo("aaaaaaaaaaaaa3");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
$idtra=mysql_insert_id();
$sq3l="insert into proposer values('".$dte."','".$heurdep."','".$prix."','".$place."','".$cin."','".$idtra."','".$nbrarr."','".$decri."');";
if (!mysql_query($sq3l,$con))
{
die('Error: ' . mysql_error());
}
}
else
{
$sql1="select ID_TRAJET from trajet where VIL_DEPART='".$lieudep."' and VIL_DESTINA='".$lieudest."' ;";
$re=mysql_query($sql1);
$idtra=mysql_result($re,0);
$sq3l="insert into proposer values('".$dte."','".$heurdep."','".$prix."','".$place."','".$cin."','".$idtra."','".$nbrarr."','".$decri."');";
if (!mysql_query($sq3l,$con))
{
die('Error: ' . mysql_error());
}
}
mysql_close();
?>
et merci d'avance .
A voir également:
- Le fonctionnement de auto_increment ?
- Fonctionnement processeur - Guide
- Fonctionnement du protocole http - Guide
- Notice de fonctionnement - Guide
- Fonctionnement onedrive - Guide
- Fonctionnement time machine - Guide
2 réponses
Bonjour
Bien sûr, ce n'est pas à toi de fournir la valeur de l'auto incrément !
Tu as deux façons d'écrire l'insert :
Soit tu écris les noms des champs que tu veux insérer, en ne mettant pas le champ auto incrément ni sa valeur
Soit tu ne mets pas les noms des champs mais alors il faut mettre des valeurs pour tous les champs. Pour ne pas forcer la valeur de l'auto incrément, il faut alors mettre NULL.
1ère méthode
2 ème méthode
Bien sûr, ce n'est pas à toi de fournir la valeur de l'auto incrément !
Tu as deux façons d'écrire l'insert :
Soit tu écris les noms des champs que tu veux insérer, en ne mettant pas le champ auto incrément ni sa valeur
Soit tu ne mets pas les noms des champs mais alors il faut mettre des valeurs pour tous les champs. Pour ne pas forcer la valeur de l'auto incrément, il faut alors mettre NULL.
1ère méthode
$sql="insert into trajet (lieudepart, lieudestination ) values ('".$lieudep."','".$lieudest."')"; // avec les noms des champs
2 ème méthode
$sql="insert into trajet values(NULL,'".$lieudep."','".$lieudest."')"; // sans les noms des champs