PHP/BD

Fermé
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023 - Modifié par Ibilolz le 10/04/2014 à 10:36
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 10 avril 2014 à 15:07
Bonjour, je suis entrain de travailler sur un petit site en html5/CSS3 avec un peu de php et de javascript pour visualiser la base de donnée du matériel informatique du lycée ou je travail. J'ai donc créé ma base de donnée avec phpmyadmin, j'ai récupérer une fonction de conection à celle-ci qui marche bien ("fonctions.connect.php"). Le problème est que sur ma page Ajouter.php j'ai créer une petit champ de ce style :

<FORM Method="POST" Action="BD.php"> Numéro de la salle : <INPUT type=text size=1 name=Salle> <input type="submit" name="submit" Value="Ajouter">   
</div></FORM>


Et j'aimerai donc récupérer le numéro de la salle pour l'introduire le numéro comme id_salle dans ma table salle. J'ai donc programmé le fichier BD.php comme vous pouvez le voir ci dessous, et quand je clique sur le bouton ajouter sur ma page, il charge une page blanche et puis rien. Je ne comprend pas, le code me semble pourtant juste. J'ai testé ma fonction de connection aussi à part et elle marche aussi.

<?php

include 'fonctions.connect.php';
$connect_db = connect();

if ($_POST['Salle']!='')
{
$num_Salle = $_POST['Salle'];
$sql='INSERT INTO Salle(id_salle)
VALUES ("$num_Salle")';

mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close();

?>

Merci d'avance

T.

9 réponses

Utilisateur anonyme
10 avril 2014 à 09:54
Bonjour

Dans ton formulaire :
<INPUT type=text size=1 name=Salle>
et dans ton traitement :
$_POST['salle']
.
Alors, majuscule ou pas majuscule à 'salle' ? ce n'est pas la même chose.
Tu as aussi une virgule qui n'a rien à faire sans ton <input type=submit
0
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
10 avril 2014 à 10:00
C'est bien Salle, j'ai remplacé et enlevé la virgule mais toujours le même problème.
0
Marlocq Messages postés 117 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 10 septembre 2023
10 avril 2014 à 11:19
Vérifie que ton nom de champs soit bien le bon tout simplement...
0
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
10 avril 2014 à 11:40
Mon champ est le bon, j'ai une table Salle avec comme values id_salle ...
0

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

Posez votre question
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
10 avril 2014 à 11:59
J'ai fais encore plus simple :

<?php

include 'fonctions.connect.php';
$connect_db = connect();

if ($_POST['Salle']!='')
{
$id_salle = $_POST['Salle'];
$sql='INSERT INTO Salle (id_salle)
VALUES ("$id_salle")';

mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close();

?>

Mais toujours page blanche http://localhost/Site/BD.php (BD le nom de mon php) :@
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
10 avril 2014 à 12:25
Salut,

Ton fichier BD.php n'affiche aucune information si elle correctement exécuté. C'est donc normal que tu ais une page blanche.

Tu peux afficher un message simple comme ceci par exemple :

if (mysql_query($sql)) {
    echo 'Salle ajoutée';
} else {
    die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
}


Bonne journée
0
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
10 avril 2014 à 13:05
Le problème c'est que ça n'ajoute aucune salle dans ma BD et que même si j'ajoute le message comme ceci :

<?php

include 'fonctions.connect.php';
$connect_db = connect();

if ($_POST['Salle']!='')
{
$id_salle = $_POST['Salle'];
$sql='INSERT INTO Salle (id_salle)
VALUES ("$id_salle")';

mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

if (mysql_query($sql)) {
echo 'Salle ajoutée';
} else {
die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
}


// on ferme la connexion à la base
mysql_close();


?>

Lorsque je clique sur ajouter, jattends 30 sec qu'il charge le localhost, puis page blanche
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
10 avril 2014 à 14:16
Effectivement je n'avais pas vu que tu as une erreur de syntaxe sur la construction de ta chaine $sql :
$id_salle = (int) $_POST['Salle']; // converti en entier
$sql = "INSERT INTO Salle (id_salle) VALUES ('$id_salle')";


Si l'id d'une salle est forcément un entier, tu peux caster ton $_POST['Salle'] pour éviter les injections sql.

Pense à activer l'affichage des erreurs php en développement.
0
Ibilolz Messages postés 130 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
10 avril 2014 à 14:43
Avec mon bouton :

<FORM Method="POST" Action="BD.php"> Numéro de la salle : <INPUT type=text size=1 name=Salle> <input type="submit" name="submit" Value="Ajouter">   
</div></FORM>

Ma fonction connexion :

<?php
$connect = mysql_connect('localhost','root','saintex01') or die ("erreur de connexion");
mysql_select_db('Inventaire_SaintEx',$connect) or die ("erreur de connexion base");
?>

Et ma page BD.php :

<?php

include 'fonctions.connect.php';


if ($_POST['Salle']!='')
{
$id_salle = (int) $_POST['Salle'];

$sql = "INSERT INTO Salle (id_salle) VALUES ('$id_salle')";

mysql_query($sql) ;

}

?>


Rien n'est ajouté a la BD et toujours cette page blanche
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
Modifié par Pitet le 10/04/2014 à 15:09
Plusieurs pistes d'erreurs :
- entoure les valeurs des attributs html avec des quotes :
<input type="text" size="1" name="Salle" />

- vérifier les chemins. Ton fichier html et tes deux fichiers php sont-ils tous dans le même dossier ?
- vérifier les identifiants sql et le nom de la base

Dans tous les cas, active l'affichage des erreurs php pour voir exactement d'où vient ton erreur : dans le fichier php.ini, modifie ces deux lignes comme ceci :
error_reporting = On
error_reporting = E_ALL
et redémarre ton serveur web
0