Probleme smarty PHP [Résolu]

Haldarion 102 Messages postés samedi 4 août 2012Date d'inscription 18 janvier 2018 Dernière intervention - 7 janv. 2018 à 00:37 - Dernière réponse : Haldarion 102 Messages postés samedi 4 août 2012Date d'inscription 18 janvier 2018 Dernière intervention
- 7 janv. 2018 à 15:14
Bonjour, j'utilise une méthode MVC, et j'ai un petit problème, j'aimerai afficher le contenue d'un tableau, mais je n'arrive qu'à montrer la première variable. J'ai testé la requète SQL et elle me retourne bien tout ce qu'il me faut mais je n'arrive pas à afficher ce que je veux.

Code TPL :

{section loop = $data name = "test" }

<option>{$data['unites']}</option>

{/section}

Code php


$requnite = mysql_query("SELECT `UNI_LABEL` FROM `t_unite_uni`");
    
    $unites = mysql_fetch_assoc($requnite);
        $data['unites'] = $unites['UNI_LABEL'];



Merci !
Afficher la suite 

4 réponses

Répondre au sujet
jordane45 19721 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 janvier 2018 Dernière intervention - 7 janv. 2018 à 10:41
0
Utile
1
Bonjour,

Tu ne charges pas ton tableau... tu ne lui assignes qu'une seule valeur
 $unites = mysql_fetch_assoc($requnite);
        $data['unites'] = $unites['UNI_LABEL'];

Il faudrait que tu places ce code dans un while

 while( $unites = mysql_fetch_assoc($requnite)){
        $data['unites'][] = $unites['UNI_LABEL'];
 }



NB : - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
http://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

Si tu choisis PDO, pense à activer la gestion des erreurs : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
Haldarion 102 Messages postés samedi 4 août 2012Date d'inscription 18 janvier 2018 Dernière intervention - 7 janv. 2018 à 14:46
Bonjour et tout d'abord merci, j'avais déjà testé ainsi mais j'obtient en erreur, "Array to string convertion", Je ne sais pas trop comment corriger ça.

Je sais que c'est du php5, mais c'est un projet de cours, et le cours est en php 5.0 donc je ne peux que m'y adapter :/ Merci tout d'avance !
Commenter la réponse de jordane45
jordane45 19721 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 janvier 2018 Dernière intervention - 7 janv. 2018 à 15:10
0
Utile
1
Tu as initié la variable $data AVANT de t'en servir ?

Avant ta boucle il faut l'initialiser en tant qu'array :
$data = array();



Je sais que c'est du php5, mais c'est un projet de cours, et le cours est en php 5.0 donc je ne peux que m'y adapter :/

Oui et ?
PDO / Mysqli .. ça existe déjà en php5

L'extension mysql_* ... c'est du php2...
http://php.net/manual/fr/mysqlinfo.api.choosing.php


Haldarion 102 Messages postés samedi 4 août 2012Date d'inscription 18 janvier 2018 Dernière intervention - 7 janv. 2018 à 15:14
C'est bon ! Je viens de regler le soucis, j'ai procédé autrement; je suis passé par un foreach dans mon tpl

{foreach key=key item=contact from=$data['infos']}

<option>{$contact['unites']}</option>

{/foreach}

et ainsi pour le php

   while($unitesinfos = mysql_fetch_assoc($requnite)){
$user['unites'] = $unitesinfos["UNI_LABEL"];
$data['infos'][] = $user;
}


Merci tout de même !
Commenter la réponse de jordane45