Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957

Php 7 стандартные функции

23.03.2021, 07:52. Показов 894. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Notice: Trying to get property 'num_rows' of non-object in C:\xampp\htdocs\newtable.php on line 448

Warning: sizeof(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\newtable.php on line 449 - ругается

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 $sql = "SELECT DISTINCT * FROM `buildings` group by NBuilding";
// Отправляем запрос;
$res = $mysqli->query($sql);
if ($res !== false) {
     echo "<form method='post' name='select' action='newtable.php'><select id='select' onclick='select()'>";
     while ($s = $res->fetch_array(MYSQLI_NUM)) {
          echo "<option name='select'>".$s[1]."</option>";
     }
    echo "</select></form>";
}
else {
    echo "Корпуса отсутствуют";
}
 
//echo json_encode($res);
//echo $res;
/*echo "The select function is called.";*/
 
$query = $mysqli->query("SELECT Сlass FROM `buildings` WHERE NBuilding = '".$s[1]."'");
//echo $query;
//$row;
$numrows = $query->num_rows;
$numrows = sizeof($query);
echo $numrows;
что не стандартно в функции mysqli_num_rows
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2021, 07:52
Ответы с готовыми решениями:

Вычислить значение функции 3^x, используя стандартные функции и путем разложения в ряд Тейлора
Вычислить значение функции, используя стандартные функции и путем разложения в ряд Тейлора с заданной точностью эпсилон при изменении...

Создать свой собственный модуль и функции, при этом стандартные строковые функции не использовать.
Создать свой собственный модуль и функции, при этом стандартные строковые функции не использовать. MoveBeg – перенести заданную подстроку...

Стандартные функции
Товарищи, пришлось ковыряться в firebird... погуглировал я доку по нему, но никак не могу найти описания функций - аля substr, sysdate и...

12
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.03.2021, 08:04
Во-первых, это не функция, а свойство.

Ошибка в запросе у вас. Как минимум, в слове "Сlass" первая буква -- кириллическая.
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 08:32  [ТС]
Поменял на латиницу - список совйств остался тотже (как определили что кирилицеская)

otice: Trying to get property 'num_rows' of non-object in C:\xampp\htdocs\newtable.php on line 449

Warning: sizeof(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\newtable.php on line 450

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\newtable.php on line 451

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\newtable.php on line 452

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$db_host = "127.0.0.1"; 
     $db_user = "root"; // Логин БД
     $db_password = ""; // Пароль БД
     $db_base = "monitoring"; // Имя БД
     $db_table = 'month';
   // session_start();
    //$s;
     // Имя Таблицы БД
     /*$db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password);
        echo "Hello";*/
        
        $mysqli = new mysqli($db_host, $db_user, $db_password, $db_base);
        
    /* проверка соединения */
    if (mysqli_connect_errno()) {
        printf("Не удалось подключиться: %s\n", mysqli_connect_error());
        exit();
    }
 
$mysqli->set_charset("utf8mb4");        
 $sql = "SELECT DISTINCT * FROM `buildings` group by NBuilding";
// Отправляем запрос;
$res = $mysqli->query($sql);
if ($res !== false) {
     echo "<form method='post' name='select' action='newtable.php'><select id='select' onclick='select()'>";
     while ($s = $res->fetch_array(MYSQLI_NUM)) {
          echo "<option name='select'>".$s[1]."</option>";
     }
    echo "</select></form>";
}
else {
    echo "Корпуса отсутствуют";
}
 
//echo json_encode($res);
//echo $res;
/*echo "The select function is called.";*/
 
$query = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = ".$s[1]." ");
$query1 = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = ".$_POST['select']." ");
echo $query;
//$row;
$numrows = $query->num_rows;
$numrows = sizeof($query);
$numrows = mysqli_num_rows($query);
$numrows = mysqli_num_rows($query1);
echo $numrows; 
//$numrows = sizeof($query);
$i=0;
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.03.2021, 08:41
Цитата Сообщение от Dorofej Посмотреть сообщение
как определили что кирилицеская
В браузере выполнил поиск по странице слова "Class", ничего не нашлось. Заменил первую букву на кириллицу -- нашлось.

Значит есть ещё ошибки.

После объявления $query вставьте:
PHP
1
2
3
if (!$query) {
    exit($mysqli->error);
}
И скажите, что выведет.
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 08:59  [ТС]
вот сократил код (кириллицу на латиницу поменял и в базе и запросе )

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$query = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$s[1]."' ");
$querys = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$_POST['select']."' ");
 
