<div class="ui-widget"> <form method="POST"> <?php if(isset($_POST['search'])){ $connection = mysql_connect('localhost', 'root', '1234'); mysql_select_db('hoppers'); $query = "SELECT user_name FROM users WHERE {$_POST['username']} = user_name"; $result = mysql_query($query) or die ("MySQL-Error: " . mysql_error()); $row = mysql_fetch_array($result); if($row = TRUE){ $present = $row['user_name']; echo $present; }else{ echo "This User does not exist!"; } } ?> <label for="tags">Username: </label> <input type="text" id="tags" name = "username"> <input type="submit" name="search" value="Suchen!"> </form> </div>
Поэтому я всегда получаю сообщение об ошибке: MySQL-Error: Неизвестный столбец «dompol171» в разделе «where» .
Поэтому он сравнивает имя пользователя, которое я ввел с самим столбцом «имя_пользователя». Я продолжаю волноваться … потому что я понятия не имею, как сравнивать его по-другому!
Вы допустили ошибку в том, где статья, это:
WHERE user_name = {$_POST['username']}";
Синтаксис: Where "column" = "value"
У вас есть свои параметры назад. Имя столбца всегда идет до значения:
$query = "SELECT user_name FROM users WHERE user_name = {$_POST['username']}";
Это не оператор сравнения, как в PHP, где операнды могут быть по обе стороны от уравнения.
Здесь происходит то, что значение $_POST['username']
считается столбцом, так как вы его не процитировали, т.е. задали его как строку. Поэтому скажите, что имя пользователя musa, его попытка сравнить столбцы musa с столбцом user_name (и этот столбец не существует). Должен быть
$query = "SELECT user_name FROM users WHERE 'some username' = user_name";
Попробуйте использовать:
$query = "SELECT user_name FROM users WHERE user_name = '{$_POST['username']}'";
Запрос требует небольшой корректировки, начиная с:
$query = "SELECT user_name FROM users WHERE {$_POST['username']} = user_name";
чтобы:
$query = "SELECT user_name FROM users WHERE user_name = '{$_POST['username']}'";
Обведите значение в одинарные кавычки.
Этот обновленный PHP будет проверять прошедшие данные:
<?php if(isset($_POST['search'])){ $connection = mysql_connect('localhost', 'root', '1234'); mysql_select_db('hoppers'); $query = "SELECT user_name FROM users WHERE user_name = '{$_POST['username']}'"; $result = mysql_query($query) or die ("MySQL-Error: " . mysql_error()); // count # of rows returned by DB query $num_users = mysql_num_rows( $result ); // If more than 0 if ( $num_users > 0 ){ // Success! $row = mysql_fetch_array($result); var_dump( $row ); } else { // No results returned echo "This User does not exist!"; } }
Попробуйте использовать это:
$username = $_POST['username']; $query = "SELECT user_name FROM users WHERE user_name='" . $username . "'";