За последние 24 часа нас посетили 17607 программистов и 1650 роботов. Сейчас ищут 898 программистов ...

Ки паса ПАРАДОКС!!!

Тема в разделе "PHP для новичков", создана пользователем Panich, 7 фев 2012.

  1. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    php:
    Код (PHP):
    1. include ("bd_fotouser.php");
    2.                        $sql17 = "SELECT `id`,`avatar` FROM `fotouser` WHERE `id_user_ava`='$id'";
    3.                        $result17 = mysql_query($sql17, $db_foto)or die("Ошибка в запросе: " . mysql_error());
    4.                        if (!$result17)
    5.                       {
    6.                       echo "ошибка - ".mysql_error()."<br>";
    7.                        echo $sql17;
    8.                        exit();
    9.                       }
    10.                     else
    11.                     {
    12.                         while($myrow17 = mysql_fetch_assoc($result17))
    13.                         {
    14.                         //ещё кнопки удаления и установки главной фотографии
    15.                         //если нет фоток,то надпись"не загружали фотографий" будет выводиться мнгого раз?
    16.                         //должно выводиться сообщение с вопросом-"вы уверены,что хотите удалить изображение?"
    17.                         //может быть сделать файл,в котором будут оговаривать условия загрузки изображений-(не картинки,не дети,не животные и т.д.)
    18.                             if(!empty($myrow17['id']))
    19.                             {
    20.                             $avaForma.='<img class="img_red" alt="" src="'.$myrow17["avatar"].'">
    21.                             <a name="del_foto" href=""><img class="dell_img" alt="" src="/znakomstva/files/net-avatara.jpg"></a>
    22.                             <input type="hidden" name="dell_img_id" value="'.$myrow17["id"].'">';
    23.                             }
    24.                             else
    25.                             {
    26.                             $avaForma.='<strong class="img_no">"Вы ещё не загружали фотографии!"</strong><br>';  
    27.                             }    
    28.                         } 
    Так всё время здесь:value="'.$myrow17["id"].'" выводит значение только первой картинки и при отсутствии изображений в базе не выводит сообщение: "Вы ещё не загружали фотографии!".А если вставляю while во внутрь проверки ifelse, то выводит id только второго изображения,так как первое вообще перестаёт высвечиваться...
    Как быть?Прошу помощи...
     
  2. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    Код (PHP):
    1. var_dump(!$result17);  
    будешь удивлён :)
     
  3. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Это условие никогда не сработает в его случае.
     
  4. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Пишет,что не найдена данная функция почему-то...
     
  5. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    не может такого быть !
    короче нужно проверять mysql_num_rows
     
  6. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Потому что
    Код (PHP):
    1. while($myrow17 = mysql_fetch_assoc($result17)) <=== FALSE если записей нет
    Добавлено спустя 35 секунд:
    Код (PHP):
    1. $result17 = mysql_query($sql17, $db_foto)or die("Ошибка в запросе: " . mysql_error()); 
    Сюда глянь
     
  7. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    die это не тру !
     
  8. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    вот именно =)

    PS: Que pasa?!
     
  9. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Даже если втавить while в ifelse,то это выдаёт новвые проблемы(в самом начале писал!)
    Всё замечательно Вы пообщались...вот только моя проблема не решена!!!
    Как быть,ТОВАРИЩИ!?
     
  10. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Вам, уважаемый, уже кинули решение проблемы ввиде: mysql_num_rows
     
  11. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Попробовал так:
    Код (Text):
    1. if(mysql_num_rows($myrow17) > 0)
    2.                         {
    3.                             while($myrow17 = mysql_fetch_assoc($result17))
    4.                             {
    5.                         //ещё кнопки удаления и установки главной фотографии
    6.                         //если нет фоток,то надпись"не загружали фотографий" будет выводиться мнгого раз?
    7.                         //должно выводиться сообщение с вопросом-"вы уверены,что хотите удалить изображение?"
    8.                         //может быть сделать файл,в котором будут оговаривать условия загрузки изображений-(не картинки,не дети,не животные и т.д.)
    9.                             $avaForma.='<img class="img_red" alt="" src="'.$myrow17["avatar"].'">
    10.                             <a name="del_foto" href=""><img class="dell_img" alt="" src="/znakomstva/files/net-avatara.jpg"></a>
    11.                             <input type="hidden" name="dell_img_id" value="'.$myrow17["id"].'">';
    12.                             }
    13.                         }
    14.                         else
    15.                         {
    16.                         $avaForma.='<strong class="img_no">"Вы ещё не загружали фотографии!"</strong>';  
    17.                         }
    Теперь выдаёт ошибку:
    Код (Text):
    1. Warning: mysql_num_rows() expects parameter 1 to be resource, null given in....
    И выводит сообщение,что не загружал ещё сообщений,хотя одно есть.А если загрузить второе,то выведет его проигнорив первое...
     
  12. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  13. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Сделал так:
    Код (Text):
    1. if (mysql_num_rows($result17)==0)
    2.     {
    3.         $avaForma.='<strong class="img_no">"Вы ещё не загружали фотографии!"</strong>';  
    4.     }
    5.     else
    6.     {
    7.         while($myrow17 = mysql_fetch_assoc($result17))
    8.         {
    9.             $avaForma.='<img class="img_red" alt="" src="'.$myrow17["avatar"].'">
    10.             <a name="del_foto" href=""><img class="dell_img" alt="" src="/znakomstva/files/net-avatara.jpg"></a>
    11.             <input type="hidden" name="dell_img_id" value="'.$myrow17["id"].'">';
    12.         }
    13.     }
    Спасибо за помощь!
    Вот только,когда через alert вывожу id,которые попали в $myrow,то выводит один и тот же-последней добавленной...а нужно что бы в каждом .$myrow17["id"]. было id конкретной фотографии.
    Тут в чём причина?
     
  14. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    если вы собираетесь использовать не одну единицу данных то замените это:
    Код (Text):
    1.  
    2. <input type="hidden" name="dell_img_id" value="'.$myrow17["id"].'">';
    На это:
    Код (Text):
    1.  
    2. <input type="hidden" name="dell_img_id[]" value="'.$myrow17["id"].'">';
    $_REQUEST['dell_img_id'] будет содержать массив перечисленных img_id
     
  15. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Мне вот тут хочется смысл понять:
    как так выводит все три фотографии как нада(которые я загрузил в базу данных ранее),в вот все их три id вставлять не хочет?Цикл один получается,но работает лишь с переменной avatar.Разве такое может быть?Да и ранее так выводил-всё нормально получалось...
    А теперь вывожу так:
    Код (Text):
    1. $('.dell_img').click(function(){
    2.     var fovoIdDell = $('input[name=dell_img_id]').val();
    3.     alert (fovoIdDell);
    4. });
    и выдаёт везде id последней из загруженных!
     
  16. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    у Вас не один элемент input[name=dell_img_id], а несколько вот и получается, что берет последний.
     
  17. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Я потом хочу значения id передавать через ajax в php файл.Вот зачем всё это затеял!
    Как это реализовать?
     
  18. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (Text):
    1.  
    2. $('.dell_img').click(function(){
    3.      $('input[name=dell_img_id]').each(function(){
    4.         alert($(this).val());
    5.       });
    6. });
    ну типа того

    Добавлено спустя 9 минут 29 секунд:
    или так:
    Код (Text):
    1.  
    2. $("input[name=dell_img_id\\[\\]]").each ....
     
  19. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Вот так работает уже почти правильно как задумал.Только начал читать про js и ajax-забыл про each.
    Смысл в том,что хочу потом через ajax передавать переменную в php файл и поэтому нужен id каждой конкретной картинки,соответственно,что тут ни так делаю:
    Код (Text):
    1. var fovoIdDell = $('input[name=dell_img_id]').each($(this).val());
    или
    Код (Text):
    1. var fovoIdDell = $(this).parent().parent().find('input[name=dell_img_id]').val();
    Хочу получить по щелчку и вывести через alert идентификатор конкретного изображения.То-есть нажал на кнопку рядом с ним:
    Код (Text):
    1. <a name="del_foto" href=""><img class="dell_img" alt="" src="/znakomstva/files/net-avatara.jpg"></a>
    И вывело конкретное id именно этого изображения!Как реализовать?
     
  20. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Кому интересно,то работает вот так:
    Код (Text):
    1. $('a[name=del_foto]').click(function(){
    2.      var val = $(this)next().val();
    3.      alert(val);
    4. });
    Всем огромнейшее спасибо............всё гениальное просто!)))