//$row;
$numrows = $query->num_rows;
//$numrows = sizeof($query);
$numrows = mysqli_num_rows($query);
//$numrows = mysqli_num_rows($query1);
//echo $query; 
$com_pol = $query->fetch_assoc($query);
$com_poll = $querys->fetch_assoc($querys);
echo $com_pol;
echo $com_poll;
//$numrows = sizeof($query);
$i=0;
   while ($row = mysqli_fetch_assoc($query)) {
       echo $row['Class'];
       $i++;
       if($i % 3 == 0){
           echo '<td>'.$com_pol['Class'].'</td></tr><tr>';
       } elseif($i % 3!= 0){
           echo '<td>'.$com_pol['Class'].'</td>';
       } else if ($i == $numrows) {
           echo '<td>'.$com_pol['Class'].'</td></tr>';
       }
   }

Warning: mysqli_result::fetch_assoc() expects exactly 0 parameters, 1 given in C:\xampp\htdocs\newtable.php on line 454

Warning: mysqli_result::fetch_assoc() expects exactly 0 parameters, 1 given in C:\xampp\htdocs\newtable.php on line 455
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.03.2021, 09:03
Не передавайте ничего в fetch_assoc. Просто $query->fetch_assoc(); и $querys->fetch_assoc();

Добавлено через 1 минуту
echo полученного массива тоже не нужно делать. var_dump используйте, если хотите распечать массив.
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 09:28  [ТС]
Вставил

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$query = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$s[1]."' ");
$querys = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$_POST['select']."' ");
if (!$query) {
    exit($mysqli->error);
}
//$row;
$numrows = $query->num_rows;
//$numrows = sizeof($query);
$numrows = mysqli_num_rows($query);
//$numrows = mysqli_num_rows($query1);
//echo $query; 
$com_pol = $query->fetch_assoc($query);
$com_poll = $querys->fetch_assoc($querys);
echo $com_pol;
echo $com_poll;
//$numrows = sizeof($query);
$i=0;
   while ($row = mysqli_fetch_assoc($query)) {
       echo $row['Class'];
       $i++;
       if($i % 3 == 0){
           echo '<td>'.$com_pol['Class'].'</td></tr><tr>';
       } elseif($i % 3!= 0){
           echo '<td>'.$com_pol['Class'].'</td>';
       } else if ($i == $numrows) {
           echo '<td>'.$com_pol['Class'].'</td></tr>';
       }
   }
вывел следующее

Warning: mysqli_result::fetch_assoc() expects exactly 0 parameters, 1 given in C:\xampp\htdocs\newtable.php on line 456

Warning: mysqli_result::fetch_assoc() expects exactly 0 parameters, 1 given in C:\xampp\htdocs\newtable.php on line 457

Добавлено через 23 минуты
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$mysqli->set_charset("utf8mb4");        
 $sql = "SELECT DISTINCT * FROM `buildings` group by NBuilding";
// Отправляем запрос;
$res = $mysqli->query($sql);
if ($res !== false) {
     echo "<form method='post' name='select' action='newtable.php' style='width:50%;margin-left: 22%;'><select id='select' onclick='select()'>";
     while ($s = $res->fetch_array(MYSQLI_NUM)) {
          echo "<option name='select'>".$s[1]."</option>";
     }
    echo "</select></form>";
}
else {
    echo "Корпуса отсутствуют";
}
 
//echo json_encode($res);
//echo $res;
/*echo "The select function is called.";*/
global $query;
$query = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$s[1]."' ");
//$querys = $mysqli->query("SELECT Class FROM `buildings` WHERE NBuilding = '".$_POST['select']."' ");
if (!$query) {
    exit($mysqli->error);
}
//$row;
//$numrows = $query->num_rows;
//$numrows = sizeof($query);
//$numrows = mysqli_num_rows($query);
//$numrows = mysqli_num_rows($query1);
//echo $query;
var_dump($query); 
$com_pol = $query->fetch_assoc($query);
//$com_poll = $querys->fetch_assoc($querys);
//echo $com_pol;
//echo $com_poll;
//$numrows = sizeof($query);
$i=0;
   while ($row = mysqli_fetch_assoc($query)) {
       echo $row['Class'];
       $i++;
       if($i % 3 == 0){
           echo '<td>'.$com_pol['Class'].'</td></tr><tr>';
       } elseif($i % 3!= 0){
           echo '<td>'.$com_pol['Class'].'</td>';
       } else if ($i == $numrows) {
           echo '<td>'.$com_pol['Class'].'</td></tr>';
       }
   }
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } все равно что не то выводит
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.03.2021, 09:33
Все нормально. $query->num_rows должен работать теперь.

