Как организовать результат MySQL запроса на PHP (ООП)? Всем привет. В общем, пишу скрипт на добавление/редактирование/удаление/отображение результатов из БД MySQL. Пишу его на PHP 7 с использованием ООП.
Столкнулся с проблемой - не выводятся результаты из БД, пишет ошибку на неправильные аргументы Foreach и недостаточных аргументов в функции MySQL_fetch_array. Прошу помочь с решением этой проблемы. Добавление работает.
Исходники:
fetch.phpmysqli_qw('
INSERT INTO '.TABLENAME.' SET name=?, text=?',
$element['name'], $element['text']
) or die(mysql_error());
Header("Location: {$_SERVER['SCRIPT_NAME']}?".time());
exit();
}
public static function deleteContent() {
mysqli_qw('
DELETE FROM '.TABLENAME.' WHERE id=?
', $delete) or die(mysql_error());
}
public static function resultContent() {
$connectMysqli = new connectMysqli();
$connectMysqli->mysqli_qw('
SELECT *, UNIX_TIMESTAMP(stamp) AS stamp
FROM '.TABLENAME.'
ORDER BY stamp DESC
') or die(mysql_error());
for (self::$info = array(); self::$row = mysqli_fetch_array(self::$result); self::$info[] = self::$row);
}
}
?> mysqli_qw.php$v) {
if(!$i) continue;
if (is_int($v)) continue;
$args[$i] = "'".mysqli_real_escape_string(self::$connect, $v)."'";
}
for ($i=$c=count($args)-1; $i
plugin_list.php
plugin_list.html


?delete="> [delete]

index.phpmysqli_qw('
CREATE TABLE IF NOT EXISTS '.TABLENAME.' (
id INT AUTO_INCREMENT PRIMARY KEY,
stamp TIMESTAMP,
name VARCHAR(60),
text TEXT
)
');
require_once("./fetch.php");
$contentFetch = new contentFetch();
require_once("./plugin_fetch.html");
require_once("./plugin_list.php");
require_once("./plugin_list.html");
if (@$_REQUEST['doAdd']) {
$contentFetch->addContent();
}
if ($delete = @$_REQUEST['delete']) {
$contentFetch->deleteContent();
}
$contentFetch->resultContent();
?> Заранее благодарю.

21 Авг 2019 в 07:03
175 +1
0
Ответы
1

Проблема в вашем коде заключается в том, что вы не исполняете запрос к базе данных и не присваиваете результат запроса переменной $result в методе resultContent(). Кроме того, использование функции mysql_fetch_array в методе fetch.php также неверное, так как вы используете объект mysqli вместо mysql.

Исправленный код приведен ниже:

fetch.php:

public static function resultContent() {
$connectMysqli = new connectMysqli();
self::$result = $connectMysqli->mysqli_qw('
SELECT *, UNIX_TIMESTAMP(stamp) AS stamp
FROM '.TABLENAME.'
ORDER BY stamp DESC
') or die(mysqli_error());
for (self::$info = array(); self::$row = mysqli_fetch_array(self::$result); self::$info[] = self::$row);
}

plugin_list.php:

<?php
## Plugin list 0.9.444
foreach (contentFetch::$info as contentFetch::$element) {
require_once("./plugin_list.html");
}
?>

Теперь ваш запрос будет исполнен и результат будет присвоен переменной $result. В файле plugin_list.php вы правильно используете свойство $info для отображения данных.

Еще одно замечание: в вашем коде имеется вызов несуществующего метода mysqli_qw() в методе deleteContent(). Вам необходимо его корректно исправить для удаления данных из базы данных.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 340 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир