Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Решил освоить смарти так как с ним почти все работают, надеюсь на помощь :)
 
 автор: Panker   (23.11.2006 в 11:07)   письмо автору
 
 

Так как со смарти работают если не все т опочти все, решил перейти ан него пусть сложней но помощи моно найти легче :)

Первый вопрсо с выводом всех данных, то есть не первой записи из базы а всех по порядку!

Вот так вот делаю:

index.tpl


{include file="header.tpl"}

{$Name|upper}

{include file="footer.tpl"}



index.php


<?php

require 'sm/libs/Smarty.class.php';
require 
'config.php';
require 
'modules_index.php';

$smarty = new Smarty;

$smarty->assign("Name","$title");

$smarty->display('index.tpl');
?>


данные из $title беру из файла require 'modules_index.php';

там вот так

<?php
 Error_Reporting
(E_ALL & ~E_NOTICE);
 
$id=$_GET["name"];
 if (!IsSet(
$id))
 {
 
$query "SELECT * FROM pages WHERE name='index'";
 
$result mysql_query($query);
 while(
$r=mysql_fetch_array($result))
 {
  
$title=$r["title"];
  
$keywords=$r["keywords"];
  
$description=$r["description"];
  
$text=$r["text"];
  
$date=$r["date"];
 };
 }
 
 else 
 
 {
 
$query "SELECT * FROM pages WHERE name='$id'";
 
$result mysql_query($query);
 while(
$r=mysql_fetch_array($result))
 {
  
$title=$r["title"];
  
$keywords=$r["keywords"];
  
$description=$r["description"];
  
$text=$r["text"];
  
$date=$r["date"];
 };
 }
?>



