Insert vide

Fermé
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020 - 1 févr. 2020 à 13:36
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 3 févr. 2020 à 19:10
voici mon code :
$ill='';
if(isset($_GET['ill']){
$ill=$_GET['ill'];
}
echo $ill;
$mysqli->query("insert into malade(nom,code,maladie) values ('$nom','$code','$ill'))or die($mysqli->error());
le insert fonctionne mais dans la case maladie c'est vide meme si echo affiche la maladie

8 réponses

jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
3 févr. 2020 à 03:01
Merci, dès tes prochains messages, d'utiliser les balises de code CORRECTEMENT.... histoire qu'on puisse avoir la coloration syntaxique et l'indentation.
Cela fait plusieurs fois qu'on te le dit : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite.. quand on te demande le code COMPLET .. ben.. c"est COMPLET.
Là, il manque des lignes dans ta premières pages...
- d'où viennent les variables comme, par exemple $num_dossier; ?
- Où se trouve le bouton submit de ton formulaire et la balise </form> ?


Enfin bon.. ça nous permet de voir les premières erreurs que tu as commis dans ton code ...


Dans ta première page, Tu as mis :
require_once 'pro2.php';

Et
<form action="pro2.php" method="POST" oninput="">


C'est ... ou l'un .. ou l'autre.. mais pas les deux en même temps !!
Soit tu rediriges vers la page pro2 ( avec le "action" de ton form ) , soit tu inclus le code du fichier pro2 dans ta page (ce que fait le require ).

PS: le "oninput" n'a rien à faire là... surtout dans une balise form.. tu peux le retirer.

Pour résoudre ton souci,
Je te conseille donc de conserver le require, et de remplacer ton form par
<form action="" method="POST">

1
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
3 févr. 2020 à 16:59
merci pour ton aide cher ami je suis débutant
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
1 févr. 2020 à 14:06
Il ne manque pas une " ?
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 17:54
il m'affiche pas d'erreur du genre
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
1 févr. 2020 à 14:18
Bonjour,

A l'avenir, merci d'utiliser les balises de code pour poster ton code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Ensuite, il faut récupérer "proprement" les variables avant de les utiliser.

et enfin en mysqli .. on n'utilise plus le OR DIE ..
A la place on écrit sous cette forme.


//récupération de la variable via la forme ternaire (sorte de if/else)
// il faut également protéger contre les caractères spéciaux qui pourraient se trouver dans la variable
// pour ça : https://www.w3schools.com/php/func_mysqli_real_escape_string.asp
$ill=!empty($_GET['ill']) ? $mysqli -> real_escape_string($_GET['ill']) : "";
echo $ill;


$sql = "insert into malade(nom,code,maladie) values ('$nom','$code','$ill')";
if (!$mysqli -> query($sql)) {
  echo("Error : " . $mysqli -> error);
}


Je t'invite également à lire ceci ::
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et ça : https://www.w3schools.com/php/func_mysqli_real_escape_string.asp


0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
1 févr. 2020 à 14:19
Si ça ne fonctionne toujours pas, fais nous un echo de la variable $sql et montre nous également la structure de ta table (noms et types de champs des colonnes de ta table )
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020 > jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024
1 févr. 2020 à 16:55
$ill='';
if(isset($_GET['ill']){
$ill=$_GET['ill'];
}
echo $ill;
$mysqli->query("insert into malade(nom,code,maladie) values ('$nom','$code','$ill'))or die($mysqli->error());

maladie reste toujours vide et echo $ill m'affiche angine
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 16:56
Heu.. oui... sauf que tu n'as pas appliqué ce que je t'ai indiqué.....
Donc commence par LIRE et APPLIQUER ce que je t'ai donné... et reviens nous voir seulement après avoir apporté ces corrections....
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
Modifié le 1 févr. 2020 à 16:57
voici ce que j'ai
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 16:57
on ne voit rien....;
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
1 févr. 2020 à 17:57
Tu sais lire ou tu as du mal ???

montre-nous ton code corrigé ainsi que la structure de ta table ce n'est pourtant pas compliqué à comprendre.
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 18:04
pas besoin de tout expliquer je croi la table est claire sur le insert tout est varchar et le code et sur pc pas lié à internet mais le problème et just dans ce que j'ai envoyé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
1 févr. 2020 à 18:19
si tu as pris le code que je t'ai donné et que ton écho et bon si tu ne veux pas faire l'effort de suivre les conseils qu'on te donne débrouille-toi on ne pourra rien pour toi
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 18:25
j'ai fait ton code à la lettre mais toujours le même problème
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
1 févr. 2020 à 18:44
Montre ton code modifié et un show create de ta table...
Verifie également si ton fichier php est bien encode en utf8 sans bom
Et pour finir montre nous ce qu'affiche exactement ton echo
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
Modifié le 2 févr. 2020 à 12:48
$ill=!empty($_GET['ill']) ? $mysqli->real_escape_string($_GET['ill']):"";
$mal=$ill;
echo $mal;
if(isset($_POST['save'])){
if (isset($_POST['nom'])){
 $nom=$_POST['nom'];}
 if (isset($_POST['prenom'])){
 $prenom=$_POST['prenom'];}
 if (isset($_POST['date_n'])){
 $date_n=$_POST['date_n'];}
$req="INSERT INTO autre (nom,prenom,date_n,ill) VALUES ('$nom',
'$prenom','$date_n','$mal')";
echo $req;}

le premier echo affiche angine le second mal est vide

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
2 févr. 2020 à 12:50
Bon...
Déjà.. merci d'utiliser les BALISES DE CODE pour poster ton code sur le forum.


Mais.. on avance...
Désormais on peut voir que tu envois les autres données en POST.

Je suppose donc, que le "premier" echo dont tu parles est celui qui apparait lorsque tu affiches ta page.... et que le "second" echo c'est celui qui apparait une fois que tu as submit le formulaire...
Il est donc à parier que tu n'envois pas la variable iil dans l'url du formulaire.....

On en revient donc à mes premières questions..... MONTRE NOUS LE CODE COMPLET DE TA PAGE !!!!

C'est pas possible d'être aussi têtu ! ....
Si on te demande ce genre d'informations c'est justement qu'on a un doute sur l'origine de ton problème.....

Et puis.. il serait bien que tu commences à appliquer les exemples qu'on te donne.
Typiquement, ton code actuel devrait ressembler à ça
$mal=!empty($_GET['ill']) ? $mysqli->real_escape_string($_GET['ill']):"";
echo $mal;
if(isset($_POST['save'])){
  $nom=!empty($_POST['nom']) ? $mysqli->real_escape_string($_POST['nom']):"";
  $prenom=!empty($_POST['prenom']) ? $mysqli->real_escape_string($_POST['prenom']):"";
  $date_n=!empty($_POST['date_n']) ? $mysqli->real_escape_string($_POST['date_n']):"";

  $req="INSERT INTO autre (nom,prenom,date_n,ill) VALUES ('$nom','$prenom','$date_n','$mal')";
  echo $req;
} 

ça ne résolvera pas ton souci qui n'est en aucun cas lié à ce code... mais à la façon dont tu enovois ton formulaire (et tes variables ).
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020 > jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024
2 févr. 2020 à 12:57
le problème est dans la variable ill mon ami a part ça tout fonctionne
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
Modifié le 2 févr. 2020 à 13:54
Tu es en train de me troller ou vraiment tu ne comprends pas ce qu' on te dit ???
j'ai bien vu où était ton problème mais toi as-tu lu les réponses que je t'ai donné et ce que je t'ai demandé de nous fournir ?
ne reviens pas nous voir tant que tu ne seras pas décidé à nous donner les éléments qu'on te demande.
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
2 févr. 2020 à 15:33
le problème est dans la variable ill mon ami a part ça tout fonctionne insert passe bien mais avec ill vide
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
2 févr. 2020 à 16:07
Tu ne sais pas lire... avoue....
e problème est dans la variable ill mon ami

ON LE SAIT que c'est ta variable ill qui te pose problème !!! ça fait 15 fois que tu nous le dis... on a compris !

Mais ton souci... ne vient pas du code que tu nous montres

Le souci vient de la façon dont tu transmets tes variables entre ton formulaire ( en POST ) et ta satanée variable que tu essaies de récupérer en GET ...

Donc, (c'est ta dernière chance avant que je ne ferme cette discussion une bonne fois pour toutes.... )
MONTRE NOUS LE CODE COMPLET et surtout.... ton FORMULAIRE !!!!

J'espère que j'ai été assez clair cette fois !
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
Modifié le 3 févr. 2020 à 01:07
premiere page:
 <?php


require_once 'pro2.php';

?>


<div class="row justify-content-center">
<form action="pro2.php" method="POST" oninput="">
<input type="hidden" name="id" value="<?php echo $id; ?>">

<table > <td colspan=10 align="left" style="margine:10px;padding:5px" >
<div class="form_group">
<label>Numero dossier :         </label>
<input type="text" name="num_dossier" value="<?php echo $num_dossier; ?>" class="form_control" placeholder=" ">
</div>
<div class="form_group">
<label>Nom :                          </label>
<input type="text" name="nom" class="form_control" value="<?php echo $nom; ?>" placeholder="" >
</div>
<div class="form_group">
<label>Prenom :                     </label>
<input type="text" name="prenom" class="form_control" value="<?php echo $prenom; ?>" placeholder="" >
</div>

<div class="form_group">
<label>Date naissance</label>
:          
<input type="date" name="date_n" value="<?php echo $date_n; ?>" class="form_control" placeholder="">
</div>


2 eme page pro2.php:

$ill=!empty($_GET['ill']) ? $mysqli->real_escape_string($_GET['ill']):"";
$mal=$ill;
echo $mal;
if(isset($_POST['save'])){
if (isset($_POST['nom'])){
$nom=$_POST['nom'];}
if (isset($_POST['prenom'])){
$prenom=$_POST['prenom'];}
if (isset($_POST['date_n'])){
$date_n=$_POST['date_n'];}
$req="INSERT INTO autre (nom,prenom,date_n,ill) VALUES ('$nom',
'$prenom','$date_n','$mal')";
echo $req;}
0
jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
Modifié le 3 févr. 2020 à 01:58
et dans mon index j'ai un lien qui va vers patient.php?ill=angine qui est la première page
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330 > jawadov11 Messages postés 40 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 6 juin 2020
3 févr. 2020 à 18:27
Soit tu n'as pas tout mis, soit c'est clairement pas bon.
En essayant sur mon serveur,
il me crache une erreur sur "$mysqli->real_escape_string" (normal $mysqli n'est pas initialisé)
Si je retire cet appel, il manque le "</form>" de ton formulaire ainsi que le bouton de validation de celui-ci.
Il manque aussi le champ "save".

Après modification, le code semble fonctionner :
<?php 

$ill=!empty($_GET['ill']) ? $_GET['ill']:"";
$mal=$ill;
echo $mal;
if(isset($_POST['save']))
{
	if (isset($_POST['nom']))
	{
		$nom=$_POST['nom'];
	}
	if (isset($_POST['prenom']))
	{
		$prenom=$_POST['prenom'];
	}
	if (isset($_POST['date_n']))
		{
		$date_n=$_POST['date_n'];
	}
	$req="INSERT INTO autre (nom,prenom,date_n,ill) VALUES ('$nom',
	'$prenom','$date_n','$mal')";
	echo $req;
} ?>

<div class="row justify-content-center">
<form action="#" method="POST" oninput="">
<input type="hidden" name="id" value="<?php echo $id; ?>">

<div class="form_group">
<label>Numero dossier :         </label>
<input type="text" name="num_dossier" value="<?php echo $num_dossier; ?>" class="form_control" placeholder=" ">
</div>
<div class="form_group">
<label>Nom :                          </label>
<input type="text" name="nom" class="form_control" value="<?php echo $nom; ?>" placeholder="" >
</div>
<div class="form_group">
<label>Prenom :                     </label>
<input type="text" name="prenom" class="form_control" value="<?php echo $prenom; ?>" placeholder="" >
</div>

<div class="form_group">
<label>Date naissance</label>
:          
<input type="date" name="date_n" value="<?php echo $date_n; ?>" class="form_control" placeholder="">
</div>

<input type="hidden" name="save" value="123" />

<input type="submit" />
</form>
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646 > NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024
3 févr. 2020 à 19:10
Il manquera quand même l'insertion au final...
Donc il faut laisser le real escape et inclure la connexion à la bdd.
0