nader19
Messages postés18Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention12 août 2008
-
30 juin 2008 à 12:41
nader19
Messages postés18Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention12 août 2008
-
30 juin 2008 à 16:17
nader19
Messages postés18Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention12 août 2008 30 juin 2008 à 14:33
désolé j'ai pas rzmarqué que j'ai ecris n'a pas été validé
Bonjour,
j'ai probleme un peu compliqué mais je me bloque et je trouve pas solution
en fete j'utilise PDO pour connexion avec mysql et smart comme moteur template
je me bloque dans une requete précise .
j'ai 1 table ou ou il ya 1 champs pour date . bien sur je pêux avoir milliers de lignes dans cete table
la requete que je veux la faire est parcourir cette table voir toutes les années existantes dans champs date puis affiche des liens par exemple: 2007----2008------2009 que lorsque on clique dessus une autyre requete va etre déclanché avec conditions de l'année . c'est a dire la requete a trouvé qu'il ya annee 2007 et annee 2008 et annee 2009..
j'ai utilisé requete suivante:
$requete_prepare_1=$connexion->prepare("select year(date) as date "); // on prépare notre requête
$requete_prepare_1->execute(array( 1 ));
$lignes=$requete_prepare_1->fetch(PDO::FETCH_OBJ);
$lignes->date.'
';
mais il affiche que la derniere ligne de la table
et aussi j'arrive pas a afficher résultat de PDO dans moteur tempate smarty surtout si'il s'agit de stoker tableau ou résultat de sql avec plusieurs résultats.
qu'elqu'un a une idée
merçi d'vance.
<!-- / message -->
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 juin 2008 à 14:48
Salut,
"mais il affiche que la derniere ligne de la table "
C'est normal : tu ne récupère qu'une seule ligne, puisque tu n'executes qu'un seule fois la méthode fetch().
Utilise fetchAll() au lieu de fetch().
La méthode fetchAll() retourne un tableau avec tous les résultats (ce qui est quand même plus intéressant que de boucler sur fetch())
"et aussi j'arrive pas a afficher résultat de PDO dans moteur tempate
smarty surtout si'il s'agit de stoker tableau ou résultat de sql avec
plusieurs résultats."
Dans Smarty, tu peux boucler sur un tableau. En l'occurrence, tu as récupéré un tableau avec fetchAll(), il te suffit de l'assigner à une variable de Smarty :
nader19
Messages postés18Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention12 août 2008 30 juin 2008 à 15:05
merçi pour votre réponse
j'ainessayé cette méthode fetch all
et voilà erreur
Fatal error: Cannot use object of type stdClass as array in C:\Program Files\EasyPHP 2.0b1\www\SI\RH\index.php on line 34
et voila la requete:
$requete_prepare_1=$connexion->prepare("select year(date_debut) as date from atm_2008");
$requete_prepare_1->execute(array( 1 ));
$lignes=$requete_prepare_1->fetchAll(PDO::FETCH_OBJ);
foreach ($lignes as $row)
{
echo $date = $row['date'];
}
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 juin 2008 à 15:29
Avec l'option PDO::FETCH_OBJ PDO va nécessairement retourne un objet.
Il faut utiliser PDO::FETCH_ASSOC pour que PDO retourne un tableau (ou PDO::FETCH_NUM ou encore laisser la valeur par défaut)
cela affiche toute les dates de la table. mais moi j'ai besoin qu'apres parcours de la table il va trouver les années x et y et afficher des liens href
par exemple 2007-2008-2009