Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP assosiatiivinen taulukko

Sivun loppuun

mrkebab [25.06.2008 11:06:02]

#

Tervehdys.

Miten ihmeessä saan for-luupissa laitettua tavaraa assosiatiiviseen tauluun ?

Tämä ei näytä toimivan:

$asso = array();
for ($i = 0; $i < mysql_num_rows($sql_query); $i++) {

$Cars = mysql_result($sql_query, $i, "car");
$other = "toinen_tavara";

// Eli tässä kokeilen laittaa taulukkoon tavaraa
$asso = ( "auto" => $Cars , "muut" => $other);

}

Mutta yo. tavalla en saanut toimimaan ?
Eli miten saan lisättyä tavaraa assosiatiiviseen taulukkoon tuossa loopin aikana ?

Chiman [25.06.2008 11:22:59]

#

$asso["auto"] = $Cars;
$asso["muut"] = $other;

mrkebab [25.06.2008 11:43:39]

#

Hmmm..

Jostain syystä, kun printtailen tavaroita pihalle, saan vain ensimmäisen kirjaimen kummastakin muuttujasta?

Lebe80 [25.06.2008 12:58:17]

#

debug debug!

eli

echo '<pre>';
print_r($Cars);
echo '</pre>';

Itse suosisin mieluummin mysql_fetch_assoc($result) -funkkaria ja while-looppia.

Chiman [25.06.2008 13:10:22]

#

Lebe80 kirjoitti:

Itse suosisin mieluummin mysql_fetch_assoc($result) -funkkaria ja while-looppia.

Teen samoin (ellen käytä jotain tietokanta-abstraktioluokkaa, jonka yhteydessä foreach on usein näppärin). Tässä esimerkkiä:

$result = mysql_query("SELECT ...");
while($myrow = mysql_fetch_assoc($result))
{
    $asso["auto"] = $myrow['car'];
    // ...
}

mrkebab [25.06.2008 13:14:02]

#

Ok...

Huomasin just, että tämä onkin smarty ongelma.

eli tavarat tulee aivan oikein kannasta ulos.

Nyt kun lähetän taulun smarty templatelle ja kokeilen siellä tulostaa niitä pihalle, niin saan vain ensimmäiset kirjaimet?

PHP

$asso = array();
for ($i = 0; $i < mysql_num_rows($sql_query); $i++) {

$Cars = mysql_result($sql_query, $i, "car");
$other = "toinen_tavara";

$asso["auto"] = $Cars;
$asso["muut"] = $other;

}

$smarty->assign("asso", $asso);
$smarty->display("template.tpl");

Smarty template

<html>
<body>
<table>

{foreach item=asso from=$asso}


<tr>
    <td>{$asso.auto}</td>
    <td>{$asso.muut}</td>
</tr>

{/foreach}
</table>
</body>
</html>

Chiman [25.06.2008 13:20:23]

#

Käytä eri muuttujan nimiä itemissa ja fromissa?

mrkebab [25.06.2008 13:30:00]

#

Chiman kirjoitti:

Käytä eri muuttujan nimiä itemissa ja fromissa?

Katsos. En tiennytkään, ettei ne saa olla samannimiset.

No nyt alkoi tulemaan järkevää tavaraa sivulle.

Kiitos paljon !


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta