2010-09-14 2 views
0

J'ai une fonction php qui interroge dynamiquement une base de données, et renvoie 6 tables. Je veux stocker chacune de ces tables en tant qu'élément de tableau php, renvoyer le tableau via JSON/AJAX et afficher chaque table séparément sur une page. J'ai écrit un code de test pour faire tout cela. Le code de test prend un tableau de chaînes HTML et les renvoie.Fonctions PHP à l'intérieur de HEREDOC - retourné à une disposition de tabulation

Le problème que j'ai est que dans mon code de test, je vraiment cordes simples:

$d1 = <<<END 

<table border="1"> 
<tr> 
<td>row 1, cell 1</td> 
<td>row 1, cell 2</td> 
</tr> 
<tr> 
<td>row 2, cell 1</td> 
<td>row 2, cell 2</td> 
</tr> 
</table> 

END; 

$d2 = "<div id='#f-2'>Message 2</div>"; 

En fait, ce que j'ai est tout un tas de code php à boucle à travers les résultats SQL et construire des tables HTML: Comment puis-je stocker ce truc plus complexe dans une variable PHP pour que je puisse le renvoyer en tant qu'élément de tableau?

Répondre

0

Je ne sais pas si vous comprends bien, mais

$result = "<table>"; 
$result .= "<tr>"; 
$result .= "<trd>"; 

Ce. = Notation y ajoute de nouvelles données à la fin de la valeur précédente.

+0

Oui, vous avez comprendre. J'ai fondamentalement retiré tous les appels d'écho, et construit chaque bloc de chaîne HTML par chaîne, en utilisant. = Opérateur. Ca marche plutôt bien et je ne peux pas croire que je ne pensais pas si c'était hier. Parler de surdéterre un problème. Merci! Code ci-dessous: – Damoven

0

C'est la solution à mon problème particulier:

while($row=pg_fetch_array($result, null, PGSQL_ASSOC)) 
    { 

    if(!$written_header) 
    { 
     $d1 = "<table class=\"fancy\" id=\"ticket_list_table\"><thead><tr><th>ID</th><th>Hardware Name</th><th>Serial No.</th><th>IP Address</th><th>Username</th><th>Password</th></tr></thead><tbody>"; 
     $written_header = true; 
    } 

    $d1 = $d1."<tr><td>$row[id]</td><td>$row[hardwarename]</td><td>$row[serialnumber]</td><td>$row[ipAddress]</td><td>$row[username]</td><td>$row[password]</td></tr>"; 

    } 

    pg_free_result($result); 

    if($written_header) 
    { 
    // close the table body and table object 
    $d1 = $d1."</tbody></table>"; 
    } 
    else 
    { 
    $d1 = $d1."No results."; 
    } 
+0

Une vraie solution n'est pas d'utiliser le code spaghetti, en mélangeant les appels de base de données avec HTML –

Questions connexes