|
|
|
| Приветствую ! У меня проблема. Сделал сайт объявлений, там есть фото, текст объявлений, дата, телефон, юзер. Проблема в том, что если пользователь не добавляет фото, нужно сделать так, чтобы выводилась картинка по умолчанию. Картинки у меня хранятся в базе, поле image mediumblob. почему именно в базе, потому что объявления обновляются каждый день, и те объявления которые старше 7 дней они удаляются. Вот PHP код для вывода картинки из базы:
<?php
include("db.php");
if ( isset( $_GET['id'] ) ) {
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `image` FROM `nkjsg` WHERE `id`=".$id;
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
}
}
?>
пробовал сделать условие что если $query пуста то выводится картинка из другой таблицы, но что то не получается, по всякому пробовал, и ни как чё то не хочет. Может кто то и подскажет как решить эту проблему. Заранее спасибо | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 10:18)
| | >пробовал сделать условие что если $query пуста то выводится картинка из другой таблицы, но что то не получается, по всякому пробовал, и ни как чё то не хочет.
Так это и делается. Что именно не получается? Как именно делали? | |
|
|
|
|
|
|
|
для: Киналь
(10.09.2011 в 10:44)
| | <?php
include("db.php");
if ( isset( $_GET['id'] ) ) {
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `image` FROM `OB` WHERE `id`=".$id;
if ( isset( $_GET['image'] ) ) {
$query = (int)$_GET['image'];
if ( $query > 0 ) {
$query = "SELECT `image` FROM `rps` WHERE `id`=1";
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
}
}
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
}
}
?>
вот так. | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 10:52)
| | Как вы экономите имена переменных) Сплошные $query. Лучше, всё-таки, давать разные имена.
Только я логику не понял. Сначала вы формируете запрос на картинку из таблицы "OB" с выборкой по id. Потом, если есть GET-параметр image, то запрос уже к "rps" для записи с id=1. После этого выполняете получившийся запрос. А потом почему-то ещё раз выполняете, уже безо всяких проверок. Вы именно такой алгоритм имели в виду?
И да, оформляйте, пожалуйста, код в тегах [ code ]. | |
|
|
|
|
|
|
|
для: Киналь
(10.09.2011 в 11:18)
| | если честно я уже запутался голова не соображает, поэтому и написал в форум
[ code ]<?php [ code ]
[ code ]include("db.php"); [ code ]
[ code ]if ( isset( $_GET['id'] ) ) { [ code ]
[ code ] $id = (int)$_GET['id']; [ code ]
[ code ] if ( $id > 0 ) { [ code ]
[ code ] $query = "SELECT `image` FROM `OB` WHERE `id`=".$id; [ code ]
[ code ]else {$query=""; $q = "SELECT `image` FROM `rps` WHERE `id`=1"; [ code ]
[ code ] $r = mysql_query($q); [ code ]
[ code ] if ( mysql_num_rows( $r ) > 0) { [ code ]
[ code ] $i = mysql_fetch_array($r); [ code ]
[ code ] header("Content-type: image/*"); [ code ]
[ code ] echo $i['image']; [ code ]
[ code ] } [ code ]
[ code ] } [ code ]
[ code ] $res = mysql_query($query); [ code ]
[ code ] if ( mysql_num_rows( $res ) > 0) { [ code ]
[ code ] $image = mysql_fetch_array($res); [ code ]
[ code ] header("Content-type: image/*"); [ code ]
[ code ] echo $image['image']; [ code ]
[ code ] } [ code ]
[ code ] } [ code ]
[ code ]} [ code ]
[ code ]?> [ code ]
так тоже не работает | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 11:22)
| | Как говорили в старые добрые времена, в этом случае нужно сходить попить чаю=)
Начинать всегда надо со словесного описания алгоритма. Можно его даже записать или нарисовать. Итак, что вам нужно? Смею предположить, что примерно следующее:
- если есть id, то запросить картинку, соответствующую id;
- если нет id, то выдать дефолтную картинку.
Верно?
Формализуем.
<?php
$id = (int)$_GET['id'];
if ($id > 0) // если указан id
{
$q = "SELECT `image FROM `users` WHERE id=`$id`"; // запрос картинки из базы по id
$res = mysql_query($q) or die(mysql_error()); // если что-то не так, то стоп
if (mysql_num_rows($res) == 0) die('Нет такой буквы в этом слове!'); // если такого id нет, то стоп
$image = $mysql_result($res, 0); // получили кратинку по id
}
else // id не указан
{
$image = <здесь что-то типа base64encode('default_filename.jpg'), не помню синтаксис, извините>
}
// теперь отдаём картинку пользователю
header("Content-type: image/*");
echo $image['image'];
?>
|
| |
|
|
|
|
|
|
|
для: Киналь
(10.09.2011 в 11:36)
| | не много не так, id то есть в любом случае потому что в баезе есть id telefon text user data но нет image. поле есть но оно пустое blob 0 байт | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 11:41)
| | если id вообще в данной таблице не существует, то выводится страница с сообщением "В этом разделе пока ещё нет объявлений, Вы можете добавить объявления в этот раздел." и ссылка к форме | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 11:41)
| | Так подправьте немного скрипт) Это же только пример. Сделайте проверку не на существование id, а на непустоту image. | |
|
|
|
|
|
|
|
для: Киналь
(10.09.2011 в 12:14)
| | хорошо спасибо, попробую. : ) | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 12:17)
| | Ура ! ! ! ! ! ! ! ! З А Р А Б О Т А Л А ! ! ! ! вот код
code
<?php
include("db.php");
$id = (int)$_GET['id'];
$query = "SELECT `image` FROM `OB` WHERE `id`=".$id;
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
if ($res <= "0"); header("Location: http://site.ru/00000.jpg");
?>
/code | |
|
|
|
|
|
|
|
для: Денис2009
(10.09.2011 в 15:23)
| | Работает и хорошо) Хотя, конечно, не совсем всё корректно и грамотно, но это уж потом освоите) | |
|
|
|