Но как я уже выше сказал выводится только первая запись, пожалуйста, помогите вывести все записи! :(

а то как то не хорошо получается :(

Как то я уже добивался вывода всего но выводилось так

ИМЯИМЯ ИМЯ ИМЯ ИМЯ

ФАМИЛИЯ ФАМИЛИЯ ФАМИЛИЯ ФАМИЛИЯ ФАМИЛИЯ

А мне допустим для гостевой надо

Имя
Фамилия

Имя
Фамилия

но такова не смог добится :(

   
 
 автор: Loki   (23.11.2006 в 11:22)   письмо автору
 
   для: Panker   (23.11.2006 в 11:07)
 

Так не получится. Смарти сначала надо передать все(!) даныне, а уж затем парсить шаблон.
http://smarty.php.net/manual/ru/language.function.section.php

   
 
 автор: Panker   (23.11.2006 в 15:32)   письмо автору
 
   для: Loki   (23.11.2006 в 11:22)
 

что то не допонимаю!

делаю первый пример!



<?php

$id 
= array(1001,1002,1003);
$smarty->assign('custid',$id);

$fullnames = array('John Smith','Jack Jones','Jane Munson');
$smarty->assign('name',$fullnames);

$addr = array('253 N 45th''417 Mulberry ln''5605 apple st');
$smarty->assign('address',$addr);

?>

{*
  переменная loop определяет только количество итераций.
  вы можете получать доступ к любой переменной из шаблона внутри секции.
  Этот пример предполагает, что $custid, $name и $address все являются
  массивами, содержащими одинаковое количество значений
*}
{section name=customer loop=$custid}
<p>
    id: {$custid[customer]}<br />
    name: {$name[customer]}<br />
    address: {$address[customer]}
</p>
{/section}


прямо так и писать в файле индес и должно работать или что то ещё?

если просто так то вот Fatal error: Call to a member function on a non-object in y:\home\smarty\www\index.php on line 4

а если
require 'sm/libs/Smarty.class.php'; подрубать класс то тоже самое, не понима. про какой обьект они мне пишут ? :)

   
 
 автор: indexer   (24.11.2006 в 00:59)   письмо автору
 
   для: Panker   (23.11.2006 в 15:32)
 

проще надо, люди потянутся




<?php
//только самое основное выборка из базы и тправка смарти

$smarty->debugging true;//отладка очено помогает в работе с разбором    

rows=mysql_query($sql);//sql запрос сами
    
foreach ($rows as $numRow=>$row){
    
$smarty->append ($row);//уже отправлено шаблону
    
}
//в итоге получается массив $row['поле_базы']
//дальше
$smarty->display('index.tpl');//или что там у вас


?>

{section name=ext loop=$полебазыID}
{$полебазы2[ext]}<br>
{$полебазы3[ext]}
{/section}




И кто это Все на смарти? по количеству ресурсов и информации которая только в мануале и на оф форуме, я бы сказал что програмисты не любят смарти.

   
 
 автор: indexer   (24.11.2006 в 01:09)   письмо автору
 
   для: Panker   (23.11.2006 в 15:32)
 

>а если
>require 'sm/libs/Smarty.class.php'; подрубать класс то тоже самое, не понима. про какой обьект они мне пишут ? :)

Ох елки так нужно обязательно объект подключить. а я уже сразу про sql выборку.
хм.... МАНУАЛ ПО СМАРТИ где то 4-5 страница.


<?php
require_once('libs/Smarty.class.php');// Это и есть объект и библиотека

$smarty = new Smarty;//объявляем обект и работаем

$smarty->template_dir 'templates/';//именно тут подготовленные шаблоны

$smarty->compile_dir 'templates_c/';//компилированные шаблоны

$smarty->config_dir 'configs/';//файлы конфигурации  смарти

$smarty->cache_dir 'cache/';//кеш смарти 
//эти папки обязательны
?>




Есть более удобный вариант подключения смарти, читайте мануал.

   
 
 автор: Panker   (25.11.2006 в 07:41)   письмо автору
 
   для: indexer   (24.11.2006 в 01:09)
 

вы меня прсотите, но что т оя так и не понял что делать :(
да и ошибка на Parse error: parse error, unexpected '=' in y:\home\smarty\www\index.php on line 19 строку ((

а там какрас ваше подключение rows=mysql_query($sql);//sql запрос сами

   
 
 автор: Panker   (25.11.2006 в 07:44)   письмо автору
 
   для: Panker   (25.11.2006 в 07:41)
 

Так вот сейчас подробно, пожалуйста не поленитесь :) помогите )



<?php
[b]Error_Reporting(E_ALL & ~E_NOTICE);
require_once(
'config.php');// Это и есть объект и библиотека
require_once('modules_index.php');// Это и есть объект и библиотека
require_once('sm/libs/Smarty.class.php');// Это и есть объект и библиотека

$smarty = new Smarty;//объявляем обект и работаем

$id = array(1001,1002,1003);
$smarty->assign('custid',$id);

$fullnames = array('John Smith','Jack Jones','Jane Munson');
$smarty->assign('name',$fullnames);

$addr = array('253 N 45th''417 Mulberry ln''5605 apple st');
$smarty->assign('address',$addr);[/b// всё работает, вывод типа который мне надо, по порядку!

//А вот тут ваш способ! Только я не понимаю
// 1 Где тут поле указывать!
// 2 и как это в обьект для вывода превратить!
// допустим что бы место $addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st');
// Можно было указывать тот цикл что ниже, и выводить из таблицы $title ??


    
$rows=mysql_query($sql);
    foreach (
$rows as $numRow=>$row)
    {
    
$smarty->append ($row);
    }
//в итоге получается массив $row['поле_базы']
//дальше 





$smarty->display('index.tpl');//или что там у вас
?>


Ещё ошибка выводится :( - Warning: Invalid argument supplied for foreach() in y:\home\smarty\www\index.php on line 20

   
 
 автор: Panker   (25.11.2006 в 20:51)   письмо автору
 
   для: Panker   (25.11.2006 в 07:44)
 

эт куда моя тема сьехала :)

   
 
 автор: isset   (25.11.2006 в 21:01)   письмо автору
 
   для: Panker   (25.11.2006 в 20:51)
 

чтобы работать со smarty-переменной как с массивом, надо передать ей массив , логично? :)

   
 
 автор: Panker   (26.11.2006 в 12:57)   письмо автору
 
   для: isset   (25.11.2006 в 21:01)
 

(((((((((((((((((((((( логично то логично (((( но я последнее время ваше туплю не фига не понимаю, а ж растроелся....

ну если не кодом то как нить плиз подскажите, чт оконкретно мне сделать!
я уже 10 шаблонизаторов сменил, что мне делать....не знаю :(

   
 
 автор: XPraptor   (27.11.2006 в 00:50)   письмо автору
 
   для: Panker   (26.11.2006 в 12:57)
 

Смарти, фиг..ти - надо думать и о продвижении. Никогда проект из шаблона не будет для робота релевантным. Если хочешь шаблоны, то пиши их сам в классы и используй по необходимости в контексте страницы или при обработке данных, но никак не на самой странице.

У меня в классах шаблоны занимаются выводом определенных блоков кода в определенные места страницы, но никогда через них не выводится главный контент, только ссылки, банеры и прочие мелочи.

   
 
 автор: Panker   (06.12.2006 в 10:39)   письмо автору
 
   для: XPraptor   (27.11.2006 в 00:50)
 

Что то я не понимаю, много времени прошло, я что то понял что т онет :(
помогите плз, уверен у кого то тут точно ест ьпроект на смарти, покажите как вы вытасткиваете данные и выводите ихх нормальным списком а не через строку :(
как новости вывод новостей на смарти или что у вас там :( помогите плз




Смарти, фиг..ти - надо думать и о продвижении. Никогда проект из шаблона не будет для робота релевантным. 
Если хочешь шаблоны, то пиши их сам в классы и используй по необходимости в контексте страницы или при обработке данных, но никак не на самой странице.


Вы о SEO ( продвижении ? )
Так вот смарти каким тут боком :)
Сколько сайты не продвигаю, сколько проектов не вёл, не ощутил разницу в статическом и в смарти :)

   
 
 автор: Axxil   (06.12.2006 в 11:05)   письмо автору
 
   для: XPraptor   (27.11.2006 в 00:50)
 

Смарти, фиг..ти - надо думать и о продвижении. Никогда проект из шаблона не будет для робота релевантным. 
Уважаемый. Не надо вводить массы в заблуждение. Роботам абсолютно и категорически фиолетово как формируется страница. Из шаблона, просто html или в ворде на коленке сделана.
Это такой же браузер и берёт он уже готовый результат.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования