Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как вывести данные из БД в smarty ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ничего не выводит.
Кабан
Отправлено: 19 Февраля, 2011 - 09:44:04
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




код theory.php -->

$smarty = new Smarty ();//обьект smarty

$smarty->template_dir='tpl/templates/';//указываем путь к шаблонам
$smarty->compile_dir='tpl/templates_c/';
$smarty->config_dir='tpl/configs/';
$smarty->cache_dir='tpl/cache/';

$get = $_GET['pages'];
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE 'pages' = '$get'") or die (mysql_error());


$rows=array();
while ($row=mysql_fetch_array($result))
$rows[]=$row;
$smarty->assign('content', $rows);

$smarty->display("theory.tpl");

?>



код в theory.tpl
{$content[text]}

Помогите решить проблему пожалуйста.
Перепробывал все что можно, но данные именно из бд не выводит
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Февраля, 2011 - 10:04:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Строка $rows=array(); не нужна, убрать её нафик..
Кабан пишет:
$rows[]=$row;

На выходе будет массив вида $row[0]['fieldname'],
предполагаю что в типиэльке надо: {$content[0]['fieldname']}
 
 Top
Кабан
Отправлено: 19 Февраля, 2011 - 14:59:12
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




последовал твоему совету.. но... чет все ровно не робит..(

- - - - - - - - - - - - - - - - - - - - -
theory.php
mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE 'pages' = '$get'") or die (mysql_error());



while ($rows=mysql_fetch_array($result))
{
$row=$rows[0]['fieldname'];
}
$smarty->assign('content',$row);

$smarty->display("theory.tpl");

- - - - - - - - - - - - - - - - -
.tpl
{$content[0][text]}

??? Непонял!
(Добавление)
помогите пожалуйста, уже перепробывал все что можно))
Проверял вардампом, с какого то перепуга пишет NULL ..
странное диво..

(Отредактировано автором: 19 Февраля, 2011 - 15:03:14)

 
 Top
grefon
Отправлено: 19 Февраля, 2011 - 16:18:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Гм. Что-то у Вас непонятное написано. Переменная $row - это массив строк, правильно? А в переменной $rows[0]['fieldname'] есть хоть что-то, чтобы ее записывать в $row? Та к тому же нужно писать не $row = , а $row[] =.
И в смарти массив нужно выводить через цикл.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Кабан
Отправлено: 19 Февраля, 2011 - 16:32:04
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




Что я хотел сделать:
есть theory.php
в нем содержится $_GET['pages'];
далее идет подключение к бд
и вывод поля которой соответствует $_GET( т.е одну запись)
т.е если $_GET = matrix то выводить из БД запись, имя которой matrix

я проделал все это без смарти. Работало.
вот код

<?
header('Content-type: text/html ; charset=cp1251');
$get = $_GET['pages'];
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());

mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());

$row = mysql_fetch_array($result);
echo $row['text'];

?>
со смарти не получается

(Отредактировано автором: 19 Февраля, 2011 - 16:34:36)

 
 Top
grefon
Отправлено: 19 Февраля, 2011 - 16:41:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




А так:
скрипт:
PHP:
скопировать код в буфер обмена
  1. <?
  2. header('Content-type: text/html ; charset=cp1251');
  3. $get = $_GET['pages'];
  4. mysql_connect("localhost", "root", "") or
  5. die("Could not connect: " . mysql_error());
  6.  
  7. mysql_select_db("testing");
  8. $result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());
  9.  
  10. $row = mysql_fetch_array($result);
  11.  
  12. $smarty = new Smarty;
  13. $smarty->assign("row",$row);
  14. $smarty->display("index.tpl");
  15.  
  16. ?>


В шаблоне:


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Кабан
Отправлено: 19 Февраля, 2011 - 16:45:52
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




Цитата:
А так:
скрипт:
PHP:
скопировать код в буфер обмена
<?
header('Content-type: text/html ; charset=cp1251');
$get = $_GET['pages'];
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());

mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());

$row = mysql_fetch_array($result);

$smarty = new Smarty;
$smarty->assign("row",$row);
$smarty->display("index.tpl");

?>



так пишет что ошибка на 12 строке

(Отредактировано автором: 19 Февраля, 2011 - 16:51:30)

 
 Top
grefon
Отправлено: 19 Февраля, 2011 - 16:51:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Я же написал работающий вариант. Сам проверил. Пробуйте так:

PHP:
скопировать код в буфер обмена
  1. <?
  2. header('Content-type: text/html ; charset=cp1251');
  3. $get = $_GET['pages'];
  4. mysql_connect("localhost", "root", "") or
  5. die("Could not connect: " . mysql_error());
  6.  
  7. mysql_select_db("testing");
  8. $result = mysql_query("SELECT text_etoi_pages FROM `table` WHERE pages = '$get'") or die (mysql_error());
  9.  
  10. $row = mysql_fetch_array($result);
  11.  
  12. $smarty = new Smarty;
  13. $smarty->assign("text",$row[0]);
  14. $smarty->display("index.tpl");
  15.  
  16. ?>



(Добавление)
Цитата:
так пишет что ошибка на 12 строке

А Вы смарти подключали вообще?

(Отредактировано автором: 19 Февраля, 2011 - 16:53:13)



-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Кабан
Отправлено: 19 Февраля, 2011 - 16:56:01
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




код

<?
define('SMARTY_DIR','smarty_library/');
require(SMARTY_DIR.'Smarty.class.php');
header('Content-type: text/html ; charset=cp1251');
$get = $_GET['pages'];
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());

mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());

$row = mysql_fetch_array($result);

$smarty = new Smarty;
$smarty->template_dir='tpl/templates/';//указываем путь к шаблонам
$smarty->compile_dir='tpl/templates_c/';
$smarty->config_dir='tpl/configs/';
$smarty->cache_dir='tpl/cache/';
$smarty->assign("row",$row);
$smarty->display("theory.tpl");

?>



Fatal error: Smarty error: [in theory.tpl line 65]: syntax error: unrecognized tag: $row['text'] (Smarty_Compiler.class.php, line 446) in C:\Program Files\VertrigoServ\www\smarty_library\Smarty.class.php on line 1092
(Добавление)
Кабан пишет:
код

<?
define('SMARTY_DIR','smarty_library/');
require(SMARTY_DIR.'Smarty.class.php');
header('Content-type: text/html ; charset=cp1251');
$get = $_GET['pages'];
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());

mysql_select_db("testing");
$result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());



$row = mysql_fetch_array($result);

$smarty = new Smarty;
$smarty->template_dir='tpl/templates/';//указываем путь к шаблонам
$smarty->compile_dir='tpl/templates_c/';
$smarty->config_dir='tpl/configs/';
$smarty->cache_dir='tpl/cache/';
$smarty->assign("row",$row);
$smarty->display("theory.tpl");

?>



Fatal error: Smarty error: [in theory.tpl line 65]: syntax error: unrecognized tag: $row['text'] (Smarty_Compiler.class.php, line 446) in C:\Program Files\VertrigoServ\www\smarty_library\Smarty.class.php on line 1092



в шаблоне было так {$row['text']}
сделал так {$row[text]}
но... ничего не выводит

(Отредактировано автором: 19 Февраля, 2011 - 16:58:32)

 
 Top
grefon
Отправлено: 19 Февраля, 2011 - 17:56:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Давайте попробуем поэтапно Улыбка

вот это напишите в index.php, и больше ничего кроме этого:
PHP:
скопировать код в буфер обмена
  1. <?
  2. require('smarty_library/Smarty.class.php');
  3. header('Content-type: text/html ; charset=cp1251');
  4.  
  5. $row = array('text1' => '123', 'text2' => '789');
  6.  
  7. $smarty = new Smarty;
  8. $smarty->assign("row",$row);
  9. $smarty->display("theory.tpl");
  10.  
  11. ?>


