Member 9983063 Ответов: 1

Я получаю ошибки из моей БД в приложении android


Привет ребята я хочу выбрать значения и показать в текстовом поле но я получаю на моем edittext on button click
вот в чем ошибка
<br /> Warning:  mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /h7/ae/public_html/fashion360/Com.php on line 11<br /> []

пожалуйста помогите мне пожалуйста скажите мне в чем дело и как я могу устранить эту ошибку
спасибо

Что я уже пробовал:

<?php
include 'Db.php';
$con=mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName)or die("Cannot Connect");
mysqli_select_db($con,$DatabaseName)or die("Cannot select db");
mysqli_set_charset($con,'utf8');
$sql = "SELECT TOP 1 complainno FROM complain";
$result  =mysqli_query($con,$sql);
$json = array();
if(mysqli_num_rows($result)){
while ($row=mysqli_fetch_assoc($result)){
$json['complainno'][]=$row;
}
}
mysqli_close($con);
echo json_encode($json);
?>

David Crow

Эта ошибка, по-видимому, строго связана с PHP. Вы можете рассмотреть возможность удаления тегов Android и Java.

1 Ответов

Рейтинг:
10

Jochen Arndt

Ваш РНР: в mysqli::запрос - руководство по эксплуатации[^] вызов не удался:

Цитата:

значение

Возвращает FALSE при сбое. Для успешного выбора, показа, описания или объяснения запросов mysqli_query() вернет объект mysqli_result. Для других успешных запросов mysqli_query() вернет TRUE.
Это всегда хорошая идея, чтобы проверить возвращаемые значения и отображать сообщения об ошибках при ошибках, чтобы знать, что пошло не так:
if ($result = mysqli_query($con,$sql)) {
    // Query was successful: Move on
}
else {
    printf("Error: %s\n", mysqli_error($con));
}

В вашем случае это, вероятно, синтаксическая ошибка в строке запроса. Насколько я знаю, MySQL не знает TOP команда. Вы должны использовать LIMIT вместо:
$sql = "SELECT complainno FROM complain LIMIT 1";


Member 9983063

Здравствуйте спасибо за вашу помощь я сейчас пробую ваш запрос и тоже получаю ошибку
я использую сейчас
<?php
включают 'DatabaseConfig.php';
$con=mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName)или die("не удается подключиться");
mysqli_select_db($con,$DatabaseName)или die("не удается выбрать БД");
mysqli_set_charset($con,'utf8');
$sql = "SELECT complainno FROM complain LIMIT 1";
$result =mysqli_query($con,$sql);
$json = массив();
if(mysqli_num_rows($result)){
while ($row=mysqli_fetch_assoc($result)){
$json['complainno'][]=$row;
}
}
mysqli_close($кон);
echo json_encode($json);
?>
пожалуйста, смотрите ошибку на этом снимке экрана
https://imgur.com/a/QlhoV

Jochen Arndt

Вызов mysqli_query() по-прежнему не выполняется. Пожалуйста, используйте также код сообщения об ошибках из моего решения. Это дает вам больше информации.

Обратите внимание также, что использование mysqli_num_rows() не имеет смысла, когда запрос ограничен возвращением только одной строки.

Member 9983063

так как же я могу решить эту проблему

Jochen Arndt

Вы должны передать допустимую команду SQL в виде строки запроса.

Но у меня нет вашей базы данных, и поэтому я не могу ее воспроизвести. Первый шаг - как уже предлагалось - получение сообщения об ошибке из интерфейса базы данных путем вызова mysqli_error($con).

Member 9983063

ну сэр мои ошибки разрешены спасибо за вашу помощь и сэр только одна вещь когда я выбираю значение с порядком по имени таблицы Desc так что это select asc values но я хочу Desc values

Jochen Arndt

Порядок по требует имен столбцов, а не имен таблиц.

Member 9983063

да извините я имел в виду выбрать значение с порядком по имени столбца Desc

Jochen Arndt

Это должно сработать. Но я не могу проверить или проверить это, как уже упоминалось.
Распечатайте результаты, чтобы проверить его (используя таблицу JSON и показывая, что это может быть затронуто его собственной сортировкой).

Member 9983063

я все проверил но не понимаю как это решить