8768 sujets

Développement web côté serveur, CMS

Bonjour,

Dans le code qui va suivre (merci Greg Lumiere), on cherche a transformer en lignes les resultats d une requete sql.
Comment afficher dans un tableau avec en titre les noms de colonne de la base de donnée?
Bon Week End...


function echoArray(&$array, $output = '') {
$output = $output . '<ul>';
if (empty($array)) { return; }
elseif (!is_array($array)) { $output .= '<li>' . $array . '</li>'; }
else {
foreach ($array as $k => $v) {
if (!is_array($v)) {

echo '<table>';
$output .= '<td>' . ' ' . $v . ' ,</td>';
echo '</table>';
} else {

$output .= '<td>' . echoArray($v) . '</td><Br>';

}
}
}
$output .= '</ul>';
return $output;
}
echo '<h3>';
echo echoArray($results);
echo '</h3>';
}

catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
Hello,
Perso je pense que ce n'est pas le rôle du php de construire une table.
À ta place je ferais un ajax vers un php qui renvoi uniquement un array.
Ensuite tu construit et insère ta table en javascript.
L'affichage sera plus dynamique et le code plus clair.
Pourrais-tu stp mettre le code dans une balise ?

Ps: si ça peut te servir j'ai retrouvé un exemple:
https://batch.xoo.it/t6224-PHP-Renvoyer-un-Array-a-JS.htm#p46170
Modifié par stryk (14 Mar 2020 - 10:57)
Peux tu nous donner le contenu de ton array stp ? ( dans une balise code Smiley cligne )
Et le résultat que tu arrêtes ds
L array cest $results :

$resultats = $connexion->prepare($sql);
$resultats->execute();
$results = $resultats->fetchAll();
Ah non ^
Je voulais dire le contenu de ton array.
Quand tu fais un var_dump par exemple
oui avec echo et var dump ca fonctionne mais cela ne fait pas une belle presentation cest pour afficher
J'obtiens un meilleur resultat avec ce code:

<pre><h3>
<?php
print_r(json_encode($results, JSON_PRETTY_PRINT + JSON_HEX_QUOT));
?>
</h3></pre>

Mais cela ne met pas en tableau... toujours pas
Cela met a la ligne a chaque données
Est ce que quelqu un peut m aider en ces temps difficiles s il vous plait:

<?php
$results = str_replace('"', ' ', $results);
print_r(json_encode($results, JSON_PRETTY_PRINT + JSON_HEX_QUOT));
?>

L affichage de $results donne un resultat correct mais borné par des crochets et accolades, ainsi que des guillemets pour chaque valeurs dans le tableau.

Pourquoi str_replace ne fonctionne pas? j ai pas de messages d erreurs
Merci beaucoup pour l'entraide
Jai elaborer a partir de votre code une boucle while :

<?php
$Reponse .= "<table>";
$resultats = $connexion->prepare($sql);
$resultats->execute();
while ($donnees = $resultats->fetchAll())
{
$Reponse .= "<tr><td>".$donnees['Nom']." - ".$donnees['Prenom']." </td></tr>";
}
$Reponse .= "</table>";
echo $Reponse;
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>

Ca n'affiche pas les valeurs $donnees['Nom']." - ".$donnees['Prenom']." seulement les tirets apparaissent...
Modifié par fanch2506 (22 Mar 2020 - 15:33)