Condition: true et false

Résolu
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009 - 19 août 2008 à 22:09
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 24 août 2008 à 11:27
Bonsoir tout le monde,


Je créé un site en ce moment et je suis sur une partie du site ou je bloque.


je créé une partie tuto avec un petit système de note. Je voudrais que les membres puissent noté une seule un tuto je fais appael a une condition true et false mais je n'arrive pas a bien le manipuler. Voici mon code :




<?php if ((isset($_POST['note']) && !empty($_POST['note'])) ) {


 include("../config.php");
    
  $sql = 'SELECT * FROM GC_tuto_note WHERE auteur="'.$_SESSION['membre_pseudo'].' " AND id_tutoriel = "'.$id_tuto = $_GET['id_tuto'].'"  ';
    
  $data = mysql_fetch_assoc($sql);
     
     
   
 if ($data['note'] == true) {
    
      
mysql_query('INSERT INTO GC_tuto_note (id, id_tutoriel, auteur, note) VALUES("","'.$id_tuto.'", "'.$_SESSION['membre_pseudo'].'","'.mysql_escape_string($_POST['note']).'") ');


} else { $erreur = 'Attention !! Vous avez déjà noté ce tutoriel.'; }




} else {  $erreur = 'Attention !! Veuillez remplir tout les champs avec une *. Merci.';
  
}
?>


Le problème est que j'ai aucune donné dans ma base et ça me dit que j'ai déjà noté ce tuto alors je met false à la place de true et la je peux noter autant de fois que je veux ???? o_O
Peux ton m'aider?

