За последние 24 часа нас посетили 17693 программиста и 1658 роботов. Сейчас ищут 919 программистов ...

как записать правильно? - PHP

Тема в разделе "PHP и базы данных", создана пользователем wolf777, 10 авг 2015.

  1. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    прописал так (думаю так верно будет)

    Код (PHP):
    1. $result="SELECT * FROM tb_ads_100x100 WHERE `id`='".$id."'";
    2. $result=mysql_query($sql);
    3. while($row=mysql_fetch_array($result)) {
    4.           $url=$row['url'];    
    5. If (isset($_GET['del'])) {          
    6. echo '<center><table cellspacing="0" class="print" style="width:400px">
    7. <tr><th class="title" colspan="5">Вы точно хотите удалить ссылку <b>'.$url.'</b>?<br/></th></tr>
    8. <td class="p"><center>[url="?mode=del&id='.$id.'&ok=ok"]да[/url]
    9.  / [url="?mode=read"]нет[/url]</td></table>';
    10. } else {
    11. $result=mysql_query("DELETE FROM tb_ads_100x100 WHERE `id`='".$id."'");
    12. }
    13. }
    предупреждение этой строки
    Код (PHP):
    1. while($row=mysql_fetch_array($result)) {
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\ass.su\WWW\modules\ads\my_ads.php on line 6

    как исправить?
     
  2. ol.vo

    ol.vo Активный пользователь

    С нами с:
    5 авг 2015
    Сообщения:
    47
    Симпатии:
    0
    PHP сказал, как исправить: передать resource в mysql_fetch_array. Видимо, ссылку на соединение с БД.
     
  3. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Видимо результат запроса не данные, а информация об ошибке. Проверьте правильность составления запроса.

    Я думаю ошибка тут:
    Код (PHP):
    1. $result="SELECT * FROM tb_ads_100x100 WHERE `id`='".$id."'";
    2. $result=mysql_query($sql); 
    Надо так
    Код (PHP):
    1. $sql="SELECT * FROM tb_ads_100x100 WHERE `id`='".$id."'";
    2. $result=mysql_query($sql); 
     
  4. ol.vo

    ol.vo Активный пользователь

    С нами с:
    5 авг 2015
    Сообщения:
    47
    Симпатии:
    0
    Попробуй mysql_error()

    Добавлено спустя 13 минут 31 секунду:
    Я вообще слабо понимаю логику скрипта. Сначала выборка по id из таблицы.Зачем выбирать все, а работать только с url?
    Может лучше написать так:
    Код (PHP):
    1. "SELECT `url` FROM tb_ads_100x100 WHERE `id`='".$id."'"; 
    ?
    Но это ещё ладно, после этого мы проходимся циклом по массиву результатов, и в случае, если существует $_GET['del'], мы задаем вопрос, а в случае, если он не существует, мы удаляем запись из БД.
    Логика?
     
  5. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    так работает все)))

    Код (PHP):
    1. $id = $_GET["id"];
    2.  
    3. If (isset($_GET['del'])) {    
    4. $sql=mysql_query("SELECT * FROM tb_ads_100x100 WHERE `id`='".$id."'");  
    5. echo '<center><table cellspacing="0" class="print" style="width:400px">
    6. <tr><th class="title" colspan="5">Вы точно хотите удалить ссылку <b>'.$url.'</b>?<br/></th></tr>
    7. <td class="p"><center>[url="?mode=del&id='.$id.'&ok=ok"]да[/url]
    8.  / [url="?mode=read"]нет[/url]</td></table>';
    9. } else {
    10. $result=mysql_query("DELETE FROM tb_ads_100x100 WHERE `id`='".$id."'");
    11. } 
     
  6. ol.vo

    ol.vo Активный пользователь

    С нами с:
    5 авг 2015
    Сообщения:
    47
    Симпатии:
    0
    Странная логика != неработоспособность
    Это вы должны знать, почему он работает/не работает, а не у нас спрашивать)
    Хотя и этот код странный. Я вижу там case и предполагаю, что там есть switch. Но смысл размещать break в блоке if? Опять напутали с блоками?
    Код (PHP):
    1. If (!$result){
    2. echo 'Ошибка запроса к бд...';
    3. break;
    4. }