powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу достать фотку из базы
60 сообщений из 60, показаны все 3 страниц
не могу достать фотку из базы
    #32498618
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Вот уже вторые сутки бьюсь страничка .
Сначала не мог затолкать фотку в базу, теперь затолкал, а вытащить как картинку не могу :(
вот код запроса:

$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
if ($number == 0) {
echo "No records";
} else {
while ($row=mysql_fetch_array($res)) {
echo "А это его фото: ".$row['foto'];
echo "<BR><BR>";
}


вот так я заливал фотки:

<form name="form" method="POST" encType=multipart/form-data action="register.php">

и сам скрипт (самый простой. $foto определена как BLOB):

$query = "INSERT INTO $userstable VALUES('$foto');

Памагите люди добрые.
Я так понимаю проблема в выводе фотки, а значит где-то в верхнем коде, но чё делать так и не пойму :( перепробовал уже все Content-Type - не реагирует :'-(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499343
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladoshka
1. HTML знаешь ?
2. Как там (в html) изображения выводятся ?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499374
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет земляк! ;)
HTML вроде знаю, только не пойму к чему вопрос?
если ты о img src то тут такое не пролетает - у меня же файл хранится только в базе.
а если ты о header ("Content-type: image/gif"); то уже вставил - не помагает :(
очень хотелось бы получить ответ на вопрос а не новый вопрос :(
может ты конечно хочешь меня натолкнуть на мысль, но я что-то никак на неё не натолкнусь :(
эээхъ...

--------

Говори! Говори, говорю! Кому говорят, говори! Вот ты говоришь: говори-говори, а как же я могу говорить когда ты всё время говоришь говори-говори.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499396
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
простите за нескромный вопрос: а нафига в базе хранить фото? Не лучше ли размещать их в ФС, а в БД хранить ссылку на них? И проще и удобнее, и правильнее.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499401
Фотография dalai lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladoshka

вы хттп знаете? ;)

после того, как вы сказали в интернет header ("Content-type: image/gif"), нужно сразу передавать байты картинки. и тогда броузер покажет картинку. а уж как эту картинку вывести на страницу - поможет знание хтмл
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499408
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> если ты о img src то тут такое не пролетает - у меня же
> файл хранится только в базе

ничего не пролетает :
1. HTML позволяет показывать только через тег <img src=...>
2. Для того чтобы показывать картинки, они н обязаны хранится в виде файлов.


В обшем случае тебе надо 2 скрипта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// этот скрипт генерирует HTML-код
$query =  "SELECT * FROM $userstable" ; 
$res = mysql_query($query) or die(mysql_error()); 
$number = mysql_num_rows($res); 
if ($number ==  0 ) { 
echo  "No records" ; 
} else { 
while ($row=mysql_fetch_array($res)) { 
echo  "А это его фото: <img src=\" image.php?image_id= ".$row['user_id']." \ ">" ;
echo  "<BR><BR>" ; 
} 

image.php :
Код: plaintext
1.
2.
3.
4.
5.
$image_id = max( 0 , intval($_GET['image_id']));
$res = mysql_query('SELECT foto FROM '.$usertale.' WHERE user_id = '.$image_id);
if (!$res || mysql_num_rows($res) ==  0 ) exit;
$row = mysql_fetch_row($res);
header( "Content-Type: image/jpeg" );
echo $row[ 0 ];


это не готовый скрипт, а примерный алгоритм.

ЗЫ
часто, картинки лучше хранить не в базе а в файле, как писал AlexPretov
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499430
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
результат немного лучше, но что-то не то :-/
Макс М, AlexPretov, можно связаться с вами как-нибудь (ICQ, ...)? Мне принципиально не важно хранить фотки в базе, но если я уже (как мне кажется) на пути к завершению (не без вашей помощи, Макс М.) то зачем хвататься за новое решение. Если оно проще - я готов.
Очень прошу свяжитесь со мной ICQ:98898302 или по мылу.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499437
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот мои image.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
mysql_connect($hostname,$username,$password) OR DIE( "Не могу создать соединение " );

mysql_select_db($dbName) or die(mysql_error());

$image_id = max( 0 , intval($_GET['image_id']));
$res = mysql_query('SELECT $foto FROM '.$userstable.' WHERE user_id = '.$image_id);
if (!$res || mysql_num_rows($res) ==  0 ) exit;
$row = mysql_fetch_row($res);
header( "Content-Type: image/jpeg" );
echo $row[ 0 ];

mysql_close();


и request.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
mysql_connect($hostname,$username,$password) OR DIE( "Не могу создать соединение " );

mysql_select_db($dbName) or die(mysql_error());
$query =  "SELECT * FROM $userstable" ;
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);

if ($number ==  0 ) {
 echo  "No records" ;
} else {
 while ($row=mysql_fetch_array($res)) {
 header ( "Content-type: image/gif" );
 echo  "А это его фото: <img src=\" image.php?image_id= ".$row['user_id']." \ ">" ;
 echo  "<BR><BR>" ;
 }
  echo  "<CENTER><P>Всего в нашей базе $number человек.<BR><BR>" ;
  echo  "</CENTER>" ;
}

mysql_close();


Вроде всё как ты посоветовал, Макс М.

------
Говори! Говори, говорю! Кому говорят, говори! Вот ты говоришь: говори-говори, а как же я могу говорить когда ты всё время говоришь говори-говори
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499460
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ICQ я не пользуюсь.
1. ты код который я привел хоть чуть-чуть понял ?
у тебя в таблице поле user_id есть ? Я его от балды написал. Говорил, что это не готовый код. Нельзя его просто скопировать, вставить себе и работать (я готовые коды не даю :P )

2. Самые явные ошибки:

> $res = mysql_query('SELECT $foto FROM '
чем в пхп одинарные кавычки от двойных оличаются знаешь ?
и что у тебя в переменной $foto ?

> while ($row=mysql_fetch_array($res)) {
> header ("Content-type: image/gif");
зачем здесь header() ?

Не пиши код который не понимаешь, лучше лишний раз переспроси.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499477
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user_id у меня конечно не было, но я пытался его создать - ничего не вышло :(
SQL пишет:

Ошибка
SQL-запрос :
ALTER TABLE `aupair` ADD `user_id` VARCHAR NOT NULL AUTO_INCREMENT FIRST
Ответ MySQL:
You have an error in your SQL syntax near 'NOT NULL AUTO_INCREMENT FIRST' at line 1


отличия кавычек не знаю :( но думаю что двойные без оператора используются а одинарная с оператором.
в $foto сама фотка в том виде, в котором в самый первый раз я представил на странице результатов.
header убрал :) больше не буду ;о)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499487
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создал user_id int unsigned NOT NULL auto_increment,
уже и фотки имеют вид http://utenti.lycos.it/ximik/image.php?image_id=1
только результат не радует :( это ж не картинка :-/
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499501
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запускаешь URL - http://utenti.lycos.it/ximik/image.php?image_id=11 в броузере и смотришь что он выводит.

Откуда там весь этот HTML ?

вставь в начало скрипта код:
Код: plaintext
1.
2.
error_reporting(E_ALL);
ini_set('display_errors', 'On');

если будут выводиться ошибки - исправляй
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499519
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Warning: ini_set, getrusage, mysql_list_dbs, get_current_user, set_time_limit, getmyuid, getmypid, dl, leak, listen, chown, chmod, chgrp, realpath, tmpfile, link, mb_send_mail() has been disabled for security reasons in /data/members/free/tripod/it/x/i/m/ximik/htdocs/request.php on line 15

вот такая ошибка вылетела когда я вставил эти 2 строчки :-/

вот это дело http://utenti.lycos.it/ximik/image.php?image_id=11 в брофсере выдаёт... сам видишь - ничего не выдаёт :(
а всё это делает сам request.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
mysql_connect($hostname,$username,$password) OR DIE( "Не могу создать соединение " );
mysql_select_db($dbName) or die(mysql_error());
error_reporting(E_ALL);
ini_set('display_errors', 'On');
$query =  "SELECT * FROM $userstable" ;
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);

if ($number ==  0 ) {
 echo  "No records" ;
} else {
 while ($row=mysql_fetch_array($res)) {
 echo  "А это его фото: <img src=\" image.php?image_id= ".$row['user_id']." \ ">" ;
 echo  "<BR><BR>" ;
 }
  echo  "<CENTER><P>Всего в нашей базе $number человек.<BR><BR>" ;
  echo  "</CENTER>" ;
}
mysql_close();
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499532
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В image.php в строке
Код: plaintext
$res = mysql_query( "SELECT $foto FROM " .$userstable. " WHERE user_id = " .$image_id);

попробовал и с одинарной кавычкой и с двойной - безрезультатно :'-(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499570
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, с таким хостером много не напишешь.

> вот это дело http://utenti.lycos.it/ximik/image.php?image_id=11 в брофсере
> выдаёт... сам видишь - ничего не выдаёт :(
ты не экран броузера смотри, а нажми в броузере "View Source"

Наверное твой хостер автоматом вставляет этот яваскрипт.
ИМХо в таком случае самое оптимальное - хранить картинки в файлах

> $res = mysql_query("SELECT $foto FROM ".$userstable." WHERE user_id = ".$image_id);

повторяю вопрос: Что у тебя в переменной $foto ?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499593
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в $foto я попытался запихнуть фотку
в базе у меня записано $foto как BLOB и я вижу в базе как там хранится файл размером в 3 килобайта (как я и заливал).

может действительно как-то файлами? :-/
я уже просто не знаю что делать :'-(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499599
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо :
Код: plaintext
$res = mysql_query( "SELECT $foto FROM " .$userstable. " WHERE user_id = " .$image_id); 

напиши (временно чтобы посмотреть запрос)
Код: plaintext
1.
2.
3.
$sql =  "SELECT $foto FROM " .$userstable. " WHERE user_id = " .$image_id; 
$res = mysql_query($sql);
echo $sql;
exit;

запусти http://utenti.lycos.it/ximik/image.php?image_id=11
и посмотри текст SQL-запроса, который ты в mysql передаешь.

ЗЫ
делай через файлы.
Я не знаю особенностей твоего хостинга, поэтому это единственное, что я могу предложить
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32499602
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал.
вот что выдал http://utenti.lycos.it/ximik/image.php?image_id=11
SELECT FROM aupair WHERE user_id = 11
я могу протестить на другом хостинге, но не уверен что поможет. мне и на этом впринципе всё разрешено ровно на столько на сколько это в других разрешается, а яваскрипт и баннеры мне не мешают :) главное что дают у них потестить работоспособность. 50 мегабайт, ПХП, SQL...

а сделать через файлы - с удовольствием :) только не знаю как :( тем более если это уже зашло таки в тупик :(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32500608
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты SQL знаешь ?
Ведь запрос:
Код: plaintext
SELECT FROM aupair WHERE user_id =  11  

неверный. Чего в нем не хватает ?

Как делать через файлы:
Создаешь папку /images/
при добавлении юзера в таблицу, получаешь user_id нового юзера (функция mysql_insert_id()) и в папку /images копируешь (move_uploaded_file()) закачанный файл и даешь ему в этой папке имя $user_id.".jpeg";
А когда надо фотку показать просто формируешь такой HTML-код:
Код: plaintext
1.
2.
while ($row=mysql_fetch_array($res)) { 
echo  "А это его фото: <img src=\" /images/ ".$row['user_id']." \ ">" ; 
echo  "<BR><BR>" ; 
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32500614
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то херово форум текст в кавычках подсвечивает :(((
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32500964
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, дорогой! :) ты меня наставил на путь истинный :)
я сейчас делаю по немного другой схеме и картинка выходит :) (старую я уже столько раз переделывал что теперь уже с трудом нахожу концы)...
вот посмотри если что
но теперь проблема в другом: надо будет собрать в кучу форму с аплоадом фотки и всё это не просто с файла на диске (как это работает по вышеуказаному линку) а именно с аплоада с файловой системы пользователя в интернете. схема считывания тоже есть, но надо будет немного поковырятся ;о)
если есть какие советы - буду рад выслушать.
спасибо большое за помощь и поддержку, земляк! даже не знаю как тебя и пивом то угостить (может летом поеду в Украину). Будут вопросы по Германии - я твой должник ;) (серьёзно!)
надеюсь мы не прощаемся и тему я ещё не закрываю :) - буду держать тебя в курсе (если не сильно ещё достал ;О))
буду делать и писать. ты тоже пиши... раз ICQ не пользуешься :(
удачного дня, Макс М. и весеннего настроения! :)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501021
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторнадо будет собрать в кучу форму с аплоадом фотки и всё это не просто с файла на диске (как это работает по вышеуказаному линку) а именно с аплоада с файловой системы пользователя в интернете
3 раза прочел - ничего не понял :(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501085
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Телепатирую: юзер должен иметь возможность публиковать свои фотографии на эту или иную страницу :-)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501326
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yanis, ты прав :)
Именно, чтобы человек зашел на страницу с формой, заполнил её, а потом ещё и добавил вместе с этим свою фотку :) которая и будет аплоадится в базу, а я другим запросом буду выводить его данные с фоткой.
Простой пример - служба знакомств, аукцион...
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501504
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем проблема ?
Ты не можешь форму для регистрации и форму для аплоада картинки в одну форму объединить или что ?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501644
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде того :)
это ж надо скрипт переделывать (у меня он только локальные файлы пока пишет, а надо переделать на файлы из вне) + всё это в один .php который будет не только фотку заносить в базу, а и всё остальное, но главное чтобы выбирать потом из базы именно ту фотку, которая соответствует именно тому id которому надо :)
потом это всё выдать в красивой форме и не все 100 сразу а одной странице, а скажем по 10 на каждой - в этом направлении у меня кстати пока вообще никаких соображений.
а всё это должно как-то объединятся с дизайном :(
то ли footer и header делать отдельно...
в общем работы ведутся ;)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501646
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> это ж надо скрипт переделывать

это не страшно. Никогда не бойся переписывать уже написанное.
С первого раза правильно ты все равно не напишешь.

> потом это всё выдать в красивой форме и не все 100 сразу а одной
> странице, а скажем по 10 на каждой - в этом направлении у меня кстати
> пока вообще никаких соображений.

читай доку к mysql по SELECT.
особое внимание обрати на ключевое слово LIMIT
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501707
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О нет!!!
Я похоже вернулся к тому с чего начинал :((((
сделал рабочую картинку на http://utenti.lycos.it/ximik/2/list.php - работает! видно же.
вот код list.php :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?
include_once("db.php");

$res=mysql_query("SELECT * FROM $userstable")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
  $image=mysql_result($res,  0 ,  1 ); 
  header("Content-type: image/gif");
  echo $image;

mysql_close();
?>


перенёс это к себе в request.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?php
include_once("db/db.php");

$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
if ($number ==  0 ) {
 echo "No records";
} else {
 while ($row=mysql_fetch_array($res)) {
 echo "Au-Pair ".$row['name']." aus ".$row['country'].".<BR>";
 echo "<BR><BR>";
 }
}

$res=mysql_query("SELECT * FROM $userstable")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
  $image=mysql_result($res,  0 ,  29 ); 
  header("Content-type: image/gif");
  echo $image;

echo "<CENTER><P>Es sind insgesamt $number Au-Pair in unserer Datenbank.<BR><BR>";
echo "</CENTER>";

mysql_close();
?>


НЕ работает! :( ПОЧЕМУ??? явное различие между этими двумя скриптами - это вместо 1 поставил 29 (потому что у меня там хранится фотка.
Вот результат http://utenti.lycos.it/ximik/3/request.php

Ну что же это за порча??? :(
ПАМАГИИИИТЕ люди добрые, бо сойду с ума ;) :(

З.Ы. более того, фотку то надо бы тоже вызывать в цикле а не всегда одну и ту же 0, 29, :) т.е. 0 должен идти по кругу, а как его записать то?

Код: plaintext
$image=mysql_result($res, $row['user_id'],  29 ); 


и всё это под строкой
Код: plaintext
echo "Au-Pair ".$row['name']." aus ".$row['country'].".<BR>";

что ли?... :-/
думаю что можно "споткнуться" и выдать не ту фотку когда например не все захотят заливать фото, а ведь надо именно того вывести, о ком выше строкой шла речь :-/
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32501856
Фотография Антон К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы, мужчина, зажигаете, конечно.
Н-да-а-а.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32502051
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не понял, тут кто-то родился сразу академиком SQL наук или как?!
это относится к Вам, Антон К.
разве я сказал что понимаю что-то в SQL или PHP?! - я как и наверное 80% здесь общающихся прошу совета. И не потому что мне делать нечего, а потому как больше недели бьюсь над одним и тем же.
Если есть чем помочь - буду благодарен почитать.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32502776
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. вставь в начало своего кода строку:
Код: plaintext
error_reporting(E_ALL); 
а то ты не все свои ошибки видишь.
Скорее всего после этого у тебя будут выводиться куча ошибок. Они были и до этого, просто ты о них не знал. Исправляй их (бзе применения оператора @)

2. нельзя одним скриптом и HTML и картинки выводить.
Покажи мне простейший HTML-код который выводит картинку.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503068
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хааа :) я кажется понимаю о чём ты ;)
ты говоришь о
Код: plaintext
<img src="">

верно?!
а в list.php перекинуть весь запрос на фотку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
include_once("db/db.php");

$res=mysql_query("SELECT * FROM $userstable")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
  $image=mysql_result($res,  0 ,  29 ); 
  header("Content-type: image/gif");
  echo $image;

mysql_close();
?>

Всё бы хорошо, и отдельно list.php выводит фотку и отдельно request.php выводит всё остальное, но вместе...
я запихнул в request.php строку для вывода фотки
Код: plaintext
echo "<img src="list.php">";

но тут конечно же что-то не так :( я не очень силён в синтаксисе - он выводит ошибку Parse error: parse error, expecting `','' or `';'' in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/request.php on line 14
это именно в этой строке. наверное где-то надо добавить косую... или ещё чё-то... попробую где-то найти :-/
но и остаётся вопрос открытым: как же пустить и фотку по циклу? он же мне будет выводить при таком коде всегда только первую фотку :(

мне вчера посоветовали делать всё с (или через) global off :-/
если честно - я не знаю чё это такое и как через него (или с ним) делать :-/
хотелось бы узнать твоё мнение Макс М.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503109
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не :(
изменил на echo "<img src=\"list.php\">"; вроде так должно быть и ошибок не даёт, но фотку не выводит :(
http://utenti.lycos.it/ximik/3/request.php
:((.........
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503128
Фотография dalai lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у меня вывело фотку...
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503189
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторно и остаётся вопрос открытым: как же пустить и фотку по циклу? он же мне будет выводить при таком коде всегда только первую фотку :(
Во-первых, list.php не имеет никакого отношения к request.php, он ничего о нем не знает.
Тебе нужно заставить скрипт list.php в разных местах выводить разные фотографии.
Единственный метод заставить скрипт делать разные вещи в зависимости в разных случаях - это передавать ему в этих разных случаях разные данные.
Данные скрипту можно тремя способами - POST (<form method="POST">), GET (параметры передаются в адресно строке), Cookie (в данном случае они не нужны).
Поэтому, чтобы у тебя в разных местах выводились разные фотки, в list.php надо передавать разные данные.
А теперь давай посмотрим, как я тебе предлагал раньше формировать вывод:
Код: plaintext
1.
2.
3.
while ($row=mysql_fetch_array($res)) { 
echo "А это его фото: <img src=\"image.php?image_id=".$row['user_id']."\">";
echo "<BR><BR>"; 
} 

В даном случае image.php - это наш list.php
Видишь, при каждой итерации цикла для скрипта image.php формируется разные параметры адресной строки.

автормне вчера посоветовали делать всё с (или через) global off :-/
если честно - я не знаю чё это такое и как через него (или с ним) делать :-/
хотелось бы узнать твоё мнение Макс М.
ИМХО для начинающего надо ставить такие настройки:
Код: plaintext
1.
register_globals Off
error_reporting E_ALL 

Первый указывает на режим регистрации переменных (почитай на http://faq.phpclub.net/ => "Не передаются переменные").
Вторая настройка - это режим вывода ошибок (будет показывать все ошибки).
Просто в ПХП можно "спрятать" ошибки, то есть их не будет видно, но они не будут исправлены.

По поводу того что картинка не выводится.
Проблема в том, что твой хостер каждому скрипту прикрепляет дополнительный HTML-код (типа рекламы). И когда ты выводишь картинку, у тебя сначало выводится сама картинка, а потом идет этот самый HTML.
Попробуй после
echo $image;
поставить exit; :
Код: plaintext
1.
echo $image;
exit; 

если не поможет, то имхо только через храненеи картинок в файлах прийдется делать
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503529
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вышло! :)
но фотка выводится одна и та же :(
код добавил, но я так понимаю мешает запись в list.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$res=mysql_query("SELECT * FROM $userstable")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
  $image=mysql_result($res,  [b]0 ,  29 ); < -- вот это мешает как я понимаю, ведь так и берётся 0, 29 :( чё с ним делать? убрал - вообще не выводит.[/b]
 
  header("Content-type: image/gif");
  echo $image;
exit;

соответственно посмотрел
http://utenti.lycos.it/ximik/3/list.php?image_id=1
http://utenti.lycos.it/ximik/3/list.php?image_id=2
http://utenti.lycos.it/ximik/3/list.php?image_id=3
..........
выводит тоже эту фотку (первую)
...при том, что в базе вообще только 2 записи ;)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503541
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и, кстати, я так и не пойму почему я не могу задать
не просто $res=mysql_query("SELECT * FROM $userstable")
а $res=mysql_query("SELECT $foto FROM $userstable")
я думаю одной проблемой было бы меньше... :-/
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503544
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори, кстати, я так и не пойму почему я не могу задать
не просто $res=mysql_query("SELECT * FROM $userstable")
а $res=mysql_query("SELECT $foto FROM $userstable")
я думаю одной проблемой было бы меньше... :-/
я тебе уже несколько раз намекал, на то что в строке:
Код: plaintext
$res=mysql_query("SELECT $foto FROM $userstable") 

ошибка. Пиши пока первый вариант.

Теперь по поводу того, что у тебя картинка одна и таже.
Я в предыдущем сообщении писал: авторЕдинственный метод заставить скрипт делать разные вещи в зависимости в разных случаях - это передавать ему в этих разных случаях разные данные.
Но если ты просто будешь писать
http://utenti.lycos.it/ximik/3/list.php?image_id=1
http://utenti.lycos.it/ximik/3/list.php?image_id=2
http://utenti.lycos.it/ximik/3/list.php?image_id=3
тебе это ничего не даст. Переменную $image_id надо в скрипте получить, проверить и использовать по назначению. Где в list.php у тебя используется переменная $image_id ? Если нигде, то зачем ее в скрипт передавать.
Сам додумаешься, как ее использовать или алгоритм подсказать ? (готовый код не дам, точнее что-то похожее на готовый код я уже давал, но ты там ничего не понял)
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503572
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну ты и шифруешься ;о)
перечитывал последний пост как наставление тибетского мудреца!
из всего этого понял...
вот, что понял - новый вид list.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
include_once("db/db.php");
$res=mysql_query("SELECT * FROM $userstable")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
for ($image_id =  0 ; $image_id <= $user_id; $image_id++) {
  $image=mysql_result($res, $image_id,  29 );
  header("Content-type: image/gif");
  echo $image;
exit;
}
mysql_close();
?>

но это не сработало :(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503579
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже лучше но не то.
Почитай доку к mysql по SELECT : http://dev.mysql.com/doc/mysql/ru/SELECT.html
Особое внимание обрати на ключевое слов WHERE и подумай, как туда впихнуть переменную $image_id
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503590
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так то или не то? :-)
эээх... почитал доки, но так кроме приравнивания WHERE $image_id=$user_id нииииччего умнее не придумал :-/
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503604
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> так то или не то? :-)
ты правильно понял, что по $image_id надо определять, какую картинку показывать, но реализация неверная.

авторно так кроме приравнивания WHERE $image_id=$user_id нииииччего умнее не придумал :-/ вот ты, что в этом случае, что в
Код: plaintext
а $res=mysql_query("SELECT $foto FROM $userstable") 
делаешь одну и ту же ошибку. Ты пишешь переменные сам не понимая для чего они там и не понимаешь, что в них находится. По-моему ты иногдя просто наугад пишешь, не понимая сути.
Объясни мне, зачем в первом случае ты использовал переменную $user_id и какое значение у тебя в этой переменной находится ?
Зачем во-втором случае ты использовал переменную $foto и что в ней находится ?


PS
хотя я думаю, что прежде чем я смогу тебе объяснить тебе твои ошибки, ты быстрее на ПХПКлубе получишь готовый код от доброго дяди.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32503608
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс, ну зачем же так?
я не ищу лёгких путей, просто подумал что параллельно можно вести беседу и там.
$user_id у меня автоматический счётчик INT (уникальный)
а в $foto хранится в базе как раз эта фотка, которую я считал и запихнул в базу.
использую, для того чтобы не всё (*) выбирать из базы, а только фотки ($foto).
$user_id я вывожу (и приравниваю к нему) для того, чтобы все фотки выводить в цикле, который равен количеству юзеров $user_id (1,2,3,4...) тогда (как мне кажется) счётчик будет выводить и фотки именно в таком порядке ($image_id, 29) но $image_id я так понимаю я пока не определил :-/ и как его связать с $user_id я тоже не очень пойму.

З.Ы. не сердчай за PHPClub, окей? я правда не думал что так обернётся...
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504387
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот :-(
ну ты что, обиделся что ли, земляк? :-/
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504475
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял что request.php уже трогать не надо - он не выдаёт никаких ошибок. А вот поставил error_reporting(E_ALL); в list.php так он мне мало того что выдал
Notice: Undefined variable: user_id in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php on line 8
Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php:8) in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php on line 10

так ещё и фотку в закорючках вывел :(
в общем я так понимаю пока сам http://utenti.lycos.it/ximik/3/list.php не будет выдавать 2 разные картинки - надеятся не на что. а запросы типа http://utenti.lycos.it/ximik/3/list.php?image_id=1, http://utenti.lycos.it/ximik/3/list.php?image_id=2, http://utenti.lycos.it/ximik/3/list.php?image_id=3 - вообще являются глупыми... или?...
Ну не томи, начальник :( ответь что-нибудь...
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504684
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladoshka
я не круглостуточно OnLine. Тем более праздники на носу.
Да и обидеть меня незнакомому человеку нереально
Я вобщем-то могу тебе и клубе отвечать

авторв общем я так понимаю пока сам http://utenti.lycos.it/ximik/3/list.php не будет выдавать 2 разные картинки - надеятся не на что. а запросы типа http://utenti.lycos.it/ximik/3/list.php?image_id=1, http://utenti.lycos.it/ximik/3/list.php?image_id=2, http://utenti.lycos.it/ximik/3/list.php?image_id=3 - вообще являются глупыми... или?... неправильно ты понимаешь. Запросы типа
http://utenti.lycos.it/ximik/3/list.php?image_id=2 - правильные (переитай ка еще раз все что я писал, а то ты вроде сначало понимаешь, а потом забываешь наверное и опять повторяешь старые ошибки)

Все дело в $user_id. Его надо убрать и заменить на что-то другое


ЗЫ
сейчас посмотрю что тебе в клубе насоветовали
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504881
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
заменил на
Код: plaintext
1.
for ($image_id =  0 ; $image_id <= 'user_id'; $image_id++) {

по ходу дела ничего не изменилось :(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504950
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
цикл вообще здесь не нужен.
SQL-запрос надо праивльный написать.
SELECT * FROM $usertable WHERE ..... << вот что там вместо точек написать думай сам
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32504962
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и почитай, что тебе в клубе ответили
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505132
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
$res=mysql_query("SELECT * FROM $userstable WHERE $image_id='user_id'");

как я размышляю:
присваиваю переменной $image_id значение поля user_id из базы для того чтобы в запросе выводить значение
Код: plaintext
$image=mysql_result($res, $image_id,  29 );

в итоге:
http://utenti.lycos.it/ximik/3/list.php?image_id=0 - выводит первую фотку.
http://utenti.lycos.it/ximik/3/list.php - матюкается Notice: Undefined variable: image_id in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php on line 6
SQL ERROR in line 7, function mysql_query

а http://utenti.lycos.it/ximik/3/list.php?image_id=1 и все последующие выдают Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 8 in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php:8) in /data/members/free/tripod/it/x/i/m/ximik/htdocs/3/list.php on line 9
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505151
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай постпуим по другому. Забудь на время про ПХП.
Остановимся на SQL.
Допустим у тебя есть юзер с идентификатором 11 .
Тебе нужно получить строку из таблицы с этим идентификатором.
Напиши чистый (без пхп кода, без пхп-переменных, без символов $ )
который возвратит запись юзера с идентификатором 11 .
Начинаться будет SELECT * FROM user_table WHERE .... << что после where написать надо ?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505157
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT * FROM user_table WHERE id=11
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505183
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чё, неправильно?! :-(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505336
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не совсем в курсе, ты вроде писал что у тебя поле называется user_id, так ?
То есть более правильным будет запрос:
SELECT * FROM user_table WHERE user_id=11
(да, и название таблицы user_table я от балды написал, я не знаю, как она у тебя называется).

Теперь смотри, тебе надо с помощью пхп сгенерировать SQL-запрос, который был бы равен тому, что я привел выше.
Идентификатор пользователя у тебя в $image_id, нужно его использовать для создания такого запроса.
Как проверить, правильный ли запрос ты сгенерировал ?
Делается это так:
Код: plaintext
1.
2.
// генерируем SQL-запрос и сохраняем его в переменной 
$sql = "SELECT * FROM $usertable WHERE ..... "; // условие напишешь сам
echo $sql; // выводим запрос на экран

Этот код выведет запрос. Просто смотрищь и сравниваешь запрос с экрана с тем, что должно получиться. Если они чем то отличаются, значит неправильно генерируешь запрос.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505772
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже я понимаю, что ты имеешь ввиду...
сделал $res=mysql_query("SELECT * FROM $userstable WHERE user_id=1")
и запросил $image=mysql_result($res, 'user_id', 29); - он мне логично выдаёт фотку под номером 1. Я её вижу, но с тем же успехом можно просто написать $image=mysql_result($res, 1, 29); - фотка будет та же.
Теперь я просто не пойму что с этим делать дальше :)
я уже пытался написать $res=mysql_query("SELECT * FROM $userstable WHERE $image_id='user_id'") - это наверняка грамматически неверная запись... да и ошибка выпадает что не определено то image_id то user_id :-/
и вот я не пойму к чему это всё должно привести: то ли снова обратится к циклу... то ли одно из двух :) (второго варианта у меня нет)
да и этот (с циклом глупый) если в одной из записей будет отсутвовать фотка - то весь цикл сдвитется на 1 и тогда фотки не будут уже совпадать с user_id а значит будет просто мешанина. следовательно надо привязывать к user_id а, как я уже ранее писал, кроме $image_id='user_id' или что-то в этом духе в голову не лезет :-(
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32505812
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати, давно хотел спросить...
если видел фотки грузятся как-то не до конца :( :-/
с чем это может быть связано? я так понимаю они заливаются не до конца, а не только выводятся...
это проблема хостера или что-то не так в коде? или это как-то зависит от скорости инета?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32506383
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсделал $res=mysql_query("SELECT * FROM $userstable WHERE user_id=1")
и запросил $image=mysql_result($res, 'user_id', 29); - он мне логично выдаёт фотку под номером 1. Я её вижу, но с тем же успехом можно просто написать $image=mysql_result($res, 1, 29); - фотка будет та же.
Теперь я просто не пойму что с этим делать дальше :)
я уже пытался написать $res=mysql_query("SELECT * FROM $userstable WHERE $image_id='user_id'") - это наверняка грамматически неверная запись... да и ошибка выпадает что не определено то image_id то user_id :-/
смотри, у тебя запрос
Код: plaintext
SELECT * FROM $userstable WHERE user_id= 1 
выводит фотку для пользователя номер 1.
У тебя ссылки на скрипт выглядять так:
image.php?image_id=12
image.php?image_id=13
где $image_id - идентификатор пользователя, для которого надо вывести фотку.
Просто в запрос меняешь единицу на переменную $image_id и все
Код: plaintext
1.
$image_id = intval($_GET['image_id']);
$sql = "SELECT * FROM $userstable WHERE user_id=$image_id";

все этот запрос вернет запись только для одного пользователя поэтому цикл никакой не нужен.

Картинка у тебя не полностью показывается скорее всего из-за того что ты полю дал тип BLOB. Насколько я помню (подробности ищи в мануале к mysql) что он позволяет хранить не более 54Кб
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32506388
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в коде :
Код: plaintext
1.
$image_id = intval($_GET['image_id']);
$sql = "SELECT * FROM $userstable WHERE user_id=$image_id";

первая строка защищает код от SQL-injections.
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32506537
vladoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:) поменял на LONGBLOB
а чё такое "SQL-injections"? :-/
помнишь, мы говорили о global off я нашёл запись, которую надо вставить в .htaccess и все дела :) только у меня его нет (этого .htaccess) :(
его самому можно написать? или у него какой-то свой язык/формат?
и кроме того я не понял (точнее так пишут - перечитывал раз по 5) что больше ничего не надо делать? и что _FILE добавляются сами...? или их надо прописывать вместо моих переменных?!
также нашёл как сделать постраничный вывод, но он какой-то недоделаный что ли :-/
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$total_articles_number = $number;
$articles_per_page= 2 ;
$total_pages = ceil($total_articles_number/$articles_per_page);

  for ($i= 0 ; $i<$total_pages; $i++){

    $page_number=$i*$articles_per_page;

    if ($page_number!=$from) echo "<a href='".$PHP_SELF."?from=".$page_number."'> ".($i+ 1 )." </a>";

    else echo $i+ 1 ;
  }

я в упор не вижу (и эта ошибка вылетает) где в скрипте определяется $from
из-за этого выводит что неопределена $from и всё насмарку, а кроме того ошибка пишется как раз в том месте где деление по страницам, но все равно вывод на одной странице :-/ наверное надо параллельно использовать LIMIT?
...
Рейтинг: 0 / 0
не могу достать фотку из базы
    #32506576
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> а чё такое "SQL-injections"? :-/

http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf

> помнишь, мы говорили о global off я нашёл запись, которую надо вставить
> в .htaccess и все дела :) только у меня его нет (этого .htaccess) :(
> его самому можно написать?

можно (если хостер позволяет). Твой скорее всего нет.
В принципе если ты будешь писать свой код, предполагая, что у тебя register_globals = Off то этот код будет работать даже если у тебя на самом деле register_globals = On . А вот наоборот - нельзя.

> или у него какой-то свой язык/формат?
ну вобщем-то формат есть, но для тебя достаточно будет одной строки в файле:
Код: plaintext
 php_value register_globals Off 


> и кроме того я не понял (точнее так пишут - перечитывал раз по 5)
> что больше ничего не надо делать?
не совсем понял вопрос, если ты имеешь ввиду "Нужно ли еще что-то сделать чтобы был register_globals = Off", то нет больше ничего не надо (если у тебя .htaccess разрешен)

> и что _FILE добавляются сами...?
на самом деле они существуют даже при register_globals = On;
можешь в своем скрипте написать :
Код: plaintext
1.
2.
3.
echo "<pre>";
print_r($_GET);
echo "</pre>";
и вызвать его script.php? aaa=12&bbb=qwerty и он выведет твои параметры, взяв их из $_GET

В постраничном выводе у тебя приведена лишь навигация.
Переменная $form берется из GET-запроса. ЕСли он не определена (это скорее вего будет на первой странице) - будет выведено сообщение о том что переменная не определена.
напиши так:
Код: plaintext
1.
2.
3.
4.
if (!isset($from)) {
   $from =  0 ;
} else {
   $from = max( 0 , intval($from));
}


> наверное надо параллельно использовать LIMIT?
да нужно.
В сети была куча статей по постраничному выводу. Например на webscript.ru или посмотри faq.phpclub.net - там есть глава с ссылками на уроки по ПХП. Почитай их
...
Рейтинг: 0 / 0
60 сообщений из 60, показаны все 3 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу достать фотку из базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]