И вы пропустили это мое сообщение: Php 7 стандартные функции
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 09:57  [ТС]
а fetch_assoc в таком случае?

Добавлено через 17 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
global $query;
$query = $mysqli->query("SELECT * FROM `buildings` WHERE NBuilding = '".$s[1]."' ");
var_dump($query); 
$com_pol = $query->fetch_assoc();
var_dump($com_pol);
 
 
//$com_pol = $query->fetch_assoc();
//$com_poll = $querys->fetch_assoc($querys);
//echo $com_pol;
//echo $com_poll;
//$numrows = sizeof($query);
global $row;
$i=0;
   while ($query->num_rows()) {
       echo $query[1];
       $i++;
       if($i % 3 == 0){
           echo '<td>'.$com_pol['Class'].'</td></tr><tr>';
       } elseif($i % 3!= 0){
           echo '<td>'.$com_pol['Class'].'</td>';
       } else if ($i == $numrows) {
           echo '<td>'.$com_pol['Class'].'</td></tr>';
       }
   }

object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(9) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } NULL
Fatal error: Uncaught Error: Call to undefined method mysqli_result::num_rows() in C:\xampp\htdocs\Pult.php:143 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Pult.php on line 143

143 cоотвествует while ($query->num_rows()) {
0
Невнимательный
 Аватар для ft4l
3107 / 1282 / 358
Регистрация: 08.02.2013
Сообщений: 7,516
Записей в блоге: 2
23.03.2021, 10:04
Цитата Сообщение от Dorofej Посмотреть сообщение
while ($query->num_rows()) {
$query->num_rows это свойство (число)
... не метод $query->num_rows()
обычно позволяет удобно проверить было-ли что-то получено и сколько

если запрос получит ряды и будет $query->num_rows > 0
получите бесконечный цикл while
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 10:31  [ТС]
Хорошо а почему тогда. не срабатывает мой запрос - почему не выводится нужные данные в виде массива
PHP
1
2
3
4
$query = $mysqli->query("SELECT * FROM `buildings` WHERE NBuilding = '".$s[1]."' ");
var_dump($query); 
$com_pol = $query->fetch_assoc();
var_dump($com_pol);
а выводится

object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(9) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } NULL
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.03.2021, 10:50
Потому что в базе нет строк, удовлетворяющих запросу.

Впишите в любое место скрипта:
PHP
1
2
echo "SELECT * FROM `buildings` WHERE NBuilding = '".$s[1]."'";
die;
Скопируйте полученную строку и выполните напрямую в БД (или хотя бы через PhpMyAdmin или Adminer).
Увидите, что ничего не возвращается.

ОБЯЗАТЕЛЬНО удалите потом из скрипта код, который я привел выше (если добавите его туда).
0
-3 / 3 / 0
Регистрация: 20.06.2011
Сообщений: 957
23.03.2021, 17:31  [ТС]
хорошо а как верно сделать условие для while
PHP
1
2
3
4
5
6
7
8
while ($query === true){
$query = $mysqli->query("SELECT Class FROM `buildings` WHERE `NBuilding` = '".$_POST['select']."' ");
//var_dump($query); 
$com_pol = $query->fetch_array();
 
$com_poly = $query->fetch_assoc(); 
var_dump($com_pol);
}
чтобы выполнялись и выводились все строки

Добавлено через 4 часа 58 минут
Какой лучшйи вариант проверки условий подключения будет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2021, 17:31
Помогаю со студенческими работами здесь

Стандартные функции
Добрый день! Существует ли в Оракуле функция, возвращающая имя базы данных.

Стандартные функции
Strcspn size_t strcspn(const char *s1,const char *s2) Функция определяет длину первого сегмента строки S1 содержащего символы, не...

стандартные функции
подскажите кто знает где можно почитать про стандартные функции типа Sleep() setTikccount() beep()

Стандартные функции JS
Как в JS создать функцию, отбрасывающую дробную часть числа? Или такая уже есть в основном наборе? Нужно для генерации случайных чисел....

Стандартные процедуры и функции
Здравствуйте уважаемые программисты. Подскажите пожалуйста, где можно взять пособие или справочник по процедурам и функциям стандартных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru