$from = $_POST['from']; $to = $_POST['to']; $message = $_POST['message']; $query = "SELECT * FROM Users WHERE `user_name` = '$from' LIMIT 1"; $result = mysql_query($query); while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $fromID = $row['user_id']; }
Я пытаюсь иметь $ formID быть user_id для пользователя в моей базе данных. Каждая строка в таблице «Пользователи» выглядит так:
user_id | user_name | user_type 1 | Hristo | Agent
Поэтому я хочу $from = 1
но приведенный выше код не работает. Любые идеи почему?
Попробуй это:
$from = mysql_real_escape_string($_POST['from']); $to = mysql_real_escape_string($_POST['to']); $message = mysql_real_escape_string($_POST['message']); $query = "SELECT * FROM Users WHERE user_name = '$from' LIMIT 1"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_assoc($result)) { $fromID = $row['user_id']; }
Кроме того, убедитесь, что:
var_dump
с вашими варами, например var_dump($from)
Вместо этого используйте mysql_fetch_assoc
while($row =
mysql_fetch_assoc ($result)){ $fromID = $row['user_id']; }
($result)){ $fromID = $row['user_id']; }
хотя это должно быть. попробуйте этот код
$from = mysql_real_escape_string($_POST['from']); $to = mysql_real_escape_string($_POST['to']); $message = mysql_real_escape_string($_POST['message']); $query = "SELECT * FROM Users WHERE `user_name` = '$from' LIMIT 1"; $result = mysql_query($query) or trigger_error(mysql_error().$query); $row = mysql_fetch_array($result, MYSQL_ASSOC); $fromID = $row['user_id']; echo $fromID;
если он не выдаст никаких ошибок, но все равно не распечатает идентификатор, добавьте эту строку
var_dump($row);
и опубликовать здесь его вывод
не то, что вы не должны использовать имя пользователя, а идентификатор пользователя – для конкретного пользователя.