2013-08-14 3 views
0

Я делаю симпатии/не нравится в php & html. Итак, поскольку для каждого блога он использует симпатии, я использую идентификатор блога. Я хотел бы знать, как я могу обновить «любит» в таблице, но только обновлять «любит» конкретной строки, используя ее id. Вот скрипт:Как обновить данные таблицы?

<?php 

require 'init.php'; 

$rating = $_GET['rating']; 
$postid = $_GET['id']; 

if ($rating = "like") { 
    $sql = " 

    "; 
} 

if ($rating = "dislike") { 
    $sql = " 
     UPDATE 
      posts 
     SET 
      dislikes = dislikes+1 
     WHERE 
      id = $postid  
    "; 
} 
?> 
+0

сравнение '==' –

ответ

3

Запрос обновления не кажется, здесь проблема, основная проблема заключается в ваш, если заявление, в котором не используется оператор сравнения, но с помощью оператора присваивания.

Оператор: if ($rating = "like") присваивает значение "like" переменной $rating, это не сравнить $rating от значения "like", что это то, что я думаю, что вы хотите, чтобы это сделать.

Есть несколько других серьезных проблем, которые следует учитывать, так это то, что вы широко открыты для атак SQL Injection. Поскольку вы упомянули, что используете в своем комментарии функции mysql_, вы, по крайней мере, хотите использовать функцию mysql_real_escape_string. например

$rating = mysql_real_escape_string($_GET['rating'], $con); // assuming $con is your MySQL Connection 
$postid = mysql_real_escape_string($_GET['id'], $con); 

Другой, не менее важно отметить, что mysql_ функции устарели. Вы определенно должны рассмотреть возможность использования либо mysqli, либо pdo.

Третий и последний момент, чтобы отметить, что если ваш рейтинг равен "like", тогда запрос пуст. Надеюсь, вы проверяете empty перед вызовом mysql_query, который здесь не показан.

+0

Nevermind, я сделал новую ошибку. Я забыл добавить «mysql_query ($ sql)». Спасибо за помощь! –

+0

@JamesL. Но Vinodadhikary по-прежнему прав: вы используете '=' в ваших if-statement, когда вы должны использовать '=='. Следите за этим, потому что, поскольку он стоит, ваши if-statements всегда будут возвращать true. – hannebaumsaway

+0

Нет, они тоже возвращают ложь. При нажатии ссылки посылается «не нравится» или «нравится». Но я согласен, я должен использовать escape-строку, потому что кто-то может ее взломать. –

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