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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 28 mars 2010 à 18:10
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 28 mars 2010 à 18:10
A voir également:
- Requete sql commence par
- Sql commence par ✓ - Forum Webmastering
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Requête sql pix - Forum Python
- Blob sql ✓ - Forum Webmastering
- Récupération serveur sql - Télécharger - Gestion de données
8 réponses
avion-f16
Messages postés
19246
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
4 497
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
19246
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
4 497
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
19246
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
4 497
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
19246
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
4 497
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.