Bonjour,

J'ai créé des fonctions j'aime / je n'aime pas. J'essaie maintenant de les mettre en relation pour permettre d'annuler le "j'aime" ou "je n'aime pas" lorsqu'on on choisi l'autre... Ca permet ainsi d'en avoir un seul choisi à la fois

J'ai créé 2 tables SQL pour cela, une pour j'aime, l'autre pour je n'aime pas.

En gros, maintenant, mon problème est que la fonction est mal utilisée ou écrite car rien ne se passe ou bien les liens disparaissent..

Voici la fonction qui pose problème (Soyez indulgent face à mon inexpérience ) :

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
 
 
if(!function_exists('is_already_liked_or_disliked')){
	function is_already_liked_or_disliked($micropost_id){
 
		if(!empty($_GET['id'])){
			if(has_already_liked_micropost($_GET['id'])){
				$q = $db->prepare('DELETE FROM micropost_like 
									WHERE user_id = :user_id 
									AND micropost_id = :micropost_id');
				$q->execute([
					'user_id' => get_session('user_id'),
					'micropost_id' => $_GET['id']
				]);
 
				$q = $db->prepare('UPDATE microposts SET like_count  = like_count - 1 
					WHERE id = :micropost_id');
				$q->execute([
					'micropost_id' => $_GET['id']
				]);
			} 
 
 
		}else{
 
		if(!empty($_GET['id'])){
 
			if(has_already_disliked_micropost($_GET['id'])){
				$q = $db->prepare('DELETE FROM micropost_dislike 
									WHERE user_id = :user_id 
									AND micropost_id = :micropost_id');
				$q->execute([
					'user_id' => get_session('user_id'),
					'micropost_id' => $_GET['id']
				]);
 
				$q = $db->prepare('UPDATE microposts SET dislike_count  = dislike_count - 1 
					WHERE id = :micropost_id');
				$q->execute([
					'micropost_id' => $_GET['id']
				]);
			} 
		}
 
	}
 
}
 
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
          <li>
            <?php if(is_already_liked_or_disliked($microposts->m_id)): ?>
              <?php if(has_already_disliked_micropost($microposts->m_id)): ?>  
                <a id="undislike<?= $microposts->m_id?>" data-action="undislike" class="like btn btn-warning unlocked_inactive" href="undislike_micropost.php?id=<?= $microposts->m_id ?>"><i class="fa fa-thumbs-down"></i></a>
              <?php else: ?>
                <a id="dislike<?= $microposts->m_id?>" data-action="dislike" class="like btn btn-default unlocked_inactive" href="dislike_micropost.php?id=<?= $microposts->m_id ?>"><i class="fa fa-thumbs-down"></i></a>
              <?php endif; ?>
            <?php endif ?>
          </li>

Merci d'avance pour votre aide!