Soucis requête mysql : données commençant par
Kir4
-
avion-f16 Messages postés 20367 Statut Contributeur -
avion-f16 Messages postés 20367 Statut Contributeur -
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
page1.php
page2.php
question subsidiaire: je voudrais aussi pouvoir obtenir le nombre d'entrée commençant par la lettre sur laquelle j'aurais cliqué auparavant
voila j'espère que vous aurez compris mon problème et qu'il n'a pas deja été abordé ailleurs sur le forum
merci d'avance
Kir4
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
page1.php
<a href="page2.php?lettre=a" title="">A</a>
page2.php
mysql_connect("localhost", "root", "");
mysql_select_db("nomdemabase");
try
{
$bdd = new PDO('mysql:host=localhost;dbname=nomdemabase', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare("SELECT * FROM titre WHERE nom LIKE ?% ORDER BY id DESC'");
$req->execute(array($_GET['lettre']));
while ($donnees = $req->fetch())
{echo $donnees['nom'];
}
mysql_close();?>
question subsidiaire: je voudrais aussi pouvoir obtenir le nombre d'entrée commençant par la lettre sur laquelle j'aurais cliqué auparavant
voila j'espère que vous aurez compris mon problème et qu'il n'a pas deja été abordé ailleurs sur le forum
merci d'avance
Kir4
A voir également:
- Requete sql commence par
- Excel commence par - Forum Bureautique
- Excel si commence par ✓ - Forum Excel
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Logiciel sql - Télécharger - Bases de données
- Bonjour je cherche la réponse à la devinette svp ✓ - Forum Loisirs / Divertissements
8 réponses
$bdd->prepare("SELECT * FROM titre WHERE nom LIKE ?% ORDER BY id DESC'");Que vient faire l'apostophe après le "DESC" ?
Et si j'ai bien compris ta question, tu aimerais savoir le nombre d'entrée que retourne la requête ci-dessus ?
euh oui , c'est bien ça : afficher et compter les entrées
et mis a part l'apostrophe c'est censé fonctionner?
merci pour ta réponse
Kir4
et mis a part l'apostrophe c'est censé fonctionner?
merci pour ta réponse
Kir4
Déjà je ne comprends pas pourquoi tu fais un mysql_connect (et mysql_close) alors que tu utilises PDO ...
Ta requête retournera tous les articles dont le titre contient la lettre sélectionnée.
Et si j'ai bien compris, tu aimeras les titres qui commencent par cette lettre ? Si oui, il faudra utiliser une regex, ou la fonction SUBSTRING()
Ta requête retournera tous les articles dont le titre contient la lettre sélectionnée.
Et si j'ai bien compris, tu aimeras les titres qui commencent par cette lettre ? Si oui, il faudra utiliser une regex, ou la fonction SUBSTRING()
<?php
/* Instanciation de PDO */
try {
$pdo = new PDO('mysql:host=localhost;dbname=nomdemabase', 'root', '');
} catch(PDOException $e) {
echo 'Erreur n°'.$e->getCode().': '.$e->getMessage().'<br/>'."\n";
die();
}
/* Préparation et exécution de la requête */
$sql = 'SELECT * FRIM '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();
?>Je n'ai pas essayé, mais ça devrait aller.
merci beaucoup pour ta réponse
oui il doit sans doute y avoir des lignes qui doivent te paraitre bizarre , c'est parce que je débute alors je prend des morceau de code par-ci par-là =/
je viens de tester ton code :
Parse error: parse error in C:\wamp\www\Nouveau dossier\testanime.php on line 137
ce qui correspond a la ligne :
$req->execute(array(':lettre' => $_GET['lettre']));
je vais essayer de trouver ce qui ne va pas ...
merci beaucoup =)
Kir4
oui il doit sans doute y avoir des lignes qui doivent te paraitre bizarre , c'est parce que je débute alors je prend des morceau de code par-ci par-là =/
je viens de tester ton code :
Parse error: parse error in C:\wamp\www\Nouveau dossier\testanime.php on line 137
ce qui correspond a la ligne :
$req->execute(array(':lettre' => $_GET['lettre']));
je vais essayer de trouver ce qui ne va pas ...
merci beaucoup =)
Kir4
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne vois aucune erreur de syntaxe.
Par contre, j'ai mis "FRIM" au lieu de "FROM" dans la requête SQL.
Par contre, j'ai mis "FRIM" au lieu de "FROM" dans la requête SQL.
bonjour,
en remplacant cette ligne:
$sql = 'SELECT * FRIM 'titre' WHERE SUBSTRING('nom', 0, 1) = :lettre ORDER BY 'id' DESC';
par celle -ci:
$sql = ("SELECT * FRIM 'titre' WHERE SUBSTRING('nom', 0, 1) = :lettre ORDER BY 'id' DESC");
plus 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
je ne comprend pas d'où viens le problème =/
merci Kir4
en remplacant cette ligne:
$sql = 'SELECT * FRIM 'titre' WHERE SUBSTRING('nom', 0, 1) = :lettre ORDER BY 'id' DESC';
par celle -ci:
$sql = ("SELECT * FRIM 'titre' WHERE SUBSTRING('nom', 0, 1) = :lettre ORDER BY 'id' DESC");
plus 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
je ne comprend pas d'où viens le problème =/
merci Kir4
apres quelques modifications ça marche
voici la solution pour ceux qui aurons le meme probleme que moi :
Kir4
voici la solution pour ceux qui aurons le meme probleme que moi :
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=mangabulle', 'root', '');
} catch(PDOException $e) {
echo 'Erreur n°'.$e->getCode().': '.$e->getMessage().'<br/>'."\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();
?>
Kir4