Page 1 sur 1

Error php non mentionée

Posté : 30 sept. 2019, 21:46
par wags
Bonjour à toutes et à tous,

J'ai juste Error sans rien de plus dès que je charge la page. Autant dire que le bouton Ajouter ne fonctionne pas non plus.

J'ai fait un test très basique sans les $var et sans formulaire et ma base enregistre bien les informations mais dès que je passe à un formulaire et à des variables, ça ne fonctionne plus.

Où est mon erreur svp ?

<?php session_start();
require_once('add_operation_2.php');


if(isset($_POST['Ajouter']))
{
    $id_membre=$POST['id_membre'];
    $date_entree=$_POST['date_entree'];
	$heure_entree=$_POST['heure_entree'];
	$montant_achat=$_POST['montant_achat'];

$sql = "INSERT INTO operations (id_operation, id_membre, date_entree, heure_entree, montant_achat)
VALUES (0, '$id_membre', '$date_entree', '$heure_entree', '$montant_achat')";}

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?> 


<html>
    
    
    <form name="registration" method="post" action="add_operation_2.php" enctype="multipart/form-data">
		<p>Id membre </p>
        <input type="text" class="text" value=""  name="id_membre" required >
       
       <p>Date d'entrée </p>
        <input type="text" class="text" value=""  name="date_entree" required >
		
        <p>Heure d'entrée </p>
		<input type="text" class="text" value="" name="heure_entree"  required >
		
		<p>Montant de l'achat </p>
        <input type="text" class="text" value="" name="montant_achat"  >
		
    	
		
        <div class="sign-up">
		<input type="reset" value="Reset">
		<input type="submit" name="Ajouter"  value="Ajouter" >
		<div class="clear"> </div>
		</div>
		</form>
</html>
Le code de connexion
<?php
$servername = "localhost";
$username = "root";
$password = "pass";
$dbname = "user-reg";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>
Merci d'avance pour votre aide.

Re: Error php non mentionée

Posté : 30 sept. 2019, 22:47
par @rthur
id_operation est toujours égale à 0 ? ça me semble bizarre.

Sinon utilise var_dump() plutôt que echo pour afficher le contenu de tes variables, c'est plus fiable

Re: Error php non mentionée

Posté : 01 oct. 2019, 09:31
par wags
Bonjour @rthur,

Heu non en effet, c'est le id auto incrementé.

Je dois mettre quoi à la place du 0 du coup ?
('', '$id_membre', '$date_entree', '$heure_entree', '$montant_achat')";}
?

Merci pour var dump()
Je modifie

Bonne journée

Re: Error php non mentionée

Posté : 01 oct. 2019, 12:09
par Saian
Bonjour wags, je suppose que la colonne id_operation est la clé primaire de la table operations ? dans ce cas généralement on met la clé primaire en auto increment et on ne la met pas dans la requête d'insert.

Re: Error php non mentionée

Posté : 01 oct. 2019, 12:18
par wags
Bonjour Saian,

Merci pour ta réponse précise et claire.

Ok donc je l'oublie celle là ;)

Merci

PS : J'ai donc testé. Je dois vraiment pas voir un truc évident (je suis sur ce problème depuis hier soir : oui oui j'ai dormi rassurez vous ;) ;) )

Voici le message d'erreur.

Error: INSERT INTO operations (id_membre, date_entree, heure_entree, montant_achat) VALUES ('', '2019-06-25', '15:15', '464')
Incorrect integer value: '' for column 'id_membre' at row 1

Je suppose qu'il ne prend pas en compte l'Id_membre que j'indique dans le formulaire.

Voici mon code modifié
<?php session_start();
/*require_once('add_operation_2.php');*/


$servername = "localhost";
$username = "root";
$password = "pass";
$dbname = "user-reg";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}


if(isset($_POST['Ajouter']))
{
$id_membre=$POST['id_membre'];
$date_entree=$_POST['date_entree'];
$heure_entree=$_POST['heure_entree'];
$montant_achat=$_POST['montant_achat'];

$sql = "INSERT INTO operations (id_membre, date_entree, heure_entree, montant_achat)
VALUES ('$id_membre', '$date_entree', '$heure_entree', '$montant_achat')";


if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
}
?> 


<html>
    
    
    <form name="registration" method="post" action="" enctype="multipart/form-data">
		
        <p>Id membre </p>
        <input type="text" class="text" value=""  name="id_membre" required >
       
       <p>Date d'entrée </p>
        <input type="date" class="text" value=""  name="date_entree" required >
		
        <p>Heure d'entrée </p>
	<input type="text" class="text" value="" name="heure_entree"  required >
		
	<p>Montant de l'achat </p>
        <input type="text" class="text" value="" name="montant_achat"  >
		
    	
		
        <div class="sign-up">
		<input type="reset" value="Reset">
		<input type="submit" name="Ajouter"  value="Ajouter" >
		<div class="clear"> </div>
	</div>
	</form>
</html>
J'en perds la tête et les yeux.

Merci d'avance pour vos lumières et vos aides.

Bonne journée

Re: Error php non mentionée

Posté : 01 oct. 2019, 13:17
par Saian
Oui le problème vient bien de id_membre qui est vide alors que la colonne est de type integer not null je présume.
Tu as mis $POST['id_membre']; qui n'est pas bon, si tu avais bien tous les messages d'erreur qui s'affichent tu aurais probablement une notice sur cette ligne.
C'est juste une toute petite erreur sur le nom du tableau...

Re: Error php non mentionée

Posté : 01 oct. 2019, 16:32
par wags
Re,

Merci pour ton message.

Donc j'ai changé dans la base, les not null en null

Image


Maintenant, ça fonctionne mais l'id_membre n'est pas enregistré.

1 - J'aimerais comprendre mon erreur même si .....
2 - ..... dans l'idée, l'utilisateur sera connecté quand il validera le formulaire avec les données donc je voudrais lui attribuer son id_user dans id_membre de façon à ce qu'il puisse voir et modifier tous ces enregistrements plus tard.

Donc : pourquoi ce fichu id_membre ne s'enregistre pas dans la base de données (même si pour le futur c'est pas grave, je voudrais comprendre.

Merci

Re: Error php non mentionée

Posté : 01 oct. 2019, 16:36
par Saian
Le tableau des données en POST c'est $_POST pas $POST.

Re: Error php non mentionée

Posté : 01 oct. 2019, 17:00
par wags
Maintenant que tu le dis, ça me fait mal aux yeux tellement c'est évident.

Bon ben merci ;)

Allez étape suivante ;)

Un grand merci pour ton aide et ta patience ;)