PHP/BD

Fermé
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Membre Dernière intervention  
 
C'est bien Salle, j'ai remplacé et enlevé la virgule mais toujours le même problème.
0
Marlocq Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
 
Vérifie que ton nom de champs soit bien le bon tout simplement...
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   527
 
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