Pb formulaire php pour inserer dans ma bdd
guispider
Messages postés
55
Statut
Membre
-
tite_tête13 Messages postés 145 Statut Membre -
tite_tête13 Messages postés 145 Statut Membre -
Bonjour,
Voila la situation :), je créer un formulaire php pour inserer dans ma BDD access mais je bug, surment a cause de l'insertion de deux champs qui sont des dates : CLOTURE et DELAI !
voila mon script !
<?php
//--------------- Connexion à la base ---------------//
require('Connexion.php');
//--------------- Définition des variable de la table ---------------//
$INTITULE = $_POST['INTITULE'];
$DELAI = $_POST['DELAI'];
$PILOTE = $_POST['PILOTE'];
$CLOTURE = $_POST['CLOTURE'];
$COMPLEMENT_CLOTURE = $_POST['COMPLEMENT_CLOTURE'];
//--------------- Calcul et incrémente le numéro ---------------//
$sql = "SELECT COUNT(*) FROM PLAN_ACTION ";
$sql_result = odbc_prepare($conn,$sql) or die("ERROR");
odbc_execute($sql_result) or die("ERROR");
$rc = odbc_fetch_into($sql_result, $my_array_plan);
/*echo ("Total rows: " . $my_array[0]);*/
odbc_free_result($sql_result);
//--------------- Définition de la variable NUM ---------------//
$NUM = $my_array_plan[0]+1 ;
//--------------- Requete éxecuté dans la table ---------------//
$sql1 = " INSERT INTO PLAN_ACTION (NUMERO_PLAN_ACTION, INTITULE, DELAI, PILOTE, CLOTURE, COMPLEMENT_CLOTURE)
VALUES ($NUM, '$INTITULE', #$DELAI#, '$PILOTE', #$CLOTURE#, '$COMPLEMENT_CLOTURE')";
$req = odbc_exec($conn,$sql1) or die('Erreur SQL : <br />'.$sql1);
?>
Voila la situation :), je créer un formulaire php pour inserer dans ma BDD access mais je bug, surment a cause de l'insertion de deux champs qui sont des dates : CLOTURE et DELAI !
voila mon script !
<?php
//--------------- Connexion à la base ---------------//
require('Connexion.php');
//--------------- Définition des variable de la table ---------------//
$INTITULE = $_POST['INTITULE'];
$DELAI = $_POST['DELAI'];
$PILOTE = $_POST['PILOTE'];
$CLOTURE = $_POST['CLOTURE'];
$COMPLEMENT_CLOTURE = $_POST['COMPLEMENT_CLOTURE'];
//--------------- Calcul et incrémente le numéro ---------------//
$sql = "SELECT COUNT(*) FROM PLAN_ACTION ";
$sql_result = odbc_prepare($conn,$sql) or die("ERROR");
odbc_execute($sql_result) or die("ERROR");
$rc = odbc_fetch_into($sql_result, $my_array_plan);
/*echo ("Total rows: " . $my_array[0]);*/
odbc_free_result($sql_result);
//--------------- Définition de la variable NUM ---------------//
$NUM = $my_array_plan[0]+1 ;
//--------------- Requete éxecuté dans la table ---------------//
$sql1 = " INSERT INTO PLAN_ACTION (NUMERO_PLAN_ACTION, INTITULE, DELAI, PILOTE, CLOTURE, COMPLEMENT_CLOTURE)
VALUES ($NUM, '$INTITULE', #$DELAI#, '$PILOTE', #$CLOTURE#, '$COMPLEMENT_CLOTURE')";
$req = odbc_exec($conn,$sql1) or die('Erreur SQL : <br />'.$sql1);
?>
A voir également:
- Pb formulaire php pour inserer dans ma bdd
- Whatsapp formulaire opposition - Guide
- Insérer vidéo dans powerpoint - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
4 réponses
Le problème était l'insertion d'un champ date dans une bdd acces via un pormulaire php, c'est résolu.
Maintenant j'ai un autre pb avec un formulaire de mise a jour
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '$INTITULE',
DELAI = '$DELAI',
PILOTE= '$PILOTE',
WHERE NUMERO_PLAN_ACTION = $num";
Sa coince ici on me di que j'ai fai une erreur de synthaxe dans la requete mais laquel ?
Maintenant j'ai un autre pb avec un formulaire de mise a jour
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '$INTITULE',
DELAI = '$DELAI',
PILOTE= '$PILOTE',
WHERE NUMERO_PLAN_ACTION = $num";
Sa coince ici on me di que j'ai fai une erreur de synthaxe dans la requete mais laquel ?
Je ne sais pas, je ne connais pas trop acces, mais à tout hasard essaies ça:
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '. $INTITULE .',
DELAI = '. $DELAI .',
PILOTE= '. $PILOTE .',
WHERE NUMERO_PLAN_ACTION = '. $num .'";
bonne chance
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '. $INTITULE .',
DELAI = '. $DELAI .',
PILOTE= '. $PILOTE .',
WHERE NUMERO_PLAN_ACTION = '. $num .'";
bonne chance
Bonjour
tite_tête13 -> Sans vouloir être méchant... c'est vraiment n'importe quoi. Indépendamment des connaissances en access
guispider -> n'aurais-tu pas d'apostrophe dans une de tes valeurs ? peux tu nous recopier le message d'erreur complet ?
tite_tête13 -> Sans vouloir être méchant... c'est vraiment n'importe quoi. Indépendamment des connaissances en access
guispider -> n'aurais-tu pas d'apostrophe dans une de tes valeurs ? peux tu nous recopier le message d'erreur complet ?
Ça n'était sûrement pas la même chose. Le point est utilisé en PHP pour concaténer des chaînes.
Que ces chaînes constituent une requête mysql ou access, ou servent à tout autre chose qu'une requête ne change rien à l'utilisation du point.
Mais de plus, ici, tu les a laissés à l'intérieur de la chaine délimitée par les doubles quotes. Il n'y a qu'une seule chaîne et ils en font partie, au même titre que les mots UPDATE ET INTITULE etc... Pour qu'ils servent d'opérateur de concaténation, il faut qu'ils soient entre deux chaines.
supposons que $INTITULE vaille "titre", $DELAI "3 jours", $PILOTE "chauffeur" et $num 99:
est équivalent à :
alors que guispider voulait:
Il reste à attendre que guispider donne son message d'erreur exact pour voir quel est le problème
Que ces chaînes constituent une requête mysql ou access, ou servent à tout autre chose qu'une requête ne change rien à l'utilisation du point.
Mais de plus, ici, tu les a laissés à l'intérieur de la chaine délimitée par les doubles quotes. Il n'y a qu'une seule chaîne et ils en font partie, au même titre que les mots UPDATE ET INTITULE etc... Pour qu'ils servent d'opérateur de concaténation, il faut qu'ils soient entre deux chaines.
supposons que $INTITULE vaille "titre", $DELAI "3 jours", $PILOTE "chauffeur" et $num 99:
" UPDATE PLAN_ACTION SET INTITULE = '. $INTITULE .', DELAI = '. $DELAI .', PILOTE= '. $PILOTE .', WHERE NUMERO_PLAN_ACTION = '. $num .'";
est équivalent à :
" UPDATE PLAN_ACTION SET INTITULE = '. titre .', DELAI = '. 3 jours .', PILOTE= '. chauffeur .', WHERE NUMERO_PLAN_ACTION = '. 99 .'";
alors que guispider voulait:
" UPDATE PLAN_ACTION SET INTITULE = 'titre', DELAI = '3 jours', PILOTE= 'chauffeur', WHERE NUMERO_PLAN_ACTION = 99"
Il reste à attendre que guispider donne son message d'erreur exact pour voir quel est le problème
Exact ma proposition n'est pas bonne, c'est pas :
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '. $INTITULE .',
DELAI = '. $DELAI .',
PILOTE= '. $PILOTE .',
WHERE NUMERO_PLAN_ACTION = '. $num .'";
mais plutôt :
$sql = " UPDATE PLAN_ACTION
SET INTITULE = ' ". $INTITULE ." ',
DELAI = ' ". $DELAI ." ',
PILOTE= ' ". $PILOTE ." ',
WHERE NUMERO_PLAN_ACTION = ' ". $num ." '";
et là ne me dis pas que c'est n'importe quoi parce que je l'ai testé et quand je fais une echo $sql ça donne :
" UPDATE PLAN_ACTION SET INTITULE = 'titre', DELAI = '3 jours', PILOTE= 'chauffeur', WHERE NUMERO_PLAN_ACTION = 99"
$sql = " UPDATE PLAN_ACTION
SET INTITULE = '. $INTITULE .',
DELAI = '. $DELAI .',
PILOTE= '. $PILOTE .',
WHERE NUMERO_PLAN_ACTION = '. $num .'";
mais plutôt :
$sql = " UPDATE PLAN_ACTION
SET INTITULE = ' ". $INTITULE ." ',
DELAI = ' ". $DELAI ." ',
PILOTE= ' ". $PILOTE ." ',
WHERE NUMERO_PLAN_ACTION = ' ". $num ." '";
et là ne me dis pas que c'est n'importe quoi parce que je l'ai testé et quand je fais une echo $sql ça donne :
" UPDATE PLAN_ACTION SET INTITULE = 'titre', DELAI = '3 jours', PILOTE= 'chauffeur', WHERE NUMERO_PLAN_ACTION = 99"