powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу достать фотку из базы
10 сообщений из 60, страница 3 из 3
не могу достать фотку из базы
    #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
10 сообщений из 60, страница 3 из 3
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу достать фотку из базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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