Soucis requête mysql : données commençant par la lettre ...

kira9 Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 28 mars 2010 - 27 mars 2010 à 21:06
kira9 Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 28 mars 2010 - 28 mars 2010 à 16:05
bonjour,
voila , j'ai deux pages sur mon site : l'une qui contient l'alphabet avec des liens sur chaque lettres , une autre où je voudrais afficher toutes les données comencant par la lettre sur laquelle j'ai cliqué sur la page precedente
exemple:
sur page1 je clique sur la lettre A la page2 affiche toutes mes donnes commencant par la lettre A
je souhaite egalement afficher le nombre d'entrées correspondant a la requete
voici ce a quoi je suis parvenu :

page1
[page2.php?lettre=a A]





page2
<?php
/* Instanciation de PDO */
try {
$pdo = new PDO('mysql:host=localhost;dbname=nomdemabase', 'root', '');
} catch(PDOException $e) {
echo 'Erreur n°'.$e->getCode().': '.$e->getMessage().'
'."\n";
die();
}

/* Préparation et exécution de la requête */
$sql ("SELECT * FROM 'titre' WHERE SUBSTRING('nom', 0, 1) :lettre ORDER BY 'id' DESC");
$req = $pdo->prepare($sql);
$req->execute(array(':lettre' => $_GET['lettre']));
$req->setFetchMode(PDO::FETCH_OBJ);

/* Nombre de résultats */
$nb = $req->rowCount();
echo 'Il y a '.$nb.' résultat(s).';

/* Affichage des titres */
while($donnees = $req->fetch()) {
echo $donnees->nom;
}

$req->closeCursor();
?>

aucune erreur n'apparait , la page s'affiche correctement
cependant quelle que soit la lettre sur laquelle je clique il est affiché :
Il y a 0 résultat(s).
alors qu'il y a bien , dans ma base , une entrée commençant par cette lettre =/

1 réponse

kira9 Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 28 mars 2010
28 mars 2010 à 16:05
j'ai finalment resolu le probleme tout seul
pour ceux qui aurons le meme probleme que moi , voici la solution :
<?php 
try {
$pdo = new PDO('mysql:host=localhost;dbname=mangabulle', 'root', '');
} catch(PDOException $e) {
echo 'Erreur n°'.$e->getCode().': '.$e->getMessage().'
'."\n";
die();
}

/* Préparation et exécution de la requête */
$sql = ("SELECT * FROM titre WHERE titresm LIKE ? ORDER BY id DESC");
$req = $pdo->prepare($sql);
$req->execute(array($_GET['lettre']."%"));

$req->setFetchMode(PDO::FETCH_OBJ);

/* Nombre de résultats */
$nb = $req->rowCount();
while($donnees = $req->fetch())
 {
}
$req->closeCursor();
?>
0
Rejoignez-nous