|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
Bonjour
J'ai recherché sur le forum et sur gg une solution mais il n'y a rien qui fonctionne... Je veux récupérer le dernier enregistrement d'une table. La solution qui m'affiche quelque chose est : Code sql :
Seulement ça m'affiche le bon id (le dernier) mais le reste des infos ne sont pas bonnes (il s'agit de la première ligne)... Je n'ai peut-être pas tout compris à l'utilisation de cette requête Merci d'avance |
||
|
00
|
|
|
#2 | ||
![]() ![]() |
Tu mélanges une fonction de groupage (MAX) avec des colonnes sans groupage et sans GROUP BY dans la requête. Du coup, comme MySQL est mauvais et accepte cette requête alors qu'elle est fausse, il donne des résultats faux !
Pour en savoir plus, un petit cours de SQLPro. Code sql :
Au passage, remarque aussi que j'ai entouré la colonne mal nommée 'date' par des apostrophes inversées car date est un mot réservé du langage SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
||
|
10
|
|
|
#3 |
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
Ok, merci.
J'avais pourtant trouvée cette requête sur le forum et qui devait permettre de récupérer le dernier enregistrement de la base... Par contre, mon var_dump me donne ça : Code :
array(1) { [0]=> array(1) { ["id_customer"]=> string(2) "26" } } Avec ça : il me renvoi rien |
|
00
|
|
|
#4 |
![]() ![]() |
Commence par donner ta vraie requête.
Ensuite, "Presta et donc Smarty", moi pas connaître et on sort du forum MySQL pour aller dans PHP&MySQL. C'est de l'exploitation et de la présentation des données retournées par la requête, ce n'est plus du SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|
00
|
|
|
#5 | |||
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
Voici ma requête :
Code sql :
Citation:
Merci pour ton aide ! |
|||
|
00
|
|
|
#6 | |||
![]() ![]() |
C'est bien ce que je pensais : comme tu ne sélectionnes que a.id_customer, ton var_dump ne retourne que id_customer ; normal !
Regarde ma requête : Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|||
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
Oui, désolée je n'ai pas précisé, c'est fait exprès, je n'ai besoin que du id_customer (les autres c'était pour vérifié si ma requête fonctionnait).
Ce que je trouvais bizarre, c'est que mon var_dump me renvoi un tableau dans un tableau : Code :
array(1) { [0]=> array(1) { ["id_customer"]=> string(2) "26" } } |
|
00
|
|
|
#8 |
![]() ![]() |
Donne l'ensemble du code PHP qui lance la requête et jusqu'au var_dump.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|
00
|
|
|
#9 | ||||
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
C'est un peu différent du php normal car on est en mvc. J'ai trouvé la réponse sur le forum de Prestashop, il faut faire un foreach.
Voici l'ensemble de mon code : Dans le .php Code :
Code :
PS : par contre, je n'ai toujours pas compris pourquoi il y avait 2 tableaux imbriqué |
||||
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : septembre 2006 Messages : 101 ![]() |
Alors avez-vous réussi à afficher votre dernier enregistrement?
__________________
Besoin d'un prestataire? creation site web |
|
|
00
|
|
|
#11 | |||||
![]() ![]() |
Je ne sais pas comment ça fonctionne sous Smarty/prestashop mais en PHP classique, le résultat de mysql_query est un tableau de tableaux :
Code :
Citation:
Le second array à l'intérieur du premier contient le détail de chaque ligne, exprimée par un indice numérique classique de 0 à n + un indice par nom de colonne de résultat de la requête. Ensuite on fait un mysql_fetch_array pour extraire chaque ligne de résultat, soit dans une boucle while si la requête retourne plus d'une ligne, soit simple si elle n'en retourne qu'une, ce qui est le cas ici. Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|||||
|
10
|
|
|
#12 |
|
Futur Membre du Club
![]() Intégratrice Web Inscription : mai 2007 Messages : 54 ![]() |
Oui, il fallait faire un foreach. Ce qui doit revenir à ce que dit CinePhil :
Merci de ton aide CinePhil, j'ai compris pourquoi il y avait 2 tableaux ^^ |
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Étudiant Inscription : avril 2012 Messages : 609 ![]() |
Bonjour,
la fonction mysql_query() renvoi une ressource qui n'est PAS exploitable directement, pour pouvoir exploiter le résultat de mysql_query() il faut obligatoirement utiliser la fonction mysql_fetch_***() (fetch_array(), fetch_row, ... selon le besoin), le résultat que vous avez(tableau avec chaque ligne de résultat dans un sous-niveau du tableau) est similaire à ce que la fonction PDO fetchAll() renvoi, cette fonction n'est pas disponible avec l'API mysql_ cepandant il suffit que la fonction Db::getInstance()->ExecuteS() que vous utilisez imite cette fonction : Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com