За последние 24 часа нас посетили 60810 программистов и 1743 робота. Сейчас ищет 951 программист ...

Нужна помощь

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

  1. leshiy

    leshiy Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    90
    Симпатии:
    0
    Помогите сделать ссылку на следующую картинку по id.Вот код выводящий картинку из бд
    Код (Text):
    1.  
    2.        <?
    3.     $result = mysql_query("SELECT `date`.*, `categories`.`tit`,
    4.     IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date`
    5. FROM `date`, `categories`
    6. WHERE `categories`.`id` = `date`.`cat`
    7.      ORDER BY id, id DESC LIMIT $start, 1",$db);
    8. $c=1;
    9. print "<table>";
    10. while ($myrow=mysql_fetch_array($result)){
    11. if ($c==1){
    12. print "<tr>";
    13. }
    14. print "<td>";
    15. printf( "<div class='rol'>
    16. <a href='jpg.php?id=%s'>
    17. <ins>
    18. <img src='%s'>
    19. </ins>
    20. ",$myrow['id'],$myrow['mini_img']);
    21. print "</td>";
    22. if ($c==1){
    23. print "</tr>";
    24. $c=0;
    25. }
    26. $c++;
    27. }
    28. print "</table>";
    29. ?>
    допустим эта картинка выводится по адресу jpg.php?id=16
    и нужно сделать на этой же странице ссылку jpg.php?id=17
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Не въехал, чего надо сделать. Этот код не выводит картинку по адресу jpg.php?id=16, скорее уж что-то вроде галереи картинок.
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    а ты ее не сделаешь так как нужно учитывать начало, ид над которой остановились и конец числа картинок, а у тебя все сыро и мято.
     
  4. leshiy

    leshiy Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    90
    Симпатии:
    0
    А так?
    Код (Text):
    1. <? include ("blocks/db.php");
    2. if (isset($_GET['id'])) {$id = $_GET['id']; }
    3. if (!isset($id)) {$id = 1;}
    4. $result = mysql_query("SELECT * FROM date WHERE id='$id'",$db);
    5. if (!$result)
    6. {
    7. echo "<p>Запрос не возможен</p>";
    8. exit(mysql_error());
    9. }
    10. if (mysql_num_rows($result) > 0)
    11. {
    12. $myrow = mysql_fetch_array($result);
    13. $new_view = $myrow["view"] + 1;
    14. $update = mysql_query ("UPDATE date SET view='$new_view' WHERE id='$id'",$db);
    15. }
    16. else
    17. {
    18. echo "<p>В бд нет записей.</p>";
    19. exit();
    20. }
    21.  ?>
    22. <a href="img.php?id=<? echo $myrow["id"]; ?>"><img src="<? echo $myrow["mini_img"]; ?>"></a>
     
  5. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Во-первых, в код просто просится sql-инъекция, потому что вы GET передаете напрямую в массив.
    if (isset($_GET['id'])) {$id = intval($_GET['id']); } - хотя бы так, если у вас числовые ID.
    Не уверен, является ли date командой mysql, но если это имя таблицы, то лучше select * from `date` (обратите внимание на косые апострофы).
    if (isset($_GET['id'])) {$id = $_GET['id']; }
    if (!isset($id)) {$id = 1;}
    Это заменяется на $id = isset($_GET['id']) ? $_GET['id'] : 1;
    Переменная $new_view не нужна. update date set view=view+1 where ....
    В последней строке (ну, это я уж придираюсь) можно заменить <? echo $myrow[...] на <?=$myrow[....]. Кстати, первую вставку можно заменить просто на $id