conflit avec noms identiques

Eléphant du PHP | 78 Messages

30 janv. 2008, 14:44

Bonjour à tous et Bonne Année ! :D

Je suis en train de mettre à jour une base de données avec des chanteurs des Années 80... et ouais, j'aime bien cette période, enfin bref. Et donc quand j'affiche la page avec la liste des chanteurs commençant par la lettre "F", j'ai bien Jean-Pierre François et Frédéric François qui apparaissent séparément : http://planet-80.com/Alpha_Artiste.php?var=F

Par contre quand je clique sur l'un ou l'autre, l'affichage me donne les deux mélangés
comme sur le lien suivant : http://planet-80.com/artiste.php?page=François

ça doit être aisé à modifier au niveau de la requête, vu qu'en fait je demande un classement alphabétique par Nom de famille. J'avais essayé de rajouter avec le prénom, mais ça ne prenait pas.

Si quelqu'un a une idée, c'est merci d'avance.
<?
				$table="artiste";
				$table= "album";

 $query = "SELECT * FROM artiste, album WHERE `album`.`Id_Art` = `artiste`.`Id_Art` AND Nom_Artiste='".$_GET['page']."' ORDER BY `album`.`Annee_Album` ASC ";
 
            
				$result = mysql_query($query);
   while ($val = mysql_fetch_array($result))
  {  
	    echo "<BR>".$val["Annee_Album"]."<BR>"."<BR>";

}
	?>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2008, 15:19

Salut,

Sur la pages des chanteurs (listing) tu dois identifier chaque par l'id de celui ci et ainsi exécuter la requête non pas à m'aide du nom de famille mais de l'id.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 78 Messages

30 janv. 2008, 15:38

Salut,

Sur la pages des chanteurs (listing) tu dois identifier chaque par l'id de celui ci et ainsi exécuter la requête non pas à m'aide du nom de famille mais de l'id.
Salut Truc et merci.
Par contre le fait de les lister comme tu le dis, ça ne va pas les mettre par ordre alphabétique, non ?
ou alors, dois-je rajouter : ORDER BY Nom_Artiste.

D'ailleurs il me semble que la requête que j'ai mise ne corresponde pas. :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2008, 16:23

oui mais non... :lol:

sur la page "Alpha_Artiste.php?var=F "
tu ne changes rien hormis l'ajout de l'id du chanteur au lien qui affiche les info d'un chanteur, donc :
http://planet-80.com/artiste.php?page=François&id=23 // 23 arbitraire ;) 
ensuite tu récupères cet id pour la requête suivante :
$query = "SELECT * FROM artiste, album WHERE `album`.`Id_Art` = `artiste`.`Id_Art` AND Id_Art='".mysql_real_escape_string($_GET['id'])."' ORDER BY `album`.`Annee_Album` ASC ";
Note l'ajout de mysql_real_escape_string() pour éviter le "piratage" (injection SQL ) de la requête.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 78 Messages

30 janv. 2008, 16:43

oui mais non... :lol:

sur la page "Alpha_Artiste.php?var=F "
tu ne changes rien hormis l'ajout de l'id du chanteur au lien qui affiche les info d'un chanteur, donc :
http://planet-80.com/artiste.php?page=François&id=23 // 23 arbitraire ;) 
ensuite tu récupères cet id pour la requête suivante :
$query = "SELECT * FROM artiste, album WHERE `album`.`Id_Art` = `artiste`.`Id_Art` AND Id_Art='".mysql_real_escape_string($_GET['id'])."' ORDER BY `album`.`Annee_Album` ASC ";
Note l'ajout de mysql_real_escape_string() pour éviter le "piratage" (injection SQL ) de la requête.
Je te remercie pour ta science. Dès que j'ai modifié je reviendrais pour te tenir au courant.

Une autre petite question quant au piratage : quel peut-il être ?
Pour être honnête, ma base n'est pas ce que l'on peut appeler un coffre-fort ou imprenable, mais (je suis peut-être naïf), quel est l'intérêt de pirater.

Ah aussi un truc que je capte pas et j'ai cherché sur le forum ainsi que dans des tutoriaux, ce sont les "apostrophes".
Voilà j'ai un groupe que j'ai enregistré : "L'affaire Louis Trio".
Les infos sont bien dans la base, mais rien n'apparaît.
J'ai essayé de plusieurs façons : L\'affaire Louis Trio ; L\\'Affaire Louis Trio ; L/'Affaire Louis Trio.

Bon tout ça pour dire que la route est encore bien longue pour que je maîtrise le Php.

En tous cas, un grand merci encore à tous ceux qui prennent sur leur temps pour répondre. :D

d0m
Mammouth du PHP | 1141 Messages

30 janv. 2008, 16:54

quel est l'intérêt de pirater.
Le même que jeter des cailloux sur des voitures qui passent ou que forcer une serrure juste pour montrer qu'on peut le faire.

Eléphant du PHP | 78 Messages

30 janv. 2008, 17:00

quel est l'intérêt de pirater.
Le même que jeter des cailloux sur des voitures qui passent ou que forcer une serrure juste pour montrer qu'on peut le faire.
Ouais... ben comment dire, y a des c*** partout !
c'est triste !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2008, 17:35

Eh oui... voilà un peu de lecture concernant l'injection SQL
J'ai essayé de plusieurs façons : L\'affaire Louis Trio ; L\\'Affaire Louis Trio ; L/'Affaire Louis Trio.
Il s'agit "d'échapper" grâce au backslash "\" les caractères qui peuvent poser souci.
Ton 1er exemple est donc le bon

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 78 Messages

30 janv. 2008, 19:12

Eh oui... voilà un peu de lecture concernant l'injection SQL
J'ai essayé de plusieurs façons : L\'affaire Louis Trio ; L\\'Affaire Louis Trio ; L/'Affaire Louis Trio.
Il s'agit "d'échapper" grâce au backslash "" les caractères qui peuvent poser souci.
Ton 1er exemple est donc le bon
Merci pour la lecture.

Donc si j'insère dans la base : L\'Affaire Louis Trio ça devrait marcher ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2008, 20:59

Hmm... ça dépend par rapport à quoi "ça" devrait marcher :-k
Mais je dirais oui :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 78 Messages

31 janv. 2008, 10:44

Hmm... ça dépend par rapport à quoi "ça" devrait marcher :-k
Mais je dirais oui :)
Ben je l'ai fait : L\'Affaire Louis Trio ... ça n'apparaît toujours pas. Mais ça doit être à cause du code, lorsque je récupère les Artistes par ordre Alpha.


Je vais d'abord les récupérer par Id du chanteur comme suggéré et puis je reviendrais donner les résultats.