Ajout d'un sujet dans une bdd

Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 20 avril 2008 à 16:06
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 20 avril 2008 à 17:01
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 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74
20 avril 2008 à 16:10
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:13
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:17
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:18
quand je mets le echo test j'ai bien test qui s'affiche tu vois ou est le probleme??
0
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74
20 avril 2008 à 16:20
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:21
ca me retourne string(4) "bbbb" -><-Test

donc a priori jusque la c'est bon
0
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74 > ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008
20 avril 2008 à 16:28
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:28
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 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74
20 avril 2008 à 16:30
Proposition de réponse juste au dessus de ton dernier message ^^
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:32
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 16:45
tu as une idée ??
0
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74
20 avril 2008 à 17:01
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 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
20 avril 2008 à 17:01
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