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

Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
- - Dernière réponse : EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
- 29 avril 2014 à 11:03
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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
26809
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2019
317
1
Merci
Tu peux nous donner la structure de ta table ?
Tu as bien mis en Auto-increment ton ID ??

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 223 internautes nous ont dit merci ce mois-ci

EnguerrandP
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'
Commenter la réponse de jordane45
Messages postés
26809
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2019
317
1
Merci
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....



Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 223 internautes nous ont dit merci ce mois-ci

EnguerrandP
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
jordane45
Messages postés
26809
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2019
317 -
Le problème de l'id est résolue
Donc c'est bon ? .. question résolue ?
EnguerrandP
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.
jordane45
Messages postés
26809
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2019
317 -
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();
EnguerrandP
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
Commenter la réponse de jordane45
Messages postés
26809
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2019
317
0
Merci
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
EnguerrandP
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
Commenter la réponse de jordane45
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
0
Merci
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.
Commenter la réponse de EnguerrandP