Autor Zpráva
Anonymní
Profil *
Ahoj, jsem zacatecnik v php a potrebuji poradit, jak tento zapis nize uvedeny zapsat takovym zpusobem, aby byl php a html kod oddeleny od sebe. Dekuji vsem za pripadnou pomoc.

<?
$result = mysql_query("select * from kategorie order by name");

while ($row = mysql_fetch_array($result)):
echo "<table>";
echo "<tr>";
echo "<td>";
echo "&raquo; ";
echo "<a href='index.php?id=";
echo $row["id"];
echo "'>";
echo $row["name"];
echo "</tr>";
echo "</td>";
echo "</table>";
endwhile;
?>
WanTo
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=1&topic=27 642
mila
Profil
Pokud na to chceš jít od lesa, tak musíš používat nějaký šablonovací systém.
Často je to ale zbytečné a začátečníku bych to nedoporučoval.

Pokud jde o ten tvůj kus kódu, může ho zkusit něco jako:
printf ('<tr><td>&raquo;<a href="index.php?id=%d">%s</tr></td>',$row["id"], $row["name"] );
Casero
Profil
Anonymní
prostě jednoduše...části řetězců mužes svázat tečkou takže
echo "<table>";
echo "<tr>";
je stejné
echo "<table>"."<tr>";
llook
Profil
Já bych to udělal nějak takhle:
<?php

// Ještě před začátkem stránky si připravím používané proměnné
$result = mysql_query("select * from kategorie order by name");

// A potom už jenom HTML, ve kterém pomocí PHP akorát
// ty připravené proměnné vypisuju:
?>
<html>
<head><title>bla bla </title></head>
<body>

<?php while ($row = mysql_fetch_array($result)): ?>
<table>
<tr>
<td>&raquo; <a href='index.php?id=<?php echo $row["id"]; ?>'
><?php echo $row["name"]; ?></a>
</tr>
</td>
</table>

<?php endwhile; ?>

</body></html>
Omezovat se můžu i bez šablonovacího systému, stačí trocha sebekázně.
Anonymní
Profil *
Dekuji vsem za pomoc a prednostne moc dekuji llook, protoze tohle jsem prave chtel. :o)
finc
Profil
Osobne si myslím, že to co použil llook není úplně ideální.

Doporučuji si zkusit napsat vlastní třídu na tabulku. Když se nad tím zamyslíte, tak zjistíte, že tabulku pořád vypisujete stejným způsobem. Jsou tam maximálně odlišnosti v počtu řádku či jiného stylování. Navíc když budete vážně šikovný, tak se vám nakonec může podařit to, že jednu třídu budete volat pro vytvoření struktury tabulky a druhou pro export do XLS, apod.

Př.:
<?php
$table = new Table();
$headers = array();
$data = array();

$headers[0][0]["text"] = "Prvni sloupec";
$headers[0][0]["align"] = "center";
$headers[0][0]["background"] = Barva::cervena(); // zde je pouzita napr dalsi trida pro vraceni cisla preddefinovane barvy
$headers[0][1]["text"] = "Druhy sloupec";

$query = "SELECT * FROM tabulka";
if ($result = parent::mysqli()->query($query)) {
$i = 0;
while($row = $result->fetch_assoc()) {
$i++;
$data[$i][0]["text"] = $row["nazev"];
$data[$i][1]["text"] = $row["popis"];

}
}

$table->createTable($headers, $data);

// zobrazeni tabulky
$table->zobrazHtmlTable();
?>

Dalo by se pokračovat dál, co všechno je možné, záleží na požadavcích a fantazii programátora.
Toto téma je uzamčeno. Odpověď nelze zaslat.