Autor Zpráva
viktor
Profil *
Ahoj, mám problém se smarty, chci pomocí něj vypsat hodnoty z tabulky ale ať dělám co dělám nevypisuje mi to nic. Přitom když vytvořím například proměnou $a="peklo"; a pak já smrz smarty vypíšu, tak není problém. To co tu nefunguje je výpis dat z databáze. Projekt1.php vypadá takto:
<?php
require('C:\PHPWebServer\http_docs\Smarty/Smarty.class.php');
$smarty = new Smarty();

$smarty->setTemplateDir('C:\PHPWebServer\http_docs\Smarty\templates');
$smarty->setCompileDir('C:\PHPWebServer\http_docs\Smarty\templates_c');
$smarty->setCacheDir('C:\PHPWebServer\http_docs\Smarty\cache');
$smarty->setConfigDir('C:\PHPWebServer\http_docs\Smarty\configs');


$spojeni = mysqli_connect
('localhost', 'root','lokomotiva', 'harmonika', 3306 );
if ($spojeni)
echo "Spojení navázáno" ;
else {
echo "Spojen9 se nepodařilo";
echo "<br>";
echo mysqli_connect_error();
 }
  

 
 $vysledek = mysqli_query($spojeni, 'SELECT nazev,typ,vyrobce,cena, ID_akordeonu FROM seznam_harmonik');
 if (!$vysledek){
 echo "Smůla"; }


$radek = mysqli_fetch_array($vysledek);

$smarty->assign('radek', $radek);
$smarty->display('projetk1.tpl');

 
if ($spojeni)
mysqli_close($spojeni);

a projekt1.tpl takto:
<head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com"&gt;
  <title>Akordeony</title>
  </head>
  <body>

 <form action="projekt1_connect.PHP" name="Přidej harmoniku" method="post">
 Název:<input type="text" name="nazev">
 Typ:<input type="text" name="typ">
 Výrobce:<input type="text" name="vyrobce">
 Cena:<input type="text" name="cena">
 ID:<input type="text" name="ID_akordeonu">
 <input type="submit" value="Odeslat data">
 </FORM>
<span style="position: absolute; top: 200px; left: 1100px"><img src="choma.jpg" width="400" height="600"></span>
<span style="position: absolute; top: 400px; left: 50px"><img src="choma.jpg" width="200" height="300"></span>
 

 {foreach from="$radek" item="radek"}
 <tr>
  <td>{$radek.nazev}</td>
  <td>{$radek.typ}</td>
  <td>{$radek.vyrobce}</td>
  <td>{$radek.cena}</td>
  <td>{$radek.ID_akordeonu}</td>
 </tr>
 {/foreach}
 


 <form action="projetk1_mazani.php" name="mazani" method="POST">
 Zadej id akordeonu kterého chceš smazat:<input type="text" name="id">
 <input type="submit" value="Smaž">
  </FORM> 
   <form action="projetk1_uprava.php" name="mazani" method="POST">
 Zadej id akordeonu kterého chceš upravit:<input type="text" name="id">
 Zadejte nová data u tohoto akordeonu <br>Název:<input type="text" name="nazev">
 Typ:<input type="text" name="typ">
 Výrobce:<input type="text" name="vyrobce">
 Cena:<input type="text" name="cena">
 ID:<input type="text" name="ID_akordeonu">
 <input type="submit" value="Uprav">
 </body>
</html>



////// proměné v tpl jsou sice v ciklu, ale zkoušel jsem je vypsat i všelijak jinak a nikdy mi to data z pole $radek nevrátilo, přitom ty data tam jsou, pokud je vypíšu smrz php tak není problém. A jak už jsme říkal pokud vypíšu skrz smarty třeba proménou $a="nebe"; tak jí to vypíše bez problému, nechápu tedy kde je problém, dík za radu.

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
V PHP to vypisujete přes stejně sestavený foreach()?
viktor
Profil *
V PHP přes echo a v echu je tabulka
Alphard
Profil
O echo mi nejde, problém by mohl být v tom, že v $radek je fakt jen první řádek a ne všechna data. Já jsem ale přímo s mysqli strašně dlouho nepracoval, tak si nejsem jistý. Viz http://cz.php.net/manual/en/mysqli-result.fetch-array.php#95881.
viktor
Profil *
Takto to vypisuju v php
while ($radek = mysqli_fetch_array($vysledek)){
 echo "<table rules=all frame=border>";
 echo '<tr><td>', $radek['nazev'], '</td>'; 
 echo '<td> ', $radek['typ'], '</td>'; 
 echo '<td> ', $radek['vyrobce'], '</td>'; 
 echo '<td> ', $radek['cena'], '</td>';           
 echo '<td> ', $radek['ID_akordeonu'], '</tr></td>'; 
 echo "</table>";


V smarty to nic nevypíše ani pokud napíšu čistě jen
{$radek}
nebo
{$radek.nazev}
vůbec nechápu proč
Lamicz
Profil
$arr = array();
$i = 0;
while($row = mysql_fetch_assoc($this->res)){
  foreach($row as $key => $val){
	$arr[$i][$key] = $val;
  }
  $i++;
}
return $arr;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: