Перейти к публикации

Как правильно работать с $db->super_query


Рекомендованные сообщения

Добрый день!

Я работаю над модулям и наткнулсь с проблемой.

Создала новый файл engine/inc/мой-модуль.php

и в нем следуюшее содержание:


<?php


if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {

		die( "Hacking attempt!" );

}


if( ! $user_group[$member_id['user_group']]['admin_addnews'] ) {

		msg( "error", $lang['index_denied'], $lang['index_denied'] );

}


echoheader("Test", "Админпанель модуля Test");


		$query = $db->super_query("SELECT * FROM " . PREFIX . "_category");


if (mysql_num_rows($query)==0){

		echo "Нет контента";

}

else {

		while($row = mysql_fetch_array($query))

		  {

				echo "$row['name']";

				echo "hello";

		  }

}


echofooter();



?>


проблема с $query = $db->super_query("SELECT * FROM " . PREFIX . "_category");

не как не получается сделать SELECT и mysql_fetch_array всегда пустой, какбыд-то не подключения к БД.

Тоесть всегда пишет "Нет контента";

еще пробовала include ('engine/api/api.class.php');

Что я пропустила?

Изменено пользователем prozerpina
Ссылка на сообщение
Поделиться на других сайтах

Вы обращаетесь напрямую к файлу site.ru/engine/inc/мой-модуль.php ?

http://dle-news.ru/extras/online/modules_include.html

Ссылка на сообщение
Поделиться на других сайтах

Вы обращаетесь напрямую к файлу site.ru/engine/inc/мой-модуль.php ?

http://dle-news.ru/e...es_include.html

нет конечно, я через админку захожу.

Ссылка на сообщение
Поделиться на других сайтах

prozerpina, то-есть Вы обращаетесь к своему скрипту вот так: _http://site.ru/admin.php?mod=mymod, верно?

Ссылка на сообщение
Поделиться на других сайтах

prozerpina, всё работает:


print_r( $db->super_query("SELECT * FROM " . PREFIX . "_category") );

У Вас вот тут ошибка: echo "$row['name']";

<?php

if(!defined('DATALIFEENGINE') OR !defined('LOGGED_IN')) die("Hacking attempt!");


if(!$user_group[$member_id['user_group']]['admin_addnews']) msg("error", $lang['index_denied'], $lang['index_denied']);

else {

	$query = $db->super_query("SELECT * FROM " . PREFIX . "_category");


	if(!$query) echo "Нет контента";

	else echo $query["name"];

}

?>

Ссылка на сообщение
Поделиться на других сайтах

prozerpina, всё работает:


print_r( $db->super_query("SELECT * FROM " . PREFIX . "_category") );

У Вас вот тут ошибка: echo "$row['name']"; нет не какой ошибки. я использую while($row = mysql_fetch_array($query))

<?php

if(!defined('DATALIFEENGINE') OR !defined('LOGGED_IN')) die("Hacking attempt!");


if(!$user_group[$member_id['user_group']]['admin_addnews']) msg("error", $lang['index_denied'], $lang['index_denied']);

else {

	$query = $db->super_query("SELECT * FROM " . PREFIX . "_category");


	if(!$query) echo "Нет контента";

	else echo $query["name"];

}

?>

ваш пример выдает только "одну строкуодну категорию". мне надо все результаты с array.

Изменено пользователем prozerpina
Ссылка на сообщение
Поделиться на других сайтах

Тогда

$query = $db->super_query("SELECT * FROM " . PREFIX . "_category");

замените на

$query = $db->super_query("SELECT * FROM " . PREFIX . "_category", true);

А вообще лучше откройте файл /engine/classes/mysql.class.php и изучите его :)

Плюс используйте цикл, например, foreach

Изменено пользователем ZEOS.IN
Ссылка на сообщение
Поделиться на других сайтах

все же не понятно как с этими класами работать. где есть нормальная документация?

ваш пример выдает только Array + цыфра.




		$query = $db->super_query("SELECT * FROM " . PREFIX . "_category", true);


		foreach ($query as $key => $value) {

				echo "<b>$value $key</b><br>";

		}

Изменено пользователем prozerpina
Ссылка на сообщение
Поделиться на других сайтах

prozerpina,


<?php

$category = "";

echoheader("Test", "Админпанель модуля Test");


if(!defined('DATALIFEENGINE') OR !defined('LOGGED_IN')) die("Hacking attempt!");


if(!$user_group[$member_id['user_group']]['admin_addnews']) msg("error", $lang['index_denied'], $lang['index_denied']);

else {

	$query = $db->super_query("SELECT * FROM " . PREFIX . "_category", true);

	// print_r($query);


	if(!$query) echo "Нет контента";

	else {

		foreach($query as $cat_name){

			$category .= $cat_name["name"] . "<br />\n";

		}

	}

}


echo "<div style=\"background-color: #fff; border: 1px solid lightgrey; padding: 10px; margin: 5px 5px 5px 3px; box-shadow: 2px 2px 4px -2px rgba(0,0,0, 0.3);\">" . $category . "</div>";

echofooter();

?>

Ссылка на сообщение
Поделиться на других сайтах

Перед тем, как написать Вам этот код, я проверил его у себя на DLE 9.7 и всё отлично работает :)

тоже не работает

Пишет какую-то ошибку или как Вы понимаете, что не работает?

Ссылка на сообщение
Поделиться на других сайтах

Перед тем, как написать Вам этот код, я проверил его у себя на DLE 9.7 и всё отлично работает :)

тоже не работает

Пишет какую-то ошибку или как Вы понимаете, что не работает?

у меня 9.5

нечего не выдает.

Ссылка на сообщение
Поделиться на других сайтах

Напишите мне в ICQ и я попробую Вам помочь :)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...