За последние 24 часа нас посетили 18996 программистов и 1640 роботов. Сейчас ищут 855 программистов ...

Выборка из базы в зависимости от значений сессии

Тема в разделе "PHP для новичков", создана пользователем Olga-Li, 18 июл 2014.

  1. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Ну да, а расширенный вариант можно? Телепатией не владею
     
  2. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Код (Text):
    1.  
    2. if($_FILES){ // проверяем существует массив.Если ДА:
    3.        
    4.  $name=$_FILES['uploaded_image']['name']; //название загруженного файла.
    5.  $temp=$_FILES['uploaded_image']['tmp_name'];// временная папка  загруженного файла.
    6.  move_uploaded_file($temp,"image/".$nazvanie);
    7. }
    Если надо весь код загрузки.
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Такое событие php напрямую отлавливать не может, поскольку оно в браузере происходит, а не на сервере.
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    у тебя же не 1 файл, как я понимаю. А здесь только 1.
    И да, у тебя там такие секретные разработки, что ты по маленькому кусочку выкладываешь?
     
  5. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Код (Text):
    1. if ($do == 'zapolnit'){
    2. unset($_SESSION['nazvanie']); //удаляем  название файла из сесии.
    3.  
    4.  }
    РАБОТАЕТ!
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    вы о разных вещах, не отвлекайся
     
  7. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Просто код большой не хочется весь выкладывать!
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    я переживу, раз уж взялся

    Добавлено спустя 1 минуту 2 секунды:
    можешь сюда http://pastebin.com/ выложить и ссылку дать. как вариант
     
  9. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Да ,не один файлов можно загружать хоть сколько

    Добавлено спустя 8 минут 4 секунды:
    Получается мне нужно в сессию сохранять не название картинки,а идентификатор картинки!

    Добавлено спустя 58 секунд:
    Последний вопрос,как это сделать?
    И я от вас ОТСТАНУ!
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    вот так
    Код (PHP):
    1. $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    2.  
    3. /* проверка соединения */
    4.     printf("Соединение не установлено: %s\n", mysqli_connect_error());
    5.     exit();
    6. }
    7.  
    8. mysqli_query($link, "CREATE TABLE myCity LIKE City");
    9.  
    10. $query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
    11. mysqli_query($link, $query);
    12.  
    13. printf ("ID новой записи: %d.\n", mysqli_insert_id($link)); 
     
  11. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Ребята, всем большое спасибо,в том числе за терпение !
    Luge, спасибо за ссылки,буду грызть гранит науки. Я самоучка, не так давно начала изучать php, так что ссылки кстати пришлись.
    Я пошла смотреть сны,у нас второй час ночи.
    Мне понятно где нужно изменить код,завтра буду исправлять.
    Всем спасибо!

    Добавлено спустя 6 минут 36 секунд:
    Ааа! Еще вопрос не по теме.

    Классный форум,сколько раз обращалась всегда кто-нибудь отвечает и помогает решать те или иные вопросы.

    Может как-то благодарят за предоставленную помощь,просто я не в курсе.
     
  12. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    К примеру есть таблица (img_tb) из 3-х столбцов 1 - ID , 2 - NAME, 3 - URL

    ты загружаешь файл и после чего добавляешь в базу данных информацию типа такого
    Код (PHP):
    1. $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    2. $db->query("INSERT INTO `img_tb`(`id`, `name`, `url`) VALUES ('0','foto.jpg','http://www.www.ww/img.php?url=edfsrdvfdvfdvd')");
    3. // первое значение '0' заменится на соответствующий номер в БД (он же auto_increment)   
    после чего (сразу) можно узнать ID который был присвоен данной записи следующим образом:
    Код (PHP):
    1. $id = $db->insert_id;
    а потом получаешь данные по картинке из БД следующим образом?
    Код (PHP):
    1. $db->query("SELECT * FROM `img_tb` WHERE `id`='{$id}'");
    PS должно работать.
     
  13. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    VLK,что-то поздно вы появились. Если честно я как зашла на форум ждала когда вы ответите,вы не один раз меня выручали.

    Добавлено спустя 55 секунд:
    Не ответили на вопрос.
     
  14. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Думаю, VLK обойдётся простым «спасибо» :D
     
  15. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Конечно,Luge!
    Ведь вся грязная работа была вами сделана!!! :)

    Ведь так?!
     
  16. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Я был занят, я спал :)
     
  17. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Аааа! Ну поспать это святое! :)

    Добавлено спустя 2 минуты 59 секунд:
    Вообщем все увиливают от вопроса.
    Значит я никому и ничего не должна!
    Всем спасибо!
    Я спать. :)
     
  18. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Ребята,изменила название файлов на id.
    Абсолютно ничего не изменилось, что id,что название файла сохранять в сессию. Все равно из БД выводится только картинка ,которая была загружена последней.
     
  19. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    У вас картинки грузятся по одной, али сразу все? Покажите скрипт загрузки картинок полностью. Через pastebin.com, чтоб удобно читать было
     
  20. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    По одной!
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А это реальный кусок кода? Выложите тогда код, как вы выводите картинки. И как вы реализуете удаление их из сессии.

    Добавлено спустя 56 секунд:
    Вообще, дайте какой-нибудь код, чтоб было с чем работать :) Я с вашего компа читать его вашими глазами не могу. От вас вон и уважаемый Luge вчера того-же пытался добиться
     
  22. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    У меня нет проблем с загрузкой! Единственная проблема,как выбрать из БД все название файлов ,кот совпадают с сессией.
    Если проверить через print_r(); видно,что id новой записи записывается в сессию
    Код (Text):
    1. Array ( [0] => 325 [1] => 326 [2] => 327 [3] => 328 [4] => 329 [5] => 330 )
    Сохранение полученного id
    Код (Text):
    1.  if($id==true){ // если id новой записи получили.
    2.    
    3.  $_SESSION['id'][ sizeof($_SESSION['id']) ] = $id; //сохраняем id новой записи в сессию в виде массива.
    4.  
    5.    }
    Получаем id из сессии
    Код (Text):
    1. session_start();
    2. $result=$_SESSION['id']; //id новой записи
    3.  
    4. foreach($result as $val){
    5.  
    6. echo '<h3>'.$val.'</h3>';
    7. }
    Выборка
    Код (Text):
    1. $get_coords = mysqli_query($link, "SELECT * FROM cms_dnevnik WHERE id='{$val}'"); // делаем выборку
    Добавлено спустя 6 минут 29 секунд:
    Конечно реальный и рабочий!
    Только сейчас немного изменен на
    Код (Text):
    1.  
    2.  <form action=""  method="post" autocomplete="off">
    3. <input type="submit"   name="zakrit"  value="Закрыть"/>
    4. </form>
    5.  if($zakrit){ // если нажата  кнопка "Закрыть",удаляем сессию
    6.  unset( $_SESSION['id']); // удаляем полученный идентификатор из сессии.
    7. }
     
  23. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    ОК, так это я вам ещё вчера показал, как сделать. Оператор in в помощь:
    Код (Text):
    1.  
    2. $get_coords = mysqli_query($link, sprintf("SELECT * FROM cms_dnevnik WHERE id in (%s)", implode(",", $_SESSION["id"])));
    Я использую sprintf, чтобы не прерывать запрос конкатенацией. По мне, это выглядит нагляднее, чем
    Код (Text):
    1.  
    2. $get_coords = mysqli_query($link, "SELECT * FROM cms_dnevnik WHERE id in (" . implode(",", $_SESSION["id"]) .")");
     
  24. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Вывод картинок
    Код (Text):
    1. {php}
    2.  
    3. $get_coords = mysqli_query($link, "SELECT * FROM cms_dnevnik WHERE id='{$val}'"); // делаем выборку
    4.  
    5.  
    6.  
    7.        
    8.         while($row = mysqli_fetch_array($get_coords)) {
    9.             $id = $row['id'];
    10.             $name = $row['name'];
    11.             $x = $row['x_pos'];
    12.             $y = $row['y_pos'];
    13.             $width= $row['width'];
    14.             $height= $row['height'];
    15.            
    16.            
    17.             if($width==0 AND $height==0){
    18.            
    19. echo '<div id="element" style="left:'.$x.'px; top:'.$y.'px;"><img id="img"   src="/components/dnevnik/image/'.$name.'"/></div>';
    20.  
    21.             }
    22.             else{
    23. echo '<div id="element" style="left:'.$x.'px; top:'.$y.'px;"><img id="img"  style=" width:'.$width.'px; height:'.$height.'px;"  src="/components/dnevnik/image/'.$name.'"/></div>';
    24.  
    25.  
    26.     }
    27.            
    28.     }  
    29.        
    30. {/php}
    Добавлено спустя 1 минуту 6 секунд:
    Понятно?
     
  25. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Подставьте один из вариантов кода из моего предыдущего поста (который прямо перед вашим последним), и глянем. А что у вас за инструкция {php}? Там что, smarty 2 ещё в придачу?