Ajout d'un sujet dans une bdd

ladj59 Messages postés 322 Statut Membre -  
ladj59 Messages postés 322 Statut Membre -
Bonjour,
je ne comprends pas pourquoi ce code ne marche pas
je veux juste que le sujet que j'ai rentré dans la zone texte se rajoute dans ma bdd dont la table est sujets

merci d'avance pour votre aide

Si vous voulez ajouter un sujet à la liste déroulante, veuillez le rentrer ci-dessous :
<br />

<input type="text" value="nouveau sujet" id="nouveau_sujet"/>
<input type="submit" value="Ajouter" />
</p>

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp
//$reponse = mysql_query("SELECT * FROM base_physique WHERE sujet ='$_POST['sujet']'")or die("Erreur sql!<br />".mysql_error());

if(isset($_POST['sujet']))
{
//ajout à la bdd
$sujet=$_POST['sujet'];
$nombre=mysql_query("SELECT COUNT (*) AS nombre FROM sujets WHERE sujet ='$sujet'");
$n=$nombre['nombre'];
// nombre correspond au nombre de fois où le sujet est déjà présent
//s'il vaut 0 on l'ajoute sinon on passe
if ($n==0)
{ mysql_query("INSERT INTO sujets VALUES('', '$sujet')");
}
}
?>

<?php
mysql_close();
?>

</body>
</head>
</html>

9 réponses

Dacobah Messages postés 272 Statut Membre 74
 
Après ta ligne
$n=$nombre['nombre'];
écris ceci :
echo "->".$n."<-";
et dis-moi ce que tu obtiens. Si tu obtiens seulement -><-, c'est que c'est là que ça bloque !

Juste après ta ligne
 mysql_query("INSERT INTO sujets VALUES('', '$sujet')");
, écris ceci : echo "Test"; et dis-moi si tu vois le mot test apparaître.
0
ladj59 Messages postés 322 Statut Membre 3
 
ca me mets rien ca veut dire qu'il ne doit pas exister je ne rentre meme pas dans le if mais je ne sais pas pourquoi
0
ladj59 Messages postés 322 Statut Membre 3
 
je suis nul

j'ai remplacé le début par

<p>
<form action="a.php" method="post">
<p>
<input type="text" name="sujet"/>
</p>
<input type="submit" value="Ajouter" />
</p>

maintenantcomme tu l'as ditr j'obtiens -><-
0
ladj59 Messages postés 322 Statut Membre 3
 
quand je mets le echo test j'ai bien test qui s'affiche tu vois ou est le probleme??
0
Dacobah Messages postés 272 Statut Membre 74
 
Bon au moins ça nous laisse moins de code pour dénicher l'erreur.

A mon avis l'erreur se situe au niveau de la requête. Celle-ci n'est pas peut-être pas fausse, mais elle ne retourne aucun résultat.

Essaye de mettre après ta ligne
$sujet=$_POST['sujet'];
ceci :
var_dump($sujet);


Dis-moi ce que cela te retourne.
0
ladj59 Messages postés 322 Statut Membre 3
 
ca me retourne string(4) "bbbb" -><-Test

donc a priori jusque la c'est bon
0
Dacobah Messages postés 272 Statut Membre 74 > ladj59 Messages postés 322 Statut Membre
 
Oui jusque là c'est tout bon.

Bon maintenant, vérifie que tu as bien une table nommée sujets dans la base de données (tiens d'ailleurs, ça peut-être le "S" de sujets qui est de trop ?).

Ensuite, as-tu des enregistrements dedans (= des lignes) ?

Puis, y a-t-il un champ sujet dans table sujets ?
0

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

Posez votre question
ladj59 Messages postés 322 Statut Membre 3
 
ca y est cela ajoute la sujet dans la table mais le probleme c'est quer je peux mettre plusieurs fois le même sujet dans la meme table alors que je voudrais que si le sujet est deja present cela me mette sujet deja present

if(isset($_POST['sujet']))
{
//ajout à la bdd
$sujet=$_POST['sujet'];
var_dump($sujet);
$nombre=mysql_query("SELECT COUNT (*) AS nombre FROM sujets WHERE sujet ='$sujet'");
$n=$nombre['nombre'];
// nombre correspond au nombre de fois où le sujet est déjà présent
//s'il vaut 0 on l'ajoute sinon on passe
if ($n==0)
{ mysql_query("INSERT INTO sujets VALUES('', '$sujet')");
}
}
?>

<?php
mysql_close();
?>
0
Dacobah Messages postés 272 Statut Membre 74
 
Proposition de réponse juste au dessus de ton dernier message ^^
0
ladj59 Messages postés 322 Statut Membre 3
 
tout est ok dans ce que tu as mis avant
et j peux ajouter un sujet qui est deja present donc la ca ne va pas mais je vois pas pourquoi
0
ladj59 Messages postés 322 Statut Membre 3
 
tu as une idée ??
0
Dacobah Messages postés 272 Statut Membre 74
 
J'avoue que je ne plus trop quoi essayer ... Il n'y a pas de message en anglais qui apparît à l'écran ?
0
ladj59 Messages postés 322 Statut Membre 3
 
en fait c'est pas indispensable que il n'y ait qu'une fois le sujet dans la table

en revanche j'ai un gros souci
voir mon message intiulé :

afficher plusieurs tables en php
0