sql_fetch_all : un array que je n'arrive pas à afficher...

Bonjour tout le monde,

je viens suite à de nombreuses tentatives infructueuses sur l’utilisation de php fetch_all et ici de spip sql.

j’utilise ceci :

$res = sql_select(’*’, ‹ inscriptions ›);
$all = sql_fetch_all($res);

puis fais un foreach :

foreach($all as $result){
echo $result;
}

probleme : le resultat affiché en html est ‹ Array() › … je souhaiterai que mon fetch_all affiche l’ensemble de mes colonnes et lignes sans renseigner le nom des colonnes : générée de façon automatique … si c’est possible ?

merci d’avance pour toute réponse/suggestion :slight_smile:

Bonsoir,

déjà on pourrait utiliser sql_allfetsel - Programmer avec SPIP 4.0 pour simplifier le code.
Ensuite, pourquoi ne pas faire $result['colonne'] ? tu ne les connais pas à l’avance ?
Sinon il faut tester avec sql_showtable - Programmer avec SPIP 4.0 pour avoir tes champs mais cela complique le code je pense.

Coucou Pierre et merci de ta réponse :slight_smile:

je vais voir ça … le pire c’est que je cherchais une soluce pour justement avoir les noms de table mais dans le listing je n’avais pas vu showtable ^^

je test et reviens ici :slight_smile:

merci :slight_smile: :wink:

Pour expliquer mon problème, je souhaite afficher l’ensemble des informations d’une de mes tables, ici c’est la table ‹ inscriptions › :
les noms des colonnes varient en fonction des agissements de mon client : en plus en moins ( le client peut via son espace privé ajouter/supprimer des colonnes en fonction de ses besoins) : il me faudrait pourvoir récupérer de façon automatique les ‹ noms des colonnes › puis afficher toutes les lignes de chaque colonne dans un tableau html …

j’essaye en vain de récupérer toutes ces informations mais je bute sur la méthode :frowning:

Si u ne connais pas d’avance le nom des colonnes, tu peux aussi utiliser une boucle data avec une source sql.
Par exemple :

<BOUCLE_lignes(DATA) {source sql, select * from inscriptions}>

Dans cette boucle, #VALEUR te donne un tableau associatif avec des paires nom de colonne → valeur.
Ensuite tu peux imbriquer une autre boucle pour afficher tout ça.

<BOUCLE_lignes(DATA) {source sql, select * from inscriptions} {"<hr>"}>
<BOUCLE_ligne(DATA) {source table, #VALEUR} {"<br>"}>
#CLE : #VALEUR
</BOUCLE_ligne>
</BOUCLE_lignes>

C’est juste pour le principe, après c’est à adapter pour construire ton tableau avec les noms des colonnes dans le thead, etc.

Edit : la doc → Les itérateurs de SPIP - la boucle (DATA) - SPIP

Autre exemple pour faire un tableau (remplace spip_articles par ta table) :

<div class="table-responsive">
    <table class="table">
        <thead>
            <tr>
                <BOUCLE_thead(DATA) {source sql, select * from spip_articles} {0,1}>
                <BOUCLE_th(DATA) {source table, #VALEUR} {par cle}>
                <th>#CLE</th>
                </BOUCLE_th>
                </BOUCLE_thead>
            </tr>
        </thead>
        <tbody>
            <BOUCLE_lignes(DATA) {source sql, select * from spip_articles} {0,10}>
            <tr>
                <BOUCLE_ligne(DATA) {source table, #VALEUR} {par cle}>
                <td>#VALEUR</td>
                </BOUCLE_ligne>
            </tr>
            </BOUCLE_lignes>
        </tbody>
    </table>
</div>

Bonsoir TcharIss,

merci pour ces réponses, je vais tester :slight_smile:

Ouinnnnnnn … j’essaye par tous les moyens depuis + d’un jour en sql pdo, en spip et tu m’apportes la soluce en 2/3 mouvements xD

Merci beaucoup, tu m’enlèves une belle épine ^^

exellent en tout cas ces informations : #VALEUR et #KEY + la gestion des boucles avec ‹ {source sql, select} › et DATA ^^

Mille mercis comme dab :slight_smile: :slight_smile: