Soucis requête mysql : données commençant par
Fermé
Kir4
-
Modifié par Kir4 le 21/03/2010 à 20:27
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 - 28 mars 2010 à 18:10
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 - 28 mars 2010 à 18:10
A voir également:
- Sql commence par
- [MySQL] Select "commencant par" ✓ - Forum Webmastering
- Excel commence par ✓ - Forum Bureautique
- Blob sql ✓ - Forum Webmastering
- Sql (+) - Forum Programmation
- Numero qui commence par 09 ✓ - Forum Mobile
8 réponses
avion-f16
Messages postés
19125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 mars 2023
4 468
21 mars 2010 à 20:42
21 mars 2010 à 20:42
$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
avion-f16
Messages postés
19125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 mars 2023
4 468
21 mars 2010 à 21:02
21 mars 2010 à 21:02
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
avion-f16
Messages postés
19125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 mars 2023
4 468
21 mars 2010 à 21:34
21 mars 2010 à 21:34
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
avion-f16
Messages postés
19125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 mars 2023
4 468
28 mars 2010 à 18:10
28 mars 2010 à 18:10
Inutile de mettre des parenthèses autour de la requête.
En fait je n'avais pas fait de fautes : CCM à remplacer mes accents graves seuls par de simples apostrophes, ce qui a provoqué une erreur de syntaxe.
En fait je n'avais pas fait de fautes : CCM à remplacer mes accents graves seuls par de simples apostrophes, ce qui a provoqué une erreur de syntaxe.