14 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
20 août 2008 à 09:04
Bonjour
Faudrait remplacer
 if ($data['note'] == true) {
par
 if ($data['note'] != true) {
... car la j'ai l'impression que tu fais : s'il y a une note, je fais un insert sinon je met le message "deja noté".
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 août 2008 à 09:33
Salut,

J'ai la même impression que laurent...

Sinon, si j'avais été toi, j'aurai fait autrement, c'est a dire :

J'aurai fait un mysql_num_rows et aprè j'aurai fait une condition pour vérifier qu'il est plus grand que zéro...

Exemple :

if(mysql_num_rows($data['membre_pseudo']) < 1) {
      //pas encore noté;
} else {
      //déjà noté:
}

Bonne chance jacques....

a++

Si la réponse vous convient, pensez : Réponse acceptée !
3
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
20 août 2008 à 16:32
j'ai essayé mais ça n'a pas marché j'ai essayé ça sinon mais c'est pareil:

<?php
// bien rajouter le code si-dessous sur toute les pages que vous rajouterez dans votre espace membre (le dosier membre)
session_start();

if ($_SESSION['level'] >= 2) {

   if ((isset($_POST['note']) && !empty($_POST['note'])) ) {

 include("../config.php");
     $id_tuto = $_GET['id_tuto'];
 $id_cat = $_GET['id_cat'];
 $id_sous_cat = $_GET['id_sous_cat'];
 
   $sql = 'SELECT count(*) FROM GC_tuto_note WHERE auteur="'.$_SESSION['membre_pseudo'].'" AND id_tutoriel="'.$id_tuto.'"';
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
      $data = mysql_fetch_assoc($req);
     
      mysql_free_result($req);   
     
   
 if ($data[0] == 1) {
  $erreur = 'Attention !! Vous avez déjà noté ce tutoriel.';
 

} else { include("../config.php");
    
  mysql_query('INSERT INTO GC_tuto_note (id, id_tutoriel, auteur, note) VALUES("","'.$id_tuto.'", "'.$_SESSION['membre_pseudo'].'","'.mysql_escape_string($_POST['note']).'") ');    
 }

} else {  $erreur = 'Attention !! Veuillez remplir tout les champs avec une *. Merci.';
  
}

 

     

$retour = mysql_query("SELECT * FROM GC_site");
$donn = mysql_fetch_array($retour); 

?>
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 août 2008 à 17:28
Re,

Tu n'as pas fait ce que je t'ai conseillé...

Fait ta requête sans le count et met le code que je t'ai proposé, ensuite regarde et dit nous ce qui se passe dans les deux cas...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

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

Posez votre question
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
20 août 2008 à 20:03
J'ai déjà fais ce que tu m'as dit de faire et ça ne marche pas non plus, je peu voter plusieur fois quand meme
0
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
20 août 2008 à 20:16
Voici le code que j'ai fait :

<?php
// bien rajouter le code si-dessous sur toute les pages que vous rajouterez dans votre espace membre (le dosier membre)
session_start();




if ($_SESSION['level'] >= 2) {


   if ((isset($_POST['note']) && !empty($_POST['note'])) ) {


 include("../config.php");
     $id_tuto = $_GET['id_tuto'];
 $id_cat = $_GET['id_cat'];
 $id_sous_cat = $_GET['id_sous_cat'];
 
   $sql = 'SELECT auteur, note FROM GC_tuto_note WHERE auteur="'.$_SESSION['membre_pseudo'].'" AND id_tutoriel="'.$id_tuto.'"';
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
      $data = mysql_fetch_assoc($req);
     
      mysql_free_result($req);   
     
   
 if(mysql_num_rows($data['auteur']) < 1) {
 
 mysql_query('INSERT INTO GC_tuto_note (id, id_tutoriel, auteur, note) VALUES("","'.$id_tuto.'", "'.$_SESSION['membre_pseudo'].'","'.mysql_escape_string($_POST['note']).'") '); 


} else { include("../config.php");
  $erreur = 'Attention !! Vous avez déjà noté ce tutoriel.';  
     
 }




} else {  $erreur = 'Attention !! Veuillez remplir tout les champs avec une *. Merci.';
  
}


 


     


$retour = mysql_query("SELECT * FROM GC_site");
$donn = mysql_fetch_array($retour); 


?>
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 août 2008 à 23:09
Sinon, j'ai une autre idée, tu fais une table vote et tu rentre le pseudo de chaque membre ayant déja voté  avec l'id du tuto sur leqel il a voté et a chaque fois tu vérifie avec les sessions si le pseudo n'est pas déja associé a l'id du tuto dans ta bdd...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 août 2008 à 23:09
Sinon, j'ai une autre idée, tu fais une table vote et tu rentre le pseudo de chaque membre ayant déja voté  avec l'id du tuto sur leqel il a voté et a chaque fois tu vérifie avec les sessions si le pseudo n'est pas déja associé a l'id du tuto dans ta bdd...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
21 août 2008 à 19:53
ben c'est ce que j'ai fais nico ^^, j'ai fait une table avec id, id_tutoriel, auteur, note je rentre bien la note avec l'auteur (session pseudo) l'id_tutoriel par contre meme si je note le meme tutoriel avec le meme pseudo sa passe toujours pourtant je fais comme d'habitude
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
21 août 2008 à 20:08
Mince alors...

Je ne sais pas alors...

Question bête :

As tu mis un session_start(); ?

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
22 août 2008 à 21:30
oui biensur regarde mon deuxième message le code que j'ai fait
0
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
22 août 2008 à 21:57
Bon voici la page avec le formulaire :  Ce qui vous intéresse je pense que c'est à partir de la ligne 94 en rouge
Cette page ce nomme lire_tuto.php

<?php
// bien rajouter le code si-dessous sur toute les pages que vous rajouterez dans votre espace membre (le dosier membre)
session_start();
 
include("../config.php");
     

$retour = mysql_query("SELECT * FROM GC_site");
$donn = mysql_fetch_array($retour); 

?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
[$1 $2]', $texte);
     $texte = preg_replace('#\[souligner\](.+)\/souligner\#isU', '$1', $texte);
     $texte = preg_replace('#\[barrer\](.+)\/barrer\#isU', '<strike>$1</strike>', $texte);
  $texte = preg_replace('#\[image\](.+)\[\/image\]#isU', '', $texte);
  $texte = preg_replace('#\[citation=([\s\S]*?)\](.+)\[\/citation\]#isU', ' Citation de $1 :
$2
', $texte);
  $texte = preg_replace('#\[info\](.+)\[\/info\]#isU', '
http://webcultureweb.free.fr/pages_index/zcode/zcode_info.png
" border= "0" alt="" align="middle"/>&nbsp;&nbsp;$1

', $texte);
  $texte = preg_replace('#\[question\](.+)\[\/question\]#isU', '
http://webcultureweb.free.fr/pages_index/zcode/zcode_question.png

" border="0" alt="" align="middle" />&nbsp;&nbsp;$1

', $texte);
  $texte = preg_replace('#\[erreur\](.+)\[\/erreur\]#isU', '
http://webcultureweb.free.fr/pages_index/zcode/zcode_erreur.png

" border="0" alt="" align="middle"/>&nbsp;&nbsp;$1

', $texte);
  $texte = preg_replace('#\[attention\](.+)\[\/attention\]#isU', '
http://webcultureweb.free.fr/pages_index/zcode/zcode_attention.png

" border="0" alt="" align="middle" />&nbsp;&nbsp;$1

', $texte);
  $texte = preg_replace('#\[taille=(5|4|3|2|1)\](.+)\[\/taille\]#isU', '$2', $texte);
  $texte = preg_replace('#\[position=(left|center|right)\](.+)\[\/position\]#isU', '
$2
', $texte);
  
  // Smileys... 





  
  $texte = preg_replace('#\:1:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/amazing-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:2:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/bad_smile-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:3:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/beaten-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:4:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/big_smile-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:5:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/black_heart-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:6:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/cry-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:7:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/electric_shock-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:8:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/exciting-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:9:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/eyes_droped-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:10:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/girl-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:11:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/greedy-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:12:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/grimace-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:13:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/haha-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:14:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/horror-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:15:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/money-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:16:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/nothing-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:17:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/nothing_to_say-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:18:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/scorn-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:19:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/secret_smile-48.png

" alt="" />', $texte);
     $texte = preg_replace('#\:20:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/shame-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:21:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/shocked-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:22:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/super_man-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:23:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/the_iron_man-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:24:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/victory-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:25:#isU', '
http://www.astuce-et-creation.com/images/emoticone/Black/what-48.png

" alt="" />', $texte);
  $texte = preg_replace('#\:26:#isU', '', $texte);
  $texte = preg_replace('#\:27:#isU', '', $texte);
  $texte = preg_replace('#\:28:#isU', '', $texte);
 
    // Et on affiche le résultat. Admirez ! :D
    echo $texte . '

';
}
?>




 



 

 ----

   
      Commentaire(s)

    ,
<?php  $com mysql_query(\"SELECT * FROM  GC_tuto_com WHERE id_tutoriel '\".$id_tuto.\"'\")or die (mysql_error());
 
 
 while ($com1 = mysql_fetch_array($com)) { ?>
  ----

    Commentaire de <?php echo $com1['auteur']; ?> le <?php echo date('d/m/Y à H:i',$com1['date']); ?>
      <hr align="center" noshade="noshade" />
<?php if (isset($com1['message']))
{
    $texte = stripslashes($com1['message']); // On enlève les slash qui se seraient ajoutés automatiquement
    $texte = htmlspecialchars($texte); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
    $texte = nl2br($texte); // On crée des
pour conserver les retours à la ligne.

echo $texte ;
}
?> ,
  <?php } ?>

<?php if ($_SESSION['level'] >= 2) { ?>
 <form action="<? echo $donn['racine']; ?>/tutoriels/ajout_commentaire_reussi.php?id_cat=<?php echo $id_cat ?>&amp;id_sous_cat=<?php echo $id_sous_cat ?>&amp;id_tuto=<?php echo $id_tuto ?>"  method="post" >
 <center> Ajouter un commentaire
</center>




 Votre commentaire :

 <textarea cols="100%" rows=5 name="message"></textarea>
 

 
 </form>
<?php } else { ?><center>Vous ne pouvez pas ajouter de commentaire car vous n'êtes pas inscrit ou ne vous êtes pas connecté.

  [
Inscription
> | [
Connexion
>
</center><?php } ?>




 




 






 




</html>





Ensuite la page ajoute_note_reussi.php

<?php
// bien rajouter le code si-dessous sur toute les pages que vous rajouterez dans votre espace membre (le dosier membre)
session_start();
if ($_SESSION['level'] >= 2) {
  $id_tuto = $_GET['id_tuto'];
 $id_cat = $_GET['id_cat'];
 $id_sous_cat = $_GET['id_sous_cat'];



 include("../config.php");
   
 
   $sql = 'SELECT auteur, note FROM GC_tuto_note WHERE auteur="'.$_SESSION['membre_pseudo'].'" AND id_tutoriel="'.$id_tuto.'"';
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
      $data = mysql_fetch_assoc($req);
     
      mysql_free_result($req);   
     
   
 if(mysql_num_rows($data['membre_pseudo']) < 1) {




 



   if ((isset($_POST['note']) && !empty($_POST['note'])) ) {





 
 mysql_query('INSERT INTO GC_tuto_note (id, id_tutoriel, auteur, note) VALUES("","'.$id_tuto.'", "'.$_SESSION['membre_pseudo'].'","'.mysql_escape_string($_POST['note']).'") '); 



} else { $erreur = 'Attention !! Veuillez remplir tout les champs avec une *. Merci.';
   
     
 }





} else {  $erreur = 'Attention !! Vous avez déjà noté ce tutoriel.'; 
  
}



 



     



$retour = mysql_query("SELECT * FROM GC_site");
$donn = mysql_fetch_array($retour); 



?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="style" href="../style.css" />
<title>Index administration tutoriels</title>
</head>









<?php include("../include/header.php"); ?>





<?php include("../include/menu_vertical.php"); ?>

 

    <?php include("../include/menu_horizontal.php"); ?>
 

 

 
Tutoriels

<center>

 

 
 
       
  <?php



if (isset($erreur) == true ) { ?>
<?php echo $erreur ?> <script language="javascript">
    <!--
      window.setTimeout
   ('document.location.href="
http://www.astuce-et-creation.com/tutoriels/lire_tuto.php?id_cat=<?php
echo $id_cat ?>&amp;id_sous_cat=<?php echo $id_sous_cat ?>&amp;id_tuto=<?php echo $id_tuto ?>"',1000)
    //-->
    </script>
  <?php } else { ?>
    Votre note à bien été ajouté.

   

    Merci beaucoup <?php echo $_SESSION['membre_pseudo']; ?> ^^
<script language="javascript">
    <!--
      window.setTimeout
   ('document.location.href="
http://www.astuce-et-creation.com/tutoriels/lire_tuto.php?id_cat=<?php
echo $id_cat ?>&amp;id_sous_cat=<?php echo $id_sous_cat ?>&amp;id_tuto=<?php echo $id_tuto ?>"',1000)
    //-->
    </script>
<?php } ?>

</center>





 

 






 




</html>
<?php  } else { ?> <center>Vous n'êtes pas administrateur et donc vous n'avez pas le droit d'être ici.</center>

[
Retour
> <?php } ?>


Alors je vous réexplique ce que je voudrais et ce qu'il se passe.

Donc je voudrais que le membre puisse noté une seule fois le tutoriel qu'il voudra noter si il réessai de noter alors qu'il l'a déjà fais un message d'erreur lui indiquera qu'il ne peux plus noter ce tuto. Voici ma table :

CREATE TABLE `GC_tuto_note` (
  `id` int(11) NOT NULL auto_increment,
  `id_tutoriel` int(11) NOT NULL default '0',
  `auteur` varchar(30) NOT NULL default '',
  `note` char(2) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=17 ;

j'espère que cela vous aidera a m'aider ;)


</td>
</tr>
</tbody>
</table>
0
cs_djack69 Messages postés 27 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 21 avril 2009
24 août 2008 à 11:23
pas de réponse?
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
24 août 2008 à 11:27
Désolé jacques mais moi je ne vois pas l'utilité que je peus apporter en répondant vu que je n'ai aucune idée de ce qui cloche...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
Rejoignez-nous