2013-08-05 7 views
-5

Lorsque j'exécute le code suivant, il s'exécute! Cependant, il y a un problème. Le if($photoIDdislike["magic"] == 1) ne fonctionne pas, pourquoi le programme dit que l'instruction if est fausse. Quelle est mon erreur logique et comment puis-je la réparer pour que le code fonctionne.Pourquoi mon code ne fonctionne pas

<?php 
$con = mysqli_connect("127.0.0.1:3306","root","root","photoshare"); 
$query = "SELECT ID,nickname,photoLikes FROM tbl_photo"; 
$result = mysqli_query($con,$query); 
$query_dislike = "SELECT idGivenLike, nickname, magic FROM tbl_check_like"; 
$resultDislike = mysqli_query($con,$query_dislike); 
$photoIDdislike; 
$photoID; 
while($photoID = mysqli_fetch_assoc ($result)) 
{ 
    if(mysqli_fetch_assoc($resultDislike)!= null) 
    { 
     while($photoIDdislike = mysqli_fetch_assoc($resultDislike)) 
     { 
       //checks if both of results 
      if($photoID["ID"] == $photoIDdislike["idGivenLike"])   
       { 
       if($photoIDdislike["magic"] == 1) 
       { 

        echo '<a href=img/'.$photoID["ID"].'.php><img src="uploads/'.$photoID["ID"].'.jpg" alt="Picture" class="photo" width="800" height="600"/></a> 
         </br> 
         התמונה הועלתה על ידי '.$photoID["nickname"].' 
           <form action="unlike.php" method="POST" > 
           <input type="image" src="img/unlike.png" width="20" height="20" name="submit" value="'.$photoID["ID"].'"/> 
           לייקים:'.$photoID["photoLikes"].' 
           </form> 
           '; 

       } 
       } 
     } 
    } 
    else 
       echo '<a href=img/'.$photoID["ID"].'.php><img src="uploads/'.$photoID["ID"].'.jpg" alt="Picture" class="photo" width="800" height="600"/></a> 
            </br> 
            התמונה הועלתה על ידי '.$photoID["nickname"].' 
              <form action="like.php" method="POST" > 
              <input type="image" src="img/like.jpg" width="20" height="20" name="submit" value="'.$photoID["ID"].'"/> 
              לייקים:'.$photoID["photoLikes"].' 
              </form> 
              '; 



} 
?> 

Ma structure db: tbl_check_like: idGivenLink | surnom | magie (dit s'il a donné comme)

tbl_photo: ID | photoName | photoLikes | photoLink | photoDeleteLink

+0

Ceci est impossible de répondre, veuillez publier la structure de votre base de données. – matt3141

+0

Si l'expression dans le if retourne toujours false, vous devriez déboguer votre chemin pour voir pourquoi votre variable magique n'est pas définie à un. – Renan

+0

@ matt3141 J'ai ajouté ma structure db (toutes les colonnes chaque db). ID - idGiveLink est l'ID de la photo – Yoni

Répondre

0

Diagnostiquer ce problème ne devrait pas être trop difficile. var_dump la valeur de $photoIDdislike["magic"]. Vous devrez ensuite suivre l'un des quelques cours d'action.

  1. Si la valeur est différente de vos attentes, par exemple, il est égal à 0, il n'y avait pas de problème dans votre logique d'application pour commencer. Bien sûr, dans ce cas, votre vérification d'égalité peut devoir être modifiée.
  2. Si la sortie correspond à ce que vous attendiez, vérifiez le type de données, c'est-à-dire qu'il s'agit en fait d'un nombre.
  3. S'il n'y a rien d'imprimé, même après avoir vérifié qu'il ne s'agit pas d'une chaîne vide en faisant echo 'var_dump:'; var_dump(...);, la condition préalable n'est jamais remplie, c'est-à-dire $photoID["ID"] == $photoIDdislike["idGivenLike"].

Le code pour le test.

if($photoID["ID"] == $photoIDdislike["idGivenLike"]) { 
    echo "var_dump:\n"; 
    var_dump($photoIDdislike["magic"]); 
    if($photoIDdislike["magic"] == 1) { 
     // ... 
    } 
} 
Questions connexes