Probleme php sql (insert)
Résolu
Profil bloqué
-
mouf13 Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
mouf13 Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
J'ai un script, qui me pose problème.
Le principe de mon script est le suivant. J'ai un formulaire. Lorsque l'utilisateur appuis sur "envoyer", une requête SQL s'exécute.
if(($_POST["BT_Envoyer"]))
{
mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
") or die('Erreur de connexion '.mysql_error()) ;
}
Avec le if, ma requete ne fonctionne pas bien, une valeur sur les 5 ne fonctionne pas. C'est le get id, il m'insert la valeur 0 dans mon champs.
Sans le If, tout fonctionne bien. Je ne comprend pas pourquoi.
J'ai un script, qui me pose problème.
Le principe de mon script est le suivant. J'ai un formulaire. Lorsque l'utilisateur appuis sur "envoyer", une requête SQL s'exécute.
if(($_POST["BT_Envoyer"]))
{
mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
") or die('Erreur de connexion '.mysql_error()) ;
}
Avec le if, ma requete ne fonctionne pas bien, une valeur sur les 5 ne fonctionne pas. C'est le get id, il m'insert la valeur 0 dans mon champs.
Sans le If, tout fonctionne bien. Je ne comprend pas pourquoi.
A voir également:
- Probleme php sql (insert)
- Touche insert - Guide
- Easy php - Télécharger - Divers Web & Internet
- Disk boot failure insert system disk and press enter - Guide
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
11 réponses
salut
if(($_POST["BT_Envoyer"])) ici ta double parenthèse est inutile et dans un soucis de proprete je te conseil
if(isset($_POST['BT_Envoyer']))
Pour ton pb, a priori tu passes les infos en $_POST
il semblerai donc que $_POST['id'] fonctionne mieux que $_GET['id']
if(($_POST["BT_Envoyer"])) ici ta double parenthèse est inutile et dans un soucis de proprete je te conseil
if(isset($_POST['BT_Envoyer']))
Pour ton pb, a priori tu passes les infos en $_POST
il semblerai donc que $_POST['id'] fonctionne mieux que $_GET['id']
Pour le double parenthèse ok, c'est plus propre sans.
Mais mon problème n'est pas la :).
Si je passe mon GET_ID en POST, je dois le faire par l'intermédiaire d'un formulaire. Ça marcherais problablement mais je dois récupère ma valeur depuis le barre d'adresse et je ne peux pas faire autrement.
Puis c'est quand même étrange que mon IF bloque uniquement la valeur qui passe en GET.
Bref, je suis tjr dans le brouillard :).
Mais mon problème n'est pas la :).
Si je passe mon GET_ID en POST, je dois le faire par l'intermédiaire d'un formulaire. Ça marcherais problablement mais je dois récupère ma valeur depuis le barre d'adresse et je ne peux pas faire autrement.
Puis c'est quand même étrange que mon IF bloque uniquement la valeur qui passe en GET.
Bref, je suis tjr dans le brouillard :).
j'ai du mal a comprendre comment tu récuperes dans ce cas :
'" . $_POST["TB_CONTENT_COMM"] . "'
t'as fait les debug primaires avec print_r($_POST) si tu recupere les infos via un form en post ou print_r($_GET) si tu recupères les infos via l'url ou via un formulaire utilisant get.
tu peux aussi faire un print_r($_REQUEST) qui combine les $_GET et $_POST
'" . $_POST["TB_CONTENT_COMM"] . "'
t'as fait les debug primaires avec print_r($_POST) si tu recupere les infos via un form en post ou print_r($_GET) si tu recupères les infos via l'url ou via un formulaire utilisant get.
tu peux aussi faire un print_r($_REQUEST) qui combine les $_GET et $_POST
Tu comprendrais peut être mieux :
<? include("fonction.php");
connect_mysql();
if(empty($_COOKIE["ID_UTILISATEUR"]))
{
echo "Veuillez vous identifier";
}
else
{
// Création de la news
if(($_POST["BT_Envoyer"]))
{
mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
") or die('Erreur de connexion '.mysql_error()) ;
}
mysql_close();
$idnews = $_GET["id"];
echo $idnews;
?>
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un commentaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Commentaire : <input type="text" name="TB_CONTENT_COMM" ;"/>
</p>
<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
<?
//Affichage du lien une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
?>
<a href="index.php">Retour a l'index</a>
<?
}
?>
</form>
</body>
</html>
<?
}
?>
<? include("fonction.php");
connect_mysql();
if(empty($_COOKIE["ID_UTILISATEUR"]))
{
echo "Veuillez vous identifier";
}
else
{
// Création de la news
if(($_POST["BT_Envoyer"]))
{
mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
") or die('Erreur de connexion '.mysql_error()) ;
}
mysql_close();
$idnews = $_GET["id"];
echo $idnews;
?>
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un commentaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Commentaire : <input type="text" name="TB_CONTENT_COMM" ;"/>
</p>
<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
<?
//Affichage du lien une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
?>
<a href="index.php">Retour a l'index</a>
<?
}
?>
</form>
</body>
</html>
<?
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ben oui effectivement a aucun moment tu fait passer un champs de type id
il manque dans ton formulaire un champ hidden contenant la valeur de l id de la news. a ce moment la tu pourra la recupere via $_POST['id']
ex <input type="hidden" name="id" value="'.$id_news.'"/>
il manque dans ton formulaire un champ hidden contenant la valeur de l id de la news. a ce moment la tu pourra la recupere via $_POST['id']
ex <input type="hidden" name="id" value="'.$id_news.'"/>
if(empty($_COOKIE["ID_UTILISATEUR"]))
{
echo "Veuillez vous identifier";
}
ici je te conseil vivement l'utilisation des sessions
a+
{
echo "Veuillez vous identifier";
}
ici je te conseil vivement l'utilisation des sessions
a+
exemple exlpiquant une methode d'identification
https://forums.commentcamarche.net/forum/affich-8104631-identification
https://forums.commentcamarche.net/forum/affich-8104631-identification