2015-11-12 2 views
0

Код, указанный ниже, позволит вам просматривать список друзей и редактировать или удалять с той же страницы. Просмотр работает, но удаление и обновление не делают. Любая помощь будет оценена по достоинству. Просмотр кода:Почему запросы mysqli возвращают false?

$query ="SELECT * FROM tblFriends"; 
     $result = mysqli_query($conn,$query); 
     while($row =$result->fetch_assoc()){ 

     $fname=$row['fname']; 
     $lname=$row['lname']; 
     $address=$row['address']; 
     $desc=$row['description']; 
     $zip=$row['zip']; 
     $city=$row['city']; 
     $state=$row['state']; 
     $id =$row['key']; 

    echo 
    "<tr> 
    <td><input type='text' name='fname' value='$fname'/></td> 
    <td><input type='text' name='lname' value='$lname'/></td> 
    <td><input type='text' name='address' value='$address'/></td> 
    <td><input type='text' name='city' value='$city'/></td> 
    <td><input type='text' name='desc' value='$desc'/></td> 
    <td><input type='text' name='state' value='$state'/></td> 
    <td><input type='submit' name='Edit' value='Edit'/></td> 
    <td><input type='submit' name='Delete' value='Delete'/></td> 
    <input type='hidden' name='id' value='$id'/> 
    <input type='hidden' name='zip' value='$zip'/> 
    </tr>"; 
    } 

Update Код:

 if(isset($_POST['Edit'])){ 
      $fname1=$_POST['fname']; 
      $lname1=$_POST['lname']; 
      $city1=$_POST['city']; 
      $state1=$_POST['state']; 
      $zip1=$_POST['zip']; 
      $desc1=$_POST['desc']; 
      $address1=$_POST['address']; 
      $id1=$_POST['id']; 
      $UpdateQuery ="UPDATE tblfriends SET fname='$fname1', lname='$lname1',city='$city1',address='$address1',zip='$zip1',state='$state1' WHERE id=$id1"; 
      echo $id1; 
      if(mysqli_query($conn,$UpdateQuery)){ 
       echo "Updated"; 
      }else{ 
       echo "Not Updated"; 
      } 

    } 

Удалить Код: Это mysqli_query и обновление один возвращают ложный

if(isset($_POST['Delete'])){ 
      $id2 =$_POST['id']; 
      $deleteQuery= "DELETE FROM tblfriends WHERE id=$id2"; 
      if(mysqli_query($conn,$deleteQuery)){ 
       echo "Deleted"; 
      }else{ 
       echo "Not Deleted"; 
      } 
+0

ли вы сообщения об ошибках включены? Вы всегда должны проверить, есть ли у вас ошибки в ваших запросах. – Andrius

+0

@ Andrius Я не знал, что есть сообщения об ошибках, как я могу узнать, включено ли это? – DohnJoe

+0

'ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); error_reporting (E_ALL); 'shoud help. Измените свой вопрос, если вы получите какие-либо ошибки. – Andrius

ответ

0

Ive посмотрел на вашу игру, пытаясь выпустить ее странно?

$id =$row['key']; 

"UPDATE tblfriends SET fname='$fname1', lname='$lname1',city='$city1',address='$address1',zip='$zip1',state='$state1' WHERE id=$id1 

"DELETE FROM tblfriends WHERE id=$id2"; 

Просто, чтобы помочь вам, ваше имя является ключевым? но вы проверяете, совпадает ли идентификатор id? Не уверен, но это может быть ваша проблема

Таким образом изменить запрос к этому

$query ="SELECT * FROM tblFriends"; 
$result = mysqli_query($conn,$query); 
while($row = $result->fetch_assoc()){ 

    $fname=$row['fname']; 
    $lname=$row['lname']; 
    $address=$row['address']; 
    $desc=$row['description']; 
    $zip=$row['zip']; 
    $city=$row['city']; 
    $state=$row['state']; 
    $id =$row['key']; 

/** 
**Wrapped your input into a form which will post the request 
**/ 
    echo 
    " 
    <form action=\"#\" method=\"POST\"> 
    <tr> 
    <td><input type='text' name='fname' value='$fname'/></td> 
    <td><input type='text' name='lname' value='$lname'/></td> 
    <td><input type='text' name='address' value='$address'/></td> 
    <td><input type='text' name='city' value='$city'/></td> 
    <td><input type='text' name='desc' value='$desc'/></td> 
    <td><input type='text' name='state' value='$state'/></td> 
    <td><input type='submit' name='Edit' value='Edit'/></td> 
    <td><input type='submit' name='Delete' value='Delete'/></td> 
    <input type='hidden' name='id' value='$id'/> 
    <input type='hidden' name='zip' value='$zip'/> 
    </tr> 
    <br> 
    </form> 
    "; 
}; 

if(isset($_POST['Edit'])){ 
    $fname1= $_POST['fname']; 
    $lname1= $_POST['lname']; 
    $city1= $_POST['city']; 
    $state1= $_POST['state']; 
    $zip1= $_POST['zip']; 
    $desc1= $_POST['desc']; 
    $address1= $_POST['address']; 
    $id1= $_POST['id']; 



/** 
**Updated your query to match the key rather than ID. `key` 
**/ 

    $UpdateQuery ="UPDATE tblfriends SET fname='$fname1', lname='$lname1',city='$city1',address='$address1',zip='$zip1',state='$state1' WHERE `key` = '$id1' "; 
    echo $id1; 
    if(mysqli_query($conn,$UpdateQuery)){ 
     echo "Updated"; 
    }else{ 
     echo "Not Updated"; 
    }; 

}; 

if(isset($_POST['Delete'])){ 
    $id2 = $_POST['id']; 

/** 
**Updated your query to match the key rather than ID. `key` 
**/ 
    $deleteQuery= "DELETE FROM tblfriends WHERE `key` = '$id2' "; 
    if(mysqli_query($conn,$deleteQuery)){ 
     echo "Deleted"; 
    }else{ 
     echo "Not Deleted"; 
    } 
}; 
0

Измените этот запрос "DELETE FROM tblfriends WHERE id=$id2" with "DELETE FROM tblfriends WHERE id='$id2'". Лучше, если вы проверите свой запрос, запустив его в редакторе запросов (например, phpmyadmin в tab sql). Попробуйте тестирование, как это в вашем коде:

$deleteQuery= "DELETE FROM tblfriends WHERE id=$id2"; 
die($deleteQuery); 

затем скопировать результат, показанный в браузере, а затем вставить в PHPMyAdmin. запустите его там. Надеюсь, это может вам помочь

Смежные вопросы