а это в theory.tpl:


Я только что все это сделал и у меня работает, а у Вас? Должно вывести 789.

(Отредактировано автором: 19 Февраля, 2011 - 17:57:09)



-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Кабан
Отправлено: 19 Февраля, 2011 - 18:04:42
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2011  
Откуда: Челны


Помог: 0 раз(а)




Спасибо большое! я разобрался!
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. define('SMARTY_DIR','smarty_library/');
  4. require(SMARTY_DIR.'Smarty.class.php');
  5. header('Content-type: text/html ; charset=cp1251');
  6. $get = $_GET['pages'];
  7. mysql_connect("localhost", "root", "") or
  8. die("Could not connect: " . mysql_error());
  9.  
  10. mysql_select_db("testing");
  11. $result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());
  12.  
  13. $row = mysql_fetch_row($result);
  14. $smarty = new Smarty;
  15. $smarty->template_dir='tpl/templates/';//указываем путь к шаблонам
  16. $smarty->compile_dir='tpl/templates_c/';
  17. $smarty->config_dir='tpl/configs/';
  18. $smarty->cache_dir='tpl/cache/';
  19. $smarty->assign("row",$row[1]);
  20. $smarty->display("theory.tpl");
  21.  
  22. ?>
  23.  
  24.  
  25.  



а в шаблоне просто {$row}
Браво Ура!
 
 Top
metra
Отправлено: 20 Февраля, 2011 - 08:03:03
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Для вывода массива однотипных данных (списка новостей, пользователей, и т.п.) из базы данных:

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM `table` WHERE pages = '$get'") or die (mysql_error());
  2. $num = mysql_num_rows($result); //получаем количество строк
  3. for($i=0; $i<$num; $i++) //загоняем все строки в массив
  4. {
  5. $rows[$i] = mysql_fetch_array($res, MYSQL_ASSOC);
  6. }
  7.  
  8. $smarty -> assign("news", $rows) //далее display() и т.п.


далее в файле шаблона в определенном месте пишем:

CODE (html):
скопировать код в буфер обмена
  1. {foreach from=$news item=u name=news_cycl}
  2. <h2>{$u.title}</h2>
  3. <p>{$u.text}</p>
  4. {foreach}


Где u - строка, а title, text - поля.

(Отредактировано автором: 20 Февраля, 2011 - 08:10:02)

 
 Top
fixer
Отправлено: 17 Марта, 2011 - 22:11:18
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Приветствую всех, у меня возникла такая проблема, не могу вывести в smarty <select> из базы
делаю такой запрос в файле file.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo "Изменить категорию: <select name=id_category>";
  3.  
  4.         function subcategory($id, $sub)
  5.  
  6.         {
  7.  
  8.                 $categories = mysql_query("SELECT A.id_category AS mess_id_category, B. * FROM board as A, board_cat as B WHERE B.root_category = $id");
  9.  
  10.                 while($category = mysql_fetch_array($categories))
  11.  
  12.                 {      
  13.  
  14.                         for($i = 0; $i < $sub; $i++) echo "";
  15.  
  16.  
  17.  
  18.                         echo "<option value=".$category['id']."".( $category['id'] == $category['mess_id_category'] ? " selected " : "" ).">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$category['name_cat']."<br>";
  19.  
  20.                         subcategory($category['id'], $sub+1);
  21.  
  22.                 }
  23.  
  24.         }
  25.  
  26.  
  27.  
  28.         $categories = mysql_query("SELECT * FROM board_cat WHERE root_category = 0");
  29.  
  30.         while($category = mysql_fetch_array($categories))
  31.  
  32.         {
  33.  
  34.                 $sub = 1;
  35.  
  36.                 echo "<option value=".$category['id'].">".$category['name_cat']."<br>";
  37.  
  38.                 subcategory($category['id'], $sub);
  39.  
  40.         }
  41.  
  42.         echo "</select>
  43.  


как его в smarty вывести, заранее спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB