Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 02:21   #1
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию Снова прошу помощи по мускул

Доброго времени всем.

Хочу загрузить графику в мускул. в таблице несколько полей, одно из них img. Атрибуты поля следующие - img longblob BINARY. Вроде бы закачал фотку, в расширении битмап. ТОлько не выводится она что то. Вывожу как и все остальное
Цитата:
$query ="SELECT * FROM receptes where name='$_REQUEST[a]' limit 1";
$result=mysql_query($query);

$r=mysql_fetch_array($result);

echo "<b>$r[name]:</b>$r[img]<p><p style=\"margin: 0 5px\" align=\"justify\"><i> $r[ingredients]</i><p/><p style=\"margin: 0 5px\" align=\"justify\">$r[description]\n";


mysql_close($link);
или по другому нужно? И кстати с псраметром longblob пишет макс размер файла 20,348 кБ. Это Двадцать килобайт, или Двадцать тысяч килобайт? Просто мнея запятая смущает...

Ух Ёёёёёё... Вывелась фотка... блин. Вот в таком виде:
BMЕ6(єП);$"85P/)I&7[7>b>2S1*I*3O26,1A)-@+6 ,G-!?"/P.$F(9" [D,I2!9'%7*!'$ $.( !.&"4'3H9 7($=/ "6)!3&%!4#2#)!0'':1 0@L+K . 6 ( %

И это только маа-а-аленьки кусочек белиберды... Как быть то?

Ну уж и еще вопрос до кучи... Как то задвоились данные в таблице мускул, можно ккаким то образом удалить одно из двух одинаковых значений поля name?

Последний раз редактировалось Андрей79; 05.04.2009 в 02:32.
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 07:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Андрей79
И это только маа-а-аленьки кусочек белиберды... Как быть то?
Так и должно быть! Вы HTML то знаете?! Как в нём отобразить рисунок?!
И, вообще-то, это скорее вопрос из области HTML / PHP, потому как данные вы из базы MySQL успешно достали.
Если вкратце, то Вам нужен ещё один скрипт, в котором будет прописан заголовок (header) (т.к. судя по дампу, который Вы привели, картинка у Вас в формате BMP):
Код:
header("Content-type: image/bmp");
(и, кстати, лучше картинки хранить в JPEG/GIF/PNG)
подробнее посмотрите обсуждение здесь:
http://sql.ru/forum/actualthread.aspx?tid=578237
http://sql.ru/forum/actualthread.aspx?tid=8663
http://sql.ru/forum/actualthread.aspx?tid=89647

Цитата:
Как то задвоились данные в таблице мускул, можно ккаким то образом удалить одно из двух одинаковых значений поля name?
можно. Другие поля, кроме name в таблице есть?
Если есть, какое из дубликатов надо оставить?
Если дубликатор >2, то удалять все, кроме одного?

Добавлено.
на будущее.
1) правилами запрещено давать такие темы, как дали Вы! Тема должна отражать реальное содержимое. например, в данном случае, Отобразить картинку из blob поля MySQL (PHP)
(можно короче, можно длинее, можно так, как понятее Вам, но никак не "HELP!", "Срочно!", "Прощу опять помощи" и т.д.
иначе потом поиском в подобных темах заблудишься!
2) не надо в одной теме задавать РАЗНЫЕ вопросы - лучше создать отдельную тему. (опять таки - читаем правила!)

Последний раз редактировалось Serge_Bliznykov; 05.04.2009 в 08:00.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2009, 08:28   #3
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
Цитата:
Как то задвоились данные в таблице мускул, можно ккаким то образом удалить одно из двух одинаковых значений поля name?

можно. Другие поля, кроме name в таблице есть?
Если есть, какое из дубликатов надо оставить?
Если дубликатор >2, то удалять все, кроме одного?
Да, таблица имеет 5 полей id1, id2, id3, id4 name. Удалять конечно же нужно все дубли.
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 15:38   #4
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
Печаль

Вроде бы понял, что к чему. Сделал тестовую таблицу с полями id и img_id

создал файл img_id.php, который создает запрос и выводит фото с таблицы:
Код:
<?
include $DOCUMENT_ROOT."/templates/config.php"; 
$query ="SELECT * FROM test_1 where id=1";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
echo "$r[img_id]";
mysql_close($link);
?>
а в месте, где хочу вывести фото, пишу:
Код:
<img src=\"/templates/img_id.php\" alt=\"\">
Все выводит. Только вот такой вопрос - структура таблицы(receptes), из которой нужно выводить, следующая: id, raznovidnost, nacional, dieta, postnoe, name, ingredients, description, img_id (поле с фотографиями). Так вот, при выборе пользователем определенной категории, например 1 блюда - Борщи, идет выборка из БД по полю id=1 и полю raznovidnost=2. Инфа выводится в виде ссылок, соответствующих полю name, вот этим кодом:
Код:
<? 
include $DOCUMENT_ROOT."/templates/config.php"; 

$query="SELECT * FROM receptes WHERE id=1 AND raznovidnost=1"; 
$result=mysql_query($query); 

echo '<table><tr>'; 

$counter=0; 
$counter2=0; 

while($r=mysql_fetch_array($result)) 
{ 
    $counter=$counter+1; 
    $counter2=$counter2+1; 

    echo '<td><a href="window.php?a='.$r["name"].'" target="_blank">'.$r["name"].'</a></td>'; 

    if(mysql_num_rows($result)>15 and mysql_num_rows($result)!=$counter2 and $counter==2) 
    { 
        $counter=0; 
        echo '</tr><tr>'; 
    } 
    elseif(mysql_num_rows($result)!=$counter2 and mysql_num_rows($result)<=15) 
    { 
        echo '</tr><tr>'; 
    } 
} 

if(mysql_num_rows($result)>15 and $counter==1) 
{ 
    echo '<td>&nbsp;</td>'; 
} 

echo '</tr></table>'; 

mysql_close(); 
?>
Далее, при нажатии на ссылку, выборка идет по всем полям, соответствующим значению name. Вот код:
Код:
<?
include $DOCUMENT_ROOT."/templates/config.php"; 
$query ="SELECT * FROM receptes where name='$_REQUEST[a]' limit 1";
$result=mysql_query($query);

$r=mysql_fetch_array($result);

echo "<b>$r[name]:</b>
<img src=\"/templates/img_id.php\" alt=\"\">
<p><p style=\"margin: 0 5px\" align=\"justify\"><i> $r[ingredients]</i><p/><p style=\"margin: 0 5px\" align=\"justify\">$r[description]\n";

mysql_close($link);

?>
Я не пойму, как правильно составить запрос в файле img_id.php, что бы он выбирал фото, соответствующее определенному значению поля name?

Подскажите пожалуйста....

Последний раз редактировалось Андрей79; 05.04.2009 в 18:05.
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 15:43   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

типа такого
Код:
SELECT * FROM <table_name_with_picture_links> where img_id = :pImgId
<table_name_with_picture_links> - твоя табличка с хранящимися в ней ссылками на соответствующие картинки

Последний раз редактировалось soleil@mmc; 05.04.2009 в 15:45.
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 15:56   #6
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
типа такого
Код:
SELECT * FROM <table_name_with_picture_links> where img_id = :pImgId
<table_name_with_picture_links> - твоя табличка с хранящимися в ней ссылками на соответствующие картинки
А без этой таблицы со ссылками на картинки никак? И нафига ссылки на картинки, если они у меня в БД хранятся? Или я что то не понял?....
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 16:59   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

тогда так
<table_name_with_picture_links> - таблица с картинками
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 17:30   #8
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
тогда так
<table_name_with_picture_links> - таблица с картинками
Наверноле вы меня не поняли... Мне нужно фотку вытащить не по ее id. Я выше все изложил.
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 19:43   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

конечно неверно
1) хотя бы потому что именовать поле с картинкой как "айдишник" это только в секретных службах - дабы запутать
это же твое
Код:
img_id (поле с фотографиями)
или это все-таки ссылка на другую таблицу.поле с фотографией?

2) если ты хочешь решить скл-ьную траблу, то зачем весь этот код?
3) то у тебя таблица имеет имя test_1, то имя receptes - ты уж определись

и еще - если ты смог слабать весь этот код, то ты не можешь его подправить чтобы вместо этого
Код:
<?
include $DOCUMENT_ROOT."/templates/config.php"; 
$query ="SELECT * FROM test_1 where id=1";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
echo "$r[img_id]";
mysql_close($link);
?>
было хотя бы так?
Код:
<?
include $DOCUMENT_ROOT."/templates/config.php"; 
$query ="SELECT * FROM test_1 where name='$_REQUEST[a]'";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
echo "$r[img_id]";
mysql_close($link);
?>
в кач-ве параметра, видимо, нужно юзать какую-то глобальную переменную

З.Ы.: чтобы дальше всех не запутывать - приведи описание всех таблиц важных для решения твоего вопроса

Последний раз редактировалось soleil@mmc; 05.04.2009 в 19:49.
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 19:55   #10
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
конечно неверно
1) хотя бы потому что именовать поле с картинкой как "айдишник" это только в секретных службах - дабы запутать
это же твое

Код:

img_id (поле с фотографиями)

или это все-таки ссылка на другую таблицу.поле с фотографией?

2) если ты хочешь решить скл-ьную траблу, то зачем весь этот код?
3) то у тебя таблица имеет имя test_1, то имя receptes - ты уж определись
Ну назвалось так... img_id это поле с фотками в таблице receptes. А таблица test_1 создал для тестирования. Прошу прощения если запутал.

Цитата:
было хотя бы так?

Код:

<?
include $DOCUMENT_ROOT."/templates/config.php";
$query ="SELECT * FROM test_1 where name='$_REQUEST[a]'";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
echo "$r[img_id]";
mysql_close($link);
?>
Так вот и вопрос то в чем, что так не работает нифига. Отображает пустой квадратик вместо фотки. Не пойму, как привязать name='$_REQUEST[a]' к файлу, который выводит картинку. в моем случае это файл img_id.php
Андрей79 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи. Снова Матрицы Diez Помощь студентам 13 07.02.2009 17:09
Прошу помощи. Brian Lee Jones Свободное общение 0 19.06.2008 00:21
прошу помощи! alexxxx Фриланс 1 07.06.2008 17:05
Прошу помощи!!! Oksana Общие вопросы Delphi 3 03.03.2007 12:51