Diskuze: Problém se syntaxí
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
To je celé nějaké divné si myslím:
echo "<table border=\"1\">
<tr>
<td>" . $radek["id"] . "</td>
<td>" . $radek["name"] . "</td>
<td>" . $radek["phone"] . "</td>
</tr>
</table>";
co takhle třeba?
jeden z možných zápisů echo
tak zkusim, ale to mé funguje taky, takže to asi bude jedno, ale to tvoje zkusim
Máš tam chybně jeden apostrof.
<?php
require ("./connect.php");
$result = mysql_query("SELECT * FROM company ORDER BY id");
while ($radek = mysql_fetch_array($result)) {
echo <<<EOT
<table border="1">
<tr>
<td>$radek[id]</td>
<td>$radek[name]</td>
<td>$radek[phone]</td>
</tr>
</table>
EOT;
}
Já jsem tohle teda neznal. Tady na devbooku se někdy cítím spíš jako pekař
Používám to poměrně systematicky pro šablony HTML i pro zápis složitějších SQL dotazů.
jo a jěště se zeptám na jednu (a doufam ze uz posledni věc )
když mám kod:
<tr>
<th>ID</th>
<th>Nývet firmy</th>
<th>Tel. číslo </th>
</tr>
tady je ještě ukázka http://bertuvweb.8u.cz/…/adresar.php
tak jak mám zažídit to, aby se mi názvy sloupců vypsaly jenom jednou a ne pokaždý, když přidám novou položku?
díky za odpověď
To se musí trochu upravit. Včera jsem si toho nějak nevšiml.
<?php
require ("./connect.php");
$result = mysql_query("SELECT * FROM company ORDER BY id");
echo <<<EOT
<table border="1">
<tr>
<th>ID</th>
<th>Nývet firmy</th>
<th>Tel. číslo </th>
</tr>
EOT;
while ($radek = mysql_fetch_array($result)) {
echo <<<EOT
<tr>
<td>$radek[id]</td>
<td>$radek[name]</td>
<td>$radek[phone]</td>
</tr>
EOT;
}
echo "</table>";
Už to není tak elegantní, ale pokud bys to udělal objektově, tak by to elegantní bylo.
Ještě se to dá udělat bez šablony. Výhodou je, že na rozdíl od předchozích řešení je to odolné proti XSS a nemusíš se starat o formátování:
<?php
require ("./connect.php");
$result = mysql_query("SELECT * FROM company ORDER BY id");
$tab = new XMLwriter();
$tab->openMemory();
$tab->setIndent(true);
$tab->startElement('table');
$tab->writeAttribute('border',1);
$tab->startElement('tr');
$tab->writeElement('th', 'ID');
$tab->writeElement('th', 'Nývet firmy');
$tab->writeElement('th', 'Tel. číslo ');
$tab->endElement();
while ($radek = mysql_fetch_array($result)) {
$tab->startElement('tr');
$tab->writeElement('td', $radek['id']);
$tab->writeElement('td', $radek['name']);
$tab->writeElement('td', $radek['phone']);
$tab->endElement();
}
$tab->endElement();
echo $tab->flush();
A kdo to chce mít objektově, tak to vloží do metody __toString(), místo query použije dotaz do modelu, místo atributu "border" dostane tabulka atribut "id" - třeba "telefonni_seznam" a místo "echo" na konci napíše "return".
Webdesigner s tím pak zachází jako s hotovým objektem, může si ho na stránce umístit kam chce a v CSS nastylovat jak chce.
Zobrazeno 14 zpráv z 14.