[PHP+JS] Problème pour la création de nouvelle ligne dans la BDD [Résolu]

Signaler
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Bonjour,
Voila mon code:
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$V_Last_PrimKey = isset($_POST['V_Last_Prim_Key'])?$_POST['V_Last_Prim_Key']:'';  // !
	
	$sql = 'INSERT INTO caetbl_timetracking ('ID', 'SimRequest', 'Description', 'date', 'time spent', 'Worker') VALUES ("",NULL,NULL,".$idJour.",NULL,".$idWorker.")';
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	
	$sql2 = "SELECT max(caetbl_timetracking.ID) as maxID
            FROM caetbl_timetracking" ;
	$resultat = mysql_query($sql2)or die("Requete pas comprise");
	
	//pour manipuler le resultat d'une requête il faut le convertir en Array par exemple :
	$row = mysql_fetch_array($resultat);
	
	// Lecture de la colonne maxID de la première ligne ( ligne 0) 
	echo $row[0];
	?>	

Avec ceci j'arrive bien a crée une nouvelle ligne mais l'ID et faut car il et égal a 0
,et les cellules date/Worker ne prenne pas les valeurs de mes variables idJour et idWorker.
Merci

4 réponses

Messages postés
28861
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
332
Tu peux nous donner la structure de ta table ?
Tu as bien mis en Auto-increment ton ID ??
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

J'ai 6 colonne :
1- ID type int
2-SimRequest type varchar
3-Description type mediumtext
4-date type datetime
5-time spent type int
6-Worker type int

Je vient de vérifier l'auto-incrémentation n'était pas active mais lorsque je veut sauvegarder aprés l'avoir cocher il me met le message d'erreur suivant :
Erreur de requête:
#1067 - Invalid default value for 'ID'

et je ne sais pas se que je doit mettre comme default value for 'ID'
Messages postés
28861
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
332
La structure d'une table s'obtient par exemple via la commande:
 SHOW CREATE TABLE matable 





Pour ce qui est de ta question....Si tu es en auto..tu n'as pas de DEFAULT à mettre....



Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

Et voila ma structure de table après la commande
"SHOW CREATE TABLE":
caetbl_timetracking  CREATE TABLE 'caetbl_timetracking' (
 'ID' int(11) unsigned NOT NULL AUTO_INCREMENT,
 'SimRequest' varchar(10) DEFAULT NULL,
 'Description' mediumtext,
 'date' datetime DEFAULT NULL,
 'time spent' int(11) DEFAULT NULL,
 'Worker' int(11) DEFAULT NULL,
 PRIMARY KEY ('ID'),
 UNIQUE KEY 'ID' ('ID'),
 KEY 'ID_2' ('ID')
) ENGINE=InnoDB AUTO_INCREMENT=9034 DEFAULT CHARSET=latin1


Edit : Ajout des balises de code
Messages postés
28861
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
332
Le problème de l'id est résolue
Donc c'est bon ? .. question résolue ?
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

OUI, j'ai juste encore un problème pour le valeur des champs :
request , description,time spent.
car avec
var VI_Description = $(ID_TA_Description).attr("value");

ou avec document.getelementid sa ne marche pas alors que si je mais directement:
var VI_Description = 'azerty';

je retrouve l'info dans ma BDD.
Messages postés
28861
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
332
C'est une nouvelle question ( donc normalement = nouvelle discussion)..qui plus est n'est pas du PHP mais du javascript (Jquery)...
.
Mais bon.. regardes ça : http://api.jquery.com/val/
var VI_Description = $(ID_TA_Description).val();
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

Merci, je n'est pas penser a tester .val()
Bonne journée
Messages postés
28861
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
332
Re,

Déjà.. je pense que ceci est faux :

$sql = 'INSERT INTO caetbl_timetracking ('ID', 'SimRequest', 'Description', 'date', 'time spent', 'Worker') VALUES ("",NULL,NULL,".$idJour.",NULL,".$idWorker.")'


1 - Tu utilises des QUOTES SIMPLES pour encadrer ta chaine de caractères ET le nom de tes champs...
=> TU NE DOIS PAS METTRE DE QUOTES AUTOUR DU NOM DE TES CHAMPS...

Ton champ ID est AUTO-INCREMENTE ... PAS BESOIN de le mettre dans ta requête d'insert... c'est ta BDD qui va le gérer !!!


$sql = "INSERT INTO caetbl_timetracking 
    (
     SimRequest
    , Description
    , date
    , time spent
    ,Worker
     ) 
   VALUES (
     NULL
    ,NULL
    ,'$idJour'
    ,NULL
    ,'$idWorker'
   )";


NB : Tu as vu comment je présente les requêtes ? avec des retours à la ligne.. c'est plus propre..plus beau..et plus facile à lire.


Ensuite...
mais l'ID eSt fauX car il et égal a 0

De quel ID parles tu ?
Celui de ton INSERT ( pour lequel je viens de te dire de ne pas le mettre dans la requête ou ton $idjour ? )




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

Merci pour ta réponse, et en effect je parlait bien de cette id,je n'avait pas bien comprit l'auto-incrémentation.
je vais tester avec tes rectification .
Merci
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015

Bonjour,
J'ai tester avec les rectification:
sa ne marche pas il me met erreur dans mon input.
Mais en supprimant ID dans la ligne de code d'hier sa me crée bien une nouvelle ligne avec la valeur de mes variable mes l'id et égale a zero.
 $sql = "INSERT INTO caetbl_timetracking ('SimRequest', 'Description', 'date', 'time spent', 'Worker') VALUES ('NULL','NULL','$idJour','NULL','$idWorker')";
 //Erreur $sql = "INSERT INTO caetbl_timetracking(SimRequest, Description, date, time spent,Worker) VALUES (NULL,NULL,'$idJour',NULL,'$idWorker')";
 //Erreur $sql = "INSERT INTO caetbl_timetracking ('SimRequest', 'Description', 'date', 'time spent', 'Worker') VALUES (NULL,NULL,'$idJour',NULL,'$idWorker')";


Merci et que le café soit avec vous.