Probleme smarty PHP

Résolu/Fermé
Haldarion Messages postés 121 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 21 octobre 2018 - 7 janv. 2018 à 00:37
Haldarion Messages postés 121 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 21 octobre 2018 - 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 !
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
7 janv. 2018 à 10:41
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
0
Haldarion Messages postés 121 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 21 octobre 2018 21
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 !
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
7 janv. 2018 à 15:10
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


0
Haldarion Messages postés 121 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 21 octobre 2018 21
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 !
0