Bonjour,

Je développe un site contenant des sessions ou on peut par exemple ajouter des artistes et les rechercher en fonction d'un mot clé.

Je vous présente mes 3 tables:

Nom : Capture d’écran 2015-11-24 à 13.26.51.png
Affichages : 152
Taille : 142,3 Ko
Nom : Capture d’écran 2015-11-24 à 13.27.12.png
Affichages : 145
Taille : 74,8 Ko
Nom : Capture d’écran 2015-11-24 à 13.27.31.png
Affichages : 144
Taille : 64,4 Ko
Cette dernière grâce aux contraintes de clés étrangère, me sert à lié mon id_membre et mon id_artiste.

Comme vous pouvez le constater, le membre avec l'id 5 à 3 artiste alors que le membre avec l'id 7 à 2 artistes.
Nom : Capture d’écran 2015-11-24 à 13.57.14.png
Affichages : 141
Taille : 31,7 Ko


Pour afficher la liste des artistes à une session propre, cela fonctionne:

Le modèle:
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
 
<?php
try 
{
    $hostname = 'localhost';
	$user = 'root';
	$pass='root';// sous windows mettre '';
	$dbh = new PDO("mysql:host=$hostname;dbname=mediadb", $user, $pass);
	$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);	
 
    $sql = 'select * FROM artistes,membres_artistes WHERE id_membres='.$_SESSION["id"].' AND id_artistes=artistes.id';
    $stmt = $dbh->query($sql);
 
	$records = array();
 
 
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {
		$records[] = $row; // Tableau 2 dimensions   
    }
}
 
catch(PDOException $e)
{
    echo "Error: " . $e->getMessage();
}
 
?>
La vue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 <?php
 echo "<h3> Votre liste d'artistes: </h3>";
 
 foreach($records as $record)
 {
        echo "<a href = '?section=list&id={$record["id"]}'>"; 
        echo $record['prenom'];     
        echo '-'.$record['nom'].'<br/>';
		echo '</a>';
	}	
		?>
Par contre J'ai beaucoup de mal en ce qui concerne la requête pour le modèle de recherche.

J'avais ceci qui fonctionne très bien mais m'affiche tout les artistes de tout les membres lorsqu'on submit sans mot clé dans le formulaire de recherche;
(Ce qui est normal car je SELECT * FROM artistes.)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
if(isset($_POST["keyword"]))
			{  
			$sql = "SELECT * FROM artistes WHERE nom LIKE'%".$_POST["keyword"]."%'OR prenom LIKE'%".$_POST["keyword"]."%'OR surnom LIKE'%".$_POST["keyword"]."%' ";
			$stmt = $dbh->query($sql); 
 
			$records = array();
 
				while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
					{
					$records[] = $row; // Tableau 2 dimensions
					}


Alors j'essais de relier ces deux requête en une :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$sql = "SELECT * FROM artistes WHERE nom LIKE'%".$_POST["keyword"]."%'OR prenom LIKE'%".$_POST["keyword"]."%'OR surnom LIKE'%".$_POST["keyword"]."%' ";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$sql = "SELECT * FROM artistes,membres_artistes WHERE id_membres=".$_SESSION['id']." AND id_artistes=artistes.id";
Lorsque je fonde ces 2 requêtes en une, cela m'affiche 5 fois la liste des artistes de tout les membres...

Je pense avoir un problème de logique...

Est-ce que quelqu'un pourrait m'aider s'il vous plaît ?

Merci