[script php-mysql] afficher prenom like A%

[Résolu/Fermé]
Signaler
-
 Utilisateur anonyme -
Voila j'ai une base de donnée avec une table ou ya des information sur des personnes..
et je veux les trier par ordre alphabétique

perso.php --> Lien vers lettre_perso.php?lettre=A ou B ou C .....
lettre_perso.php--> Affiche tout les noms qui commence par A

Exemple:
Donnée: Ma Table = personnage ||| le champ = prenom

mon script :

<?php
$lettre = $_GET['lettre'];
$base = Mysql_connect("", "", "");
Mysql_select_db ('naruto', $base);
$sql = 'SELECT * FROM personnage WHERE prenom LIKE ''.$lettre.'%' ';
$req = mysql_query($sql) or die ('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());

while ($data = mysql_fetch_array($req))
{
?>
<p><a href="choix_perso.php?nom=<?php echo $data['prenom']; ?>"><?php echo $data['prenom'];?></a></p>
<?php
}
mysql_free_result ($req);
mysql_close ();
?>


Question :

sa m'affiche un erreur et j'ai bo chercher je ne la trouve pas :S pourriez vous m'aidez

Merci d'avance au future répondeur :D

16 réponses


Oui merci Beaucoup pour ton aide j'ai juste un autre soucis :S

je dois trier que le prenom commence par S mais je dois prendre aussi la valeur du champ nom

donc je voudrais que sa m'affiche

Prénom Nom ---> mais que le Like 'S%' ne fasse effet que sur le prénom :S
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
Bonjour,
il y a un problème en tre tes ' et tes " ici: ''.$lettre.'%' '

bas la donnée du like dois se tenir entres des crochet --> LIKE ''

après je dois faire une concaténisation de la variable $lettre et après je dois rajouter le % pour dire que je veux la lettre suivit de tout les caractère possible..

donc sa fais

'.. LIKE ' ' . . '% ' '

il faut aussi rajouter les ' ' des la requêt mysql :S
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
j'aurais plutôt vu ça comme ça
''.$lettre.'%' " ';

les " sont :

2x ' ou 1x " ?
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
1x"

je pensais aussi
prendre la variable lettre et faire une variable ou il y aurais le % dedans

Genre

$lettre = $_GET['lettre'];
$rechlettre = ' ' . $lettre . ' % ';

et mettre $rechlettre dans LIKE sans devoir se casser la tête ?

est ce que mon idée parrais bonne ?
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
Je ne sais si ce genre de concaténation marche mais essai

:S

Ya plus d'erreur mais sa m'affiche sa ....
______________________________________________

Erreur SQL !
SELECT * FROM personnage WHERE prenom LIKE S%
Erreur de syntaxe près de '%'

_____________________________________________

LIKE ' . $rechlettre . '

Sa s'utilise bien comme sa le LIKE non?
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
je comprend pas LIKE S%

Bah sa sélection la valeur (le prénom) qui a S suivi d'autre caractére

donc sa sélectionne le prenom qui commence par S
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
oui normalement c'est bien LIKE 'S%'

xD comme quoi deux petite caractère peuvent nous prendre des heures et des heures ...

se n'ai pas LIKE ' . $variable . '

Mais LIKE " ' . $variable . ' "


Le Like c'est Like "" et pas Like ' '
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
c'est ce que j'avais dis un problème de guillemet^^ toujours les mêmes problèmes
Messages postés
672
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
132
bah c'est bon comme tu l'as écrit le like ne prend effet que sur le prénom et non sur le nom

Super sa marche bien :D en tout que a merci beaucoup

je peux enfin mettre se topic résolus xD YEEESS