Condition: true et false

[Résolu]
Signaler
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
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

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
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é".
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

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); 

?>
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

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
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

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); 


?>
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

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
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

oui biensur regarde mon deuxième message le code que j'ai fait
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

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>
Messages postés
27
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
21 avril 2009

pas de réponse?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
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 !