Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 22 Май, 2012, 11:47:37

Страниц: [1] 2 3 ... 5
Печать
Автор Тема: выборка из БД  (Прочитано 4711 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Saimon    ↓ 
27 Октябрь, 2008, 07:19:38
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

Доброго всем времени суток.
 
Подскажите как такую выборку из БД присвоить как какой-нибудь переменной чтобы передать её на страницу?
 

$sql = "SELECT * FROM $table_name where (mark='Tank')AND (model='Т34')";
$query = mysql_query($sql,$link) or die();
$n = mysql_num_rows($query);
 
if ($n = = 0) {
echo "<tr>";
echo "<td colspan=6 align=center><p> раздел не заполнен! </td></tr>";
}
else {
$i=0;
while($i<$n)
{
$img=mysql_result($query,$i, "pic");
$t_text=mysql_result($query,$i, "text");
$nid=mysql_result($query,$i, "id");
$art=mysql_result($query,$i, "articl");
 
echo "<table  border=1 cellpadding=0 cellspacing=0 width=570 align=center>";
echo "
<tr width=250 height=133><td> <img src='$img' width=250 height=133> </td>
<td>
<table  border=1 cellpadding=0 cellspacing=0 width=320>
<tr><td> $t_text </td></tr>
<tr><td> $art </td></tr>
</table>
</td>
</tr>";
echo"<tr height=20><td></td><td></td></tr>";
echo "</table>";
$i++;
}
}
 
заранее спасибо)
Записан
md5    ↓ 
27 Октябрь, 2008, 07:23:54 , спустя 4 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10494
Сила слова: 1.19

PHP
$sql = mysql_query() ...
 
while ($row = mysql_fetch_assoc($sql)) {
print_r($row);
}
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
Saimon    ↓ 
27 Октябрь, 2008, 09:30:12 , спустя 2 часа 6 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

блиин
 
нужно чтобы данные сюда попали  
 
$smarty -> assign('text', $text);
 
$text- то есть я так понял их сюда надо присвоить
Записан
Saimon    ↓ 
27 Октябрь, 2008, 09:31:23 , спустя 1 минуту 11 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

я как не бюсь, выборка из базы велезает на странице где попало(
Записан
Professor    ↓ 
27 Октябрь, 2008, 09:56:47 , спустя 25 минут 24 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Помоему ты немного не понимаеш чего хочеш.
 
$smarty -> assign('text', $text); - Это шаблонизатор смарти. Тут cтатья про него есть. надо почитать.
http://pyha.ru/articles/php/smarty-for-beginners/
 
В общих чертак, как показал md5 надо что то типо этого
 
PHP
$sql = mysql_query("SELECT name,id FROM table")
 
while ($row = mysql_fetch_array($sql))
  {
     $text[]=$row;
  }
$smarty -> assign('text', $text);
 

Это в выполняющем файле, а
где вывести надо,
там так
Text

<body>
{$text.name}
{$text.id}
</body>
 
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
Saimon    ↓ 
27 Октябрь, 2008, 10:20:14 , спустя 23 минуты 27 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

что то я вообще понимать что либо перестал(((
 
вот как у меня сейчас все выглядит:
 
require($_SERVER['DOCUMENT_ROOT'].'/libs/Smarty.class.php');
$smarty = new Smarty();
 
$link = mysql_connect($localhost, $mysql_user, $mysql_password);
if(!$link)  die('Не  могу  соединиться  с  MySQL');
    mysql_select_db($bd_name)  or  die('Не  могу  открыть  $bd_name:  '.mysql_error());
 
$query = "SELECT * FROM $table_name where (mark='Q')AND (model='W')";
    $result = mysql_query($query);
    while ($row = mysql_fetch_assoc($result)) {
        echo "<table  border=1 cellpadding=0 cellspacing=0 width=570 align=center>";
        echo "<tr><td><img src= $row[pic] width=250 height=133></td><td>";
 
        echo "<table  border=1 cellpadding=0 cellspacing=0 width=320>";
        echo "<tr><td> $row[tov_name] </td></tr>";
        echo "<tr><td> $row[tov_text] </td></tr>";
        echo "<tr><td> $row[tov_sena] </td></tr>";
        echo "<tr><td> $row[articl] </td></tr>";
        echo "<tr><td>";
 
        echo "<table border=0 cellpadding=5 cellspacing=0 width=320>";
        echo "<tr><td><input type='hidden' name='id' value='$nid'><input type='submit' name='norel' value='в корзину' readonly></td></tr>";
        echo "</table>";
 
        echo "</td></tr>";
        echo "</table>";
        echo "</td></tr>";
        echo "<tr height=20><td></td><td></td></tr>";
        echo "</table>";
 
    }
mysql_free_result($result);
 
$text='  ';
 

$smarty->template_dir = $_SERVER['DOCUMENT_ROOT'].'/templates';
$smarty->compile_dir = $_SERVER['DOCUMENT_ROOT'].'/templates_c';
$smarty->cache_dir = $_SERVER['DOCUMENT_ROOT'].'/cache';
$smarty->config_dir = $_SERVER['DOCUMENT_ROOT'].'/configs';
$smarty -> assign('text', $text);
$smarty->display ('mainuslugi.tpl');
Записан
Professor    ↓ 
28 Октябрь, 2008, 12:06:23 , спустя 1 час 46 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Сильно не вдавался, но помоему ебе нужно так
PHP
require($_SERVER['DOCUMENT_ROOT'].'/libs/Smarty.class.php');
$smarty = new Smarty();
 
$link = mysql_connect($localhost, $mysql_user, $mysql_password);
if(!$link) die('Не могу соединиться с MySQL');
mysql_select_db($bd_name) or die('Не могу открыть $bd_name: '.mysql_error());
$text=' ';
$query = "SELECT * FROM $table_name where (mark='Q')AND (model='W')";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$text.="<table border=1 cellpadding=0 cellspacing=0 width=570 align=center>";
$text.="<tr><td><img src= '".$row[pic]."' width=250 height=133></td><td>";
 
$text.="<table border=1 cellpadding=0 cellspacing=0 width=320>";
$text.="<tr><td> ".$row['tov_name']." </td></tr>";
$text.="<tr><td> ".$row['tov_text']." </td></tr>";
$text.="<tr><td> ".$row['tov_sena']." </td></tr>";
$text.="<tr><td> ".$row['articl']." </td></tr>";
$text.="<tr><td>";
 
$text.="<table border=0 cellpadding=5 cellspacing=0 width=320>";
$text.="<tr><td><input type='hidden' name='id' value='$nid'><input type='submit' name='norel' value='в корзину' readonly></td></tr>";
$text.="</table>";
 
$text.="</td></tr>";
$text.="</table>";
$text.= "</td></tr>";
$text.="<tr height=20><td></td><td></td></tr>";
$text.="</table>";
 
}
mysql_free_result($result);
 
$smarty->template_dir = $_SERVER['DOCUMENT_ROOT'].'/templates';
$smarty->compile_dir = $_SERVER['DOCUMENT_ROOT'].'/templates_c';
$smarty->cache_dir = $_SERVER['DOCUMENT_ROOT'].'/cache';
$smarty->config_dir = $_SERVER['DOCUMENT_ROOT'].'/configs';
$smarty -> assign('text', $text);
$smarty->display ('mainuslugi.tpl');

Что то типа
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
AlexB    ↓ 
28 Октябрь, 2008, 12:24:57 , спустя 18 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3423
Сила слова: 2.6

Saimon, не может быть echo и assign одновременно.
Либо ты выводишь данные через echo, тогда никакого Smarty быть не должно в принципе, либо отдаешь данные в шаблон и пользуешься методами шаблонизатора. Поэтому у тебя и получается где попало т.к. вывод сам по себе, а шаблонизатор сам по себе.
 
То что написал Professor, в принципе может работать, но делать так не надо не в коем случае.
« Последнее редактирование: 28 Октябрь, 2008, 12:28:08 от AlexB » Записан

Professor    ↓ 
28 Октябрь, 2008, 01:09:59 , спустя 45 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

но делать так не надо не в коем случае.
Подтверждаю!
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
Saimon    ↓ 
28 Октябрь, 2008, 07:44:43 , спустя 6 часов 34 минуты 44 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

Так работает ТОЧНО проверил!!!
 
Почему нельзя ??? И как можно сделать правильно???
 
Я в Smarty новичок, да и в ПХП тоже, вот уже один сайт с принципиальным касяком есть (не правильно понял как Smarty работает)
Записан
Saimon    ↓ 
28 Октябрь, 2008, 07:49:27 , спустя 4 минуты 44 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

я на сколько понял данные надо в массив, а из массива в $text
 
что вроде этого
 
@$result = mysql_query("SELECT * FROM `news`");
$cnt = 0;
$arr_news = array ();
 
while ($row = mysql_fetch_array ($result)) {
$arr_news[$cnt]['date'] = $row[date];
$arr_news[$cnt]['text'] = $row
Text
;
$cnt++;
}
 
$smarty->assign('arr_news', $arr_news);
 
$smarty->display('index.tpl');
Записан
sap    ↓ 
28 Октябрь, 2008, 09:27:09 , спустя 1 час 37 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Жмурики

Карма: 40
Сообщений: 2697
Сила слова: 1.48

Так работает ТОЧНО проверил!!!
 
Почему нельзя ??? И как можно сделать правильно???

Потому что нужно понимать, что такое шаблонизатор, и зачем он нужен. А нужен он для отделения бизнес-логики от вью-логики.
В варианте, предложенным Professor-ом, они смешиваются. Если не понял, читать про MVC и шаблонизаторы, причем теорию.
 
Правильно будет что-то вроде:
PHP
$result = mysql_query("SELECT * FROM $table_name WHERE `mark`='Q' AND `model`='W'";);
 
$data = array();
 
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}
 
$smarty->assign("news_data", $data);
И в темплейте что-то вроде:
PHP
{foreach from=$news_data item=v}
<table border=1 cellpadding=0 cellspacing=0 width=570 align=center>
<tr><td><img src="{$v.pic}" width=250 height=133></td><td>
 
<table border=1 cellpadding=0 cellspacing=0 width=320>
<tr><td>{$v.tov_name}</td></tr>
<tr><td>{$v.tov_text}</td></tr>
<tr><td>{$v.tov_sena}</td></tr>
<tr><td>{$v.articl}</td></tr>
<tr><td>
{/foreach}
Это если я правильно вспомнил синтаксис смарти, потому как это говно давно не использовал.
Записан

Professor    ↓ 
28 Октябрь, 2008, 12:36:05 , спустя 3 часа 8 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Все правильно. Как я и предлогал в первом сообщении))
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
Saimon    ↓ 
28 Октябрь, 2008, 11:41:54 , спустя 11 часов 5 минут 49 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 76
Сила слова: 0

Спасибо все заработало
 
Еще просьба, подскажите какие книги почитать на эту тему (Smarty и PHP), я еще только учусь.
Записан
md5    ↓ 
28 Октябрь, 2008, 11:56:42 , спустя 14 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10494
Сила слова: 1.19

сначала почитать про php,
smarty ещё рано
не понимаешь что должен передавать и куда и как это обрабатывать
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
Страниц: [1] 2 3 ... 5
Печать
 

Перейти в: