2013-11-26 5 views
-1

Итак, я создаю эту CMS для информации факультета как часть моей диссертации. Когда мне нужно создать/удалить тему, мой код работает нормально. Однако, когда я пытаюсь их обновить, он сообщает мне, что процесс редактирования завершился неудачно. Не знаете, где именно это происходит.Невозможно редактировать тему mysql, используя Php

Ниже представлен мой вопрос. Я вроде как новый на php, поэтому, если бы я сделал некоторые вопиющие ошибки, нести меня.

if (isset($_POST['submit'])) 
{ 
//form was submitted 
    $staff_id = mysql_real_escape_string((int) $_POST["staff_id"]); 
    $first_name = mysql_real_escape_string($_POST["first_name"]); 
    $last_name = mysql_real_escape_string($_POST["last_name"]); 
    $age = mysql_real_escape_string((int) $_POST["age"]); 
    $email = mysql_real_escape_string($_POST["email"]); 
    $phone_no = mysql_real_escape_string((int) $_POST["phone_no"]); 
    $department = mysql_real_escape_string($_POST["department"]); 
    $visible = mysql_real_escape_string((int) $_POST["visible"]); 
    $message = "Your details have been received"; 

    //Database Query 
    $query = "UPDATE subjects SET "; 
    $query .= "first_name = '{$first_name}', "; 
    $query .= "last_name = '{$last_name}', "; 
    $query .= "age = '{$age}', "; 
    $query .= "email = '{$email}', "; 
    $query .= "phone_no = '{$phone_no}', "; 
    $query .= "department = '{$department}', "; 
    $query .= "visible = '{$visible}', "; 
    $query .= "WHERE staff_id = '{$staff_id}', "; 
    $query .= "LIMIT 1"; 

    $result = mysqli_query($connect, $query); 
    if($result && mysqli_affected_rows($connect) == 1) 
     { 
      //Success 
      echo "Subject Edited. "; 
     } 
    else 
     { 
      //failure 
      echo "Subject Editing failed. "; 
     } 
} 

и это форма, которая используется для передачи данных для редактирования

<form action="editsub.php" method ="post"> 
      <p>Staff ID to edit: 
       <input type="number" name="staff_id" value ="" /> 
      </p> 
      <p>First Name: 
       <input type="text" name="first_name" value ="" />     
      </p> 
      <p>Last Name: 
       <input type="text" name="last_name" value ="" />      
      </p> 
      <p>Age: 
       <input type="number" name="age" value ="" />  
      </p> 
      <p>E-mail: 
       <input type="text" name="email" value ="" />  
      </p> 
      <p>Phone Number: 
       <input type="number" name="phone_no" value ="" /> 
      </p> 
      <p>Department: 
       <input type="text" name="department" value ="" /> 
      </p> 
      <p>Visible: 
       <input type="radio" name="visible" value ="0" /> No &nbsp; 
       <input type="radio" name="visible" value ="1" /> Yes 
      </p> 
      <input type="submit" name="submit" value="Edit Entry" /> 
      </form> 

Так что, если кто-то может указать, где ошибка, я бы очень признателен. благодаря

+0

Что представляет собой сообщение об ошибке? http://us1.php.net/manual/en/mysqli.error.php ('echo mysqli_error ($ connect);') – LuckySpoon

+1

У вас есть ненужная запятая в предложении where. –

+0

@AnthonySterling вы должны добавить это как ответ, а не комментарий. (Хороший глаз :)) –

ответ

0

Просто заметил это - изменение:

$query .= "visible = '{$visible}', "; 
$query .= "WHERE staff_id = '{$staff_id}', "; 

к:

$query .= "visible = '{$visible}'"; 
$query .= "WHERE staff_id = '{$staff_id}'"; 

т.е.: некорректное запятые

+1

Вы спасатель жизни. Я не могу поверить, что все было так просто. #facepalm спасибо luckypoon и anthony sterling –

+0

Аппликации и приметцы оценены для моей коллекции Rep :) Рад помочь! – LuckySpoon

0

этот код здесь

//Database Query 
$query = "UPDATE subjects SET "; 
$query .= "first_name = '{$first_name}', "; 
$query .= "last_name = '{$last_name}', "; 
$query .= "age = '{$age}', "; 
$query .= "email = '{$email}', "; 
$query .= "phone_no = '{$phone_no}', "; 
$query .= "department = '{$department}', "; 
$query .= "visible = '{$visible}', "; 
$query .= "WHERE staff_id = '{$staff_id}', "; 
$query .= "LIMIT 1"; 

Должно быть, как это

//Database Query 
$query = "UPDATE subjects SET "; 
$query .= "first_name = '$first_name', "; 
$query .= "last_name = '$last_name', "; 
$query .= "age = '$age', "; 
$query .= "email = '$email', "; 
$query .= "phone_no = '$phone_no', "; 
$query .= "department = '$department', "; 
$query .= "visible = '$visible' "; 
$query .= "WHERE staff_id = '$staff_id' "; 
$query .= "LIMIT 1"; 
0

Я думаю, что ваш запрос неверен. У вас есть «,» перед «WHERE», а также перед «LIMIT». Удалите оба параметра "," и повторите попытку.

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