|
|
|
| Добрый день форумчане. Есть скрипт который открывает .txt Файл с ценами и заносит их в базу MySQL. у каждого товара теперь есть плюс ко всему и цена в базе. Таблица products, поле price
В разметку HTML из базы посредствам php кода выдирается информация. Уже какой день бьюсь над условием но не могу понять. Условие нужно такое:
Если у товара в поле price есть значение, т.е там не пусто то выводить цену (Цена: ... ), если пусто, то выводить (Цена: по запросу)
Очень нужна Ваша помощь, заранее большое спасибо!
<table cellpadding="0" cellspacing="0" class="bookmark">
<tr>
<td valign="top" style="background: url(/block_hd_tp_bg_l.gif) left #bdd1e6 repeat-y;"><img src="/tp_bg_l.gif" width="17" height="9" style="border-top:1px solid #A3B5C6;" alt=""></td>
<td class="block_hd_tp">
<div class="BookmarkName">
<h1><? print stripslashes($res->name); ?></h1>
</div>
<div class="BookmarkDate">
Артикул: <?=$res->number?>
< условие для выдирания цены из базы >
</div>
</td>
<td valign="top" style="background: url(/block_hd_tp_bg_r.gif) right #bdd1e6 repeat-y"><img src="/block_hd_tp_bg_r.gif" width="17" height="9" style="border-top:1px solid #A3B5C6;" alt=""></td>
</tr>
<tr valign="bottom">
<td style="background: url(/block_bd_bg_l.gif) left #ebebeb repeat-y; border-bottom: 1px solid #c8c8c8;"> </td>
<td class="block_bd">
<div style="padding: 16px;">
<div style="height:305px;"><img src="/products/<?=$res->photo1?>" name="picture" width="508" height="288" alt="<?=stripslashes($res->alt)?>" ></div>
</div>
</td>
<td style="background: url(/block_bd_bg_r.gif) right #ebebeb repeat-y; border-bottom: 1px solid #c8c8c8;"> </td>
</tr>
</table> | |
|
|
|
|
|
|
|
для: Leg1oneR
(10.08.2009 в 10:48)
| | ну и чего вы тут выложили ? неодного условия я здесь не вижу.. где SQL запросы ??
что у Вас таблица products из одного поля price состоит чтоли ???
примрено показываю как делается:
<?php
$sql = @mysql_query("SELECT * FROM products");
$products = @mysql_fetch_array($sql);
if (!empty($products['price']))
echo "Цена:" .$products['price'];
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(10.08.2009 в 11:05)
| | t3ma, пасиба большое, я правда немного ошибся в описании, вот щас подправил.
Код который написали, сработал все ок, но внужен цикл видимо для переборки по базе)
SQL запросы в самом скрипте. Я это кусок из php файла, который выбирает инфу из базы.
Если у товара в поле price есть значение, т.е там не пусто то выводить цену (Цена: ... ), если пусто, то выводить (Цена: по запросу) | |
|
|
|
|
|
|
|
для: Leg1oneR
(10.08.2009 в 11:34)
| | как-нибудь так
<?php
$sql = @mysql_query("SELECT * FROM products");
$count = 0;
while ($products = @mysql_fetch_array($sql))
{
if (!empty($products['price']))
echo "Цена:" .$products['price'];
else
echo "Цена: по запросу";
$count++;
}
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(10.08.2009 в 12:56)
| | Вот только тут бы, имхо, было логичнее использовать
if (isset($products['price']))
|
Все-таки здесь нам интересно присутствие цены, а не ее не отсутсвие %) | |
|
|
|
|
|
|
|
для: neadekvat
(10.08.2009 в 13:12)
| | Абсолютно верное замечание.
null в поле строки результата отлавливает именно isset()
с другой стороны, эту нагрузку можно было возложить на сторону СУБД.
См. COALESCE() | |
|
|
|
|
|
|
|
для: t3ma
(10.08.2009 в 12:56)
| | скрипт работает, но к сожалению выводит все записи для каждого продукта..
Я не силен конечно, но может как нить так:
<?php
$sql = @mysql_query("SELECT * FROM products");
$count = 0;
while ($products = @mysql_fetch_array($sql))
{
echo "Цена:" .$products['price'];
if (empty($products['price']))
echo "Цена: по запросу";
$count++;
}
|
| |
|
|
|
|
|
|
|
для: Leg1oneR
(10.08.2009 в 13:46)
| | привели бы чтоли фрагмент дампа таблицы...
со строками разных типов, само собой. | |
|
|
|
|
|
|
|
для: Leg1oneR
(10.08.2009 в 13:46)
| |
<?php
// pole - это поле в таблице где содержится нименование товара
// $name - это наименование товара
$sql = mysql_query("SELECT price FROM products WHERE pole='$name'");
if (mysql_num_rows() == 1) {
$price = mysql_result($sql, 0);
echo "Цена:" .$price;
}
else
echo "Цена: по запросу";
?>
|
| |
|
|
|
|
|
|
|
для: Leg1oneR
(10.08.2009 в 13:46)
| | а зачем тут $count++; если он нигде не используется? | |
|
|
|
|
|
|
|
для: neadekvat
(10.08.2009 в 13:57)
| | +1)) ет я ошибся) | |
|
|
|
|
|
|
|
для: t3ma
(10.08.2009 в 11:05)
| | 1. Зачем собаки перед именами функций?
2. Где проверки успешности выполнения запроса? | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2009 в 13:12)
| | @ - принудительно отключает ошибку при выполнении
хм.. ну а проверку если надо то думаю сами сделают, этож необязательно | |
|
|
|
|
|
|
|
для: t3ma
(10.08.2009 в 13:40)
| | >@ - принудительно отключает ошибку при выполнении
Чушь.
Ошибку невозможно отключить.
>хм.. ну а проверку если надо то думаю сами сделают, этож необязательно
И полбеды, что Вы так считаете.
Беда в том, что как следствие Вы пытаетесь давать такие советы другим.
А люди не виноваты, между прочим. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2009 в 13:41)
| | Нуу, зато можно её заставить не показываться нам на глаза.
Будет белый лист, а нифига не работает. Кто виноват? php.. А кто-то просто в названии таблицы ошибся. | |
|
|
|
|
|
|
|
для: neadekvat
(10.08.2009 в 13:44)
| | Я о том и говорю.
Глаза зажмурил - и как в танке. | |
|
|
|