Probleme smarty PHP
Résolu
Haldarion
Messages postés
144
Statut
Membre
-
Haldarion Messages postés 144 Statut Membre -
Haldarion Messages postés 144 Statut Membre -
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
Merci !
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 !
2 réponses
-
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.
https://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
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
-
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...
https://www.php.net/manual/fr/mysqlinfo.api.choosing.php

-
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 !
-