2017-01-17 4 views
1

Я пытаюсь использовать SELECT * FROM 'users' WHERE 'username'= '$username' на phpMyAdmin, но возвращает пустую строку, затем выяснил, что это SELECT * FROM пользователей WHERE username like '%abdul' и возвращает желаемый результат. Я создал PHP код из phpMyMdmin $sql = "SELECT * FROM пользователи WHERE username like \'%abdul\'"; затем изменил мой кодSELECT возвращает пустые строки, хотя он существует

$row = mysqli_query($link,"SELECT * FROM пользователи WHERE username like \'%$username'\ ");

Но это показывает предупреждение:

mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, логическое значение, данное в /Applications/XAMPP/xamppfiles/htdocs/yd_mobi/register.php в строке 22.

Любая помощь приветствуется, Th anks!

+1

«имя пользователя» - вы используете одиночные кавычки. Использовать backticks ' – mseifert

+0

Вы избегаете одиночных кавычек? @mseifert посмотрим на 'то понял это ...' Ваше форматирование здесь немного странно, вы можете исправить биты кода? http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks – chris85

+0

'".% $ username." 'use this –

ответ

1

Try Использование

$sql="SELECT * FROM users WHERE username like '%". $username."'"; 

if ($result=mysqli_query($link,$sql)) 
{ 
// Return the number of rows in result set 
$rowcount=mysqli_num_rows($result); 
if($rowcount > 0){ 
echo "User Exist" 
}else{ 
echo "new user"; 
} 
// Free result set 
mysqli_free_result($result); 
} 

mysqli_close($link); 
+0

Не возвращая ничего, я пытаюсь написать, если этот пользователь существует, тогда верните сообщение WARNING, но просто обновите, если пользователь существует. – Abdulsadeeq

+0

Это работает! Но последним должен быть mysqli_close ($ link) Спасибо. – Abdulsadeeq

+0

ops sorry Я пропустил его замену. –

0

Ваш запрос не так, как должно быть капитализированы как в LIKE. кроме этого я не вижу проблемы.
, когда ваш запрос неверен, он возвращает FALSE, который является логическим, но когда он успешно, он возвращает информацию в базе данных, но я не уверен, что u сделал, но похоже, что вы использовали mysqli_fetch_array(); Я использую следующие обычно

$query = "SELECT * FROM users WHERE username LIKE whateveryouwanthere"; 
$run = mysqli_query($connectionvariable,$query); 
$row = mysqli_fetch_array($run); 
$variable = $row['column name of the item u want to retrieve']; 
//for example 
$username = $row['username']; 

EDIT:
Вам НЕ нужно \ '% Abdul \' вместо этого просто сделать '% Abdul'

+0

Не возвращая ничего, я пытаюсь написать, если этот пользователь существует, тогда верните сообщение WARNING, но просто обновите, если пользователь существует. – Abdulsadeeq

+0

попробуйте сделать% $ имя пользователя% для меня пожалуйста и дайте мне знать, что произойдет –

+0

сделать это $ row = mysqli_query ($ link, "SELECT * FROM users WHERE username LIKE '% $ username%'"); –

0

Вам необходимо пройти второй параметр в mysqli_fetch_array() функции

если вы хотите, чтобы получить числовой массив затем использовать функцию следующим образом:

mysqli_fetch_array($row,MYSQLI_NUM); 

если вы тусклый т, чтобы получить ассоциативный массив, то используйте функцию следующим образом:

while ($aRow = mysqli_fetch_array($row,MYSQLI_ASSOC)) { 

} 
0
mysqli_fetch_array($row,resulttype); 

resulttype can be one of the following values: 

MYSQLI_ASSOC 
MYSQLI_NUM 
MYSQLI_BOTH 
Смежные вопросы