bonjour à tous, en faisant un tp de mon iut où je devais créer un formulaire dans lequel l'utilisateur peut entrer une citation et la valider. cette validation insere un tuple dans la base de donnée et l'affiche ensuite en bas du formulaire.
jusqu'ici aucun soucis, cependant, pour améliorer un peu le concept, je ne veut pas qu'on puisse mettre deux fois la meme citation pour eviter la redondance de mes tuples dans la DB. voici mon code :
les deux lignes sensées faire ce test sont celles-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <html> <head> <LINK href="style.css" rel="stylesheet" type="text/css"> <title>Formulaire de soumission</title> </head> <body> <?php $link=mysql_connect("localhost", "ulrich", "mdp") or die(mysql_error());// Connexion à MySQL $database=mysql_select_db("tp3",$link) or die(mysql_error());// Sélection de la base tp3 if(isset($_GET['prof'])){ extract($_GET); $test_citation=mysql_query("select count(distinct texte) from citation where texte='$texte';"); if($test_citation == 0) $req_citation=mysql_query("insert into citation values('','$texte','$prof','$rapporteur','En attente');"); } ?> <form action="Form2.php" method="GET"> <fieldset> <legend> Proposer une citation </legend> <label>Professeur</label> <select name="prof"> <?php $req_prof='select * from prof order by id_prof;'; $query_prof=mysql_query($req_prof); while($tuple=mysql_fetch_array($query_prof)) { echo'<option value="'.$tuple['id_prof'].'">'.$tuple['nom'].'</option>';//affiche les profs } ?> </select> <label>Année</label> <select name="annee"> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> </select> <br /><br /> <textarea name="texte" cols="100%" rows="10">Citation</textarea> <br /><br /> <label >Votre nom </label> <input type="text" name="rapporteur"> <input type="SUBMIT" value="Envoyer" /> </fieldset> </form> <?php echo '<u>Citation / professeur :</u><br/>'; //affichage des citations. $citation=mysql_query("select * from citation natural join prof order by id_prof"); while($tuple2=mysql_fetch_array($citation)) { echo $tuple2['texte']; echo ' / '; echo $tuple2['nom']; echo '<br/>'; } mysql_close($link); ?> </body> </html>
mon idée étant de compter le nombre de tuple contenant la meme citation et d'empecher d'en créer d'autre. Cependant lorsque je met ce if, l'insertion ne fonctionne jamais et quand il n'y ai pas... ba elle fonctionne à chaque fois ce qui ne me plait pas non plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $test_citation=mysql_query("select count(distinct texte) from citation where texte='$texte';"); if($test_citation == 0)![]()
je ne sais pas si le where texte='$texte' est possible mais j'avoue que je n'ai pas eu d'autre idée. si vous pouvez m'aider n'hésitez pas et en tout cas merci de m'avoir lu
Partager