Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1416 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Requête d'une donnée dans BDD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête d'une donnée dans BDD

n°2240709
sparadra1
Posté le 19-10-2014 à 11:13:07  profilanswer
 

Bonjour à tous, je souhaiterais  récupérer la valeur d'une seule case dans ma BDD. Voici mon code :

Code :
  1. <?php
  2. try
  3. {
  4.     // On se connecte à MySQL
  5.     $bdd = new PDO('mysql:host=*******;dbname=********', '*******', '*********');
  6. }
  7. catch(Exception $e)
  8. {
  9.     // En cas d'erreur, on affiche un message et on arrête tout
  10.         die('Erreur : '.$e->getMessage());
  11. }
  12. // Si tout va bien, on peut continuer
  13. // On récupère tout le contenu de la table jeux_video
  14. $reponse = $bdd->query('SELECT * FROM news_accueil ORDER BY date_heure DESC LIMIT 2,3');
  15. // On affiche chaque entrée une à une
  16. while ($donnees = $reponse->fetch())
  17. {
  18. ?>
  19. <?php echo $donnees['titre']; ?>
  20. <?php
  21. }
  22. $reponse->closeCursor(); // Termine le traitement de la requête
  23. ?>


 
Mais j'obtient la titre de ma 3 et 4 ème ligne.

mood
Publicité
Posté le 19-10-2014 à 11:13:07  profilanswer
 

n°2240720
Soileh
Lurkeur professionnel
Posté le 19-10-2014 à 14:06:02  profilanswer
 

sparadra1 a écrit :

Bonjour à tous, je souhaiterais  récupérer la valeur d'une seule case dans ma BDD. Voici mon code :

Code :
  1. <?php
  2. try
  3. {
  4.     // On se connecte à MySQL
  5.     $bdd = new PDO('mysql:host=*******;dbname=********', '*******', '*********');
  6. }
  7. catch(Exception $e)
  8. {
  9.     // En cas d'erreur, on affiche un message et on arrête tout
  10.         die('Erreur : '.$e->getMessage());
  11. }
  12. // Si tout va bien, on peut continuer
  13. // On récupère tout le contenu de la table jeux_video
  14. $reponse = $bdd->query('SELECT * FROM news_accueil ORDER BY date_heure DESC LIMIT 2,3');
  15. // On affiche chaque entrée une à une
  16. while ($donnees = $reponse->fetch())
  17. {
  18. ?>
  19. <?php echo $donnees['titre']; ?>
  20. <?php
  21. }
  22. $reponse->closeCursor(); // Termine le traitement de la requête
  23. ?>
 

Mais j'obtient la titre de ma 3 et 4 ème ligne.


 :hello: !

 

Si tu veux des réponses à ta question, regarde la syntaxe de la commande SELECT en MySQL : http://dev.mysql.com/doc/refman/5.7/en/select.html
Et surtout la syntaxe de l'option LIMIT [:cupra] : [LIMIT {[offset,] row_count | row_count OFFSET offset}]

 

Quand tu écris "LIMIT 2,3", tu prends en réalité les 3 enregistrements qui se trouvent à partir du 3e : l'offset commence en effet à partir de 0.

 

:jap:


Message édité par Soileh le 19-10-2014 à 14:06:15

---------------
And in the end, the love you take is equal to the love you make
n°2240731
sparadra1
Posté le 19-10-2014 à 16:06:09  profilanswer
 

Comme je ne comprend pas très bien l'anglais j'ai traduit avec google.
c'est bien ce code là qu'il me faut ?
SET @ skip = 1; SET @ numrows = 5;
PRÉPARATION DE STMT 'SELECT * FROM tbl LIMITE,?';
EXECUTE STMT UTILISATIONskip,numrows;

n°2240732
Soileh
Lurkeur professionnel
Posté le 19-10-2014 à 16:29:32  profilanswer
 

sparadra1 a écrit :

Comme je ne comprend pas très bien l'anglais j'ai traduit avec google.
c'est bien ce code là qu'il me faut ?
SET @ skip = 1; SET @ numrows = 5;
PRÉPARATION DE STMT 'SELECT * FROM tbl LIMITE,?';
EXECUTE STMT UTILISATIONskip,numrows;


Tout dépend de ce que tu veux faire aussi  [:spamafote] : tu as écrit que tu voulais récupérer la valeur d'une seule case. C'est une seule ligne que tu veux récupérer ? Si oui, laquelle ? Celle avec une date la plus récente ? Dans ce cas, une simple requête du style devrait suffire [:cupra] :

Code :
  1. SELECT * FROM news_accueil ORDER BY date_heure DESC LIMIT 0,1



---------------
And in the end, the love you take is equal to the love you make
n°2240735
sparadra1
Posté le 19-10-2014 à 17:15:34  profilanswer
 

http://the-division.96.lt//The%20Division/Capture.jpg
 
Dans une page la valeur 1 dans une autre la valeur 2 ....
 
ps : la valeur 3 ne comprend pas la colonne date_heure. Juste lien


Message édité par sparadra1 le 19-10-2014 à 17:16:36
n°2240741
MaybeEijOr​Not
but someone at least
Posté le 19-10-2014 à 18:51:27  profilanswer
 

Après le SELECT tu as une étoile * qui veut dire que tu récupères tous les champs, il suffit de spécifier le champ que tu veux récupérer au lieu de mettre une étoile. Et comme dit, spécifier les limites :

 
Code :
  1. SELECT Nom_De_La_Colonne FROM Nom_De_La_Table ORDER BY Nom_De_La_Colonne DESC LIMIT 0,1
 

Cela veut dire que tu sélectionnes les valeurs de Nom_De_La_Colonne dans la table Nom_De_La_Table de la ligne 1+0 et des 1 suivantes.


Message édité par MaybeEijOrNot le 19-10-2014 à 18:51:51
n°2240743
sparadra1
Posté le 19-10-2014 à 19:46:54  profilanswer
 

Cela ne marche tjrs  pas car je ne souhaite pas la valeur de la premiere ligne ... ce qui fait que j'ai toujours 2 resultats

n°2240745
MaybeEijOr​Not
but someone at least
Posté le 19-10-2014 à 20:51:45  profilanswer
 

Si tu as les résultats des 2 premières lignes c'est que tu as mis en limite : 0,2.
 
C'est à dire : commencer à la ligne 1+0 et prendre 2 lignes en tout.
Ou : prendre les 2 lignes qui suivent la ligne 0.
 
Un exemple : si tu veux les lignes 7, 8 et 9 il faut mettre : LIMIT 6,3

n°2240781
sparadra1
Posté le 20-10-2014 à 12:23:15  profilanswer
 

Code :
  1. <?php
  2. try
  3. {
  4.     // On se connecte à MySQL
  5.     $bdd = new PDO('mysql:host=*********;dbname=*****', '*****', '******');
  6. }
  7. catch(Exception $e)
  8. {
  9.     // En cas d'erreur, on affiche un message et on arrête tout
  10.         die('Erreur : '.$e->getMessage());
  11. }
  12. // Si tout va bien, on peut continuer
  13. // On récupère tout le contenu de la table jeux_video
  14. $reponse = $bdd->query('SELECT titre FROM news_accueil ORDER BY titre DESC LIMIT 2,3');
  15. // On affiche chaque entrée une à une
  16. while ($donnees = $reponse->fetch())
  17. {
  18. ?>
  19. <?php echo $donnees['titre']; ?>
  20. <?php
  21. }
  22. $reponse->closeCursor(); // Termine le traitement de la requête
  23. ?>


 
 
je vous laisse voir par vous même ---> http://the-division.96.lt/The%20Division/test.php

n°2240795
kokola
!!!
Posté le 20-10-2014 à 17:16:32  profilanswer
 

Bonjour,
Sur ta page d'exemple, tu aurais voulu quoi exactement ?

mood
Publicité
Posté le 20-10-2014 à 17:16:32  profilanswer
 

n°2240884
sparadra1
Posté le 21-10-2014 à 17:58:08  profilanswer
 

Nouveaux screenshots ( le deuxième en partant du haut )


Message édité par sparadra1 le 21-10-2014 à 17:58:45
n°2241045
sparadra1
Posté le 23-10-2014 à 19:40:08  profilanswer
 

UP !

n°2241192
MaybeEijOr​Not
but someone at least
Posté le 26-10-2014 à 13:29:28  profilanswer
 

Je ne comprends pas la difficulté, là tu prends les lignes 3, 4 et 5 car tu as mis en offset 2 donc ça commence à prendre à la ligne 2+1 et tu as mis que tu voulais sélectionner 3 lignes.
 
Si tu veux juste la deuxième ligne il faut mettre un offset à 1 et un nombre de ligne à 1 soit LIMIT 1, 1.
Pour la troisième ligne faut un offset de 2 : LIMIT 2, 1
Pour la 4ème, un offset de 3 : LIMIT 3, 1
etc.
Autrement je doute que tu souhaites trier tes lignes par leur titre mais plus par rapport à leur date_heure : ORDER BY date_heure DESC


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Requête d'une donnée dans BDD

 

Sujets relatifs
Bug lors de récupération de données dans BDDIndex MySQL pas utilisé pour chaque requête [Résolu]
Requete: "CREATE TABLE truc LIKE Machin" Erreur de syntaxe !! ?CMS et visualisation de BDD
Requete Mysql complexe sur 3 tables[Réglé] [SQL] Une jointure avec le résultat de la requete
vb et mysql, requête parametresMySQL : aide pour une requête
Récuperer des lignes dans un ordre précis avec une seule requêteOracle - Requête SQL outer join
Plus de sujets relatifs à : Requête d'une donnée dans BDD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR