Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2019, 09:36   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
Вопрос Построничный вывод из БД

Доброго времени суток!

Подскажите как лучше сделать постраничный вывод из БД что бы отрабатывало быстро всё и не сильно грузило?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 22.01.2019, 10:54   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Принцип реализации можно посмотреть здесь: http://phpfaq.ru/mysql/paginator (новую версию, разумеется).
Andkorol вне форума Ответить с цитированием
Старый 22.01.2019, 16:34   #3
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Andkorol, спасибо большое за помощь. Сделал как надо ... теперь хоть вывод не долго грузится =)
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 22.01.2019, 20:37   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

возможно что тормоза были не только из-за отсутствия пагинации но и в неэффективном способе вывода )
ADSoft вне форума Ответить с цитированием
Старый 23.01.2019, 16:50   #5
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
возможно что тормоза были не только из-за отсутствия пагинации но и в неэффективном способе вывода )
А какие эффективные способы вывода?

и тут же задам вопрос так как файл с классом относится к постраничному выводу

есть класс на php "safemysql.class.php" он просит подключения к БД ... если я прописываю данные то всё работает, а вот если я подключаю конфиг и в местах где нужно указывать данные для подключения к БД прописываю переменные не чего не работает ... как сделать так что бы переменные заработали а данные для подключения надо было указывать один раз всего?

Код:


include ('config.php');

class SafeMySQL
{



	protected $conn;
	protected $stats;
	protected $emode;
	protected $exname;
	protected $defaults = array(
		'host'      => $host,
		'user'      => $user,
		'pass'      => $pass,
		'db'        => $db,
		'port'      => NULL,
		'socket'    => NULL,
		'pconnect'  => FALSE,
		'charset'   => 'utf8',
		'errmode'   => 'exception', //or 'error'
		'exception' => 'Exception', //Exception class name
	);
Полный скрипт на safemysql.class.php лежит на github вот на него ссылка. из-за большого объема не получилось его тут разместить.
"Я не волшебник, я только учусь"

Последний раз редактировалось s88s; 23.01.2019 в 17:00.
s88s вне форума Ответить с цитированием
Старый 23.01.2019, 20:12   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну мы не телепаты чего вы там делаете ... вдруг вы в цикле делаете sql запросы например - это не гуд...
по поводу вопроса - наверное при инициализации класса передаются параметры подключения...
типа $db = new SafeMySQL($parametrs);
а потом везде используете $db и все
ADSoft вне форума Ответить с цитированием
Старый 23.01.2019, 21:18   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Да всё ж детально описано в доке:
https://github.com/colshrapnel/safemysql/blob/master/safemysql.class.php#L29
Andkorol вне форума Ответить с цитированием
Старый 24.01.2019, 13:44   #8
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

вопрос свой решил.

А решил его так:

Так как для подключения к БД SafeMySQL получает все параметры в массиве то и соответственно он и не принимал у меня переменные и зашел я с этим вопросом с другой стороны а именно в файле конфига я все переменные загнал в массив а так как все данные функции передаются с цифровым ключом начиная с нуля то я сделал замену на те ключи которые мне нужны а именно host pass и тд


Код:
$config = "host:$host,user:$user,pass:$pass,db:$db";

$opts = explode(',', $config);

for($i=0; $i < count($opts ); $i++){
    $key_value = explode(':', $opts [$i]);
    $config_array[$key_value [0]] = $key_value [1];
}
и далее в файле где мне нужен класс вызываю его

Код:
include ('safemysql.class.php');
$db = new safeMysql($config_array);
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 24.01.2019, 14:46   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

зачем такие извращения? почему в конфиге сразу нельзя массив задать?, религия не позволяет?

PHP код:
$config = array("host"=>"bla-bla","user"=>"bla-bla","pass"=>"bla-bla""db" => "bla-bla"); 
ADSoft вне форума Ответить с цитированием
Старый 24.01.2019, 16:27   #10
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
зачем такие извращения? почему в конфиге сразу нельзя массив задать?, религия не позволяет?

PHP код:
$config = array("host"=>"bla-bla","user"=>"bla-bla","pass"=>"bla-bla""db" => "bla-bla"); 
с религией всё гуд ... надо переписать просто весь сайт под это ... чем я займусь чуть позже сейчас времени нет =(
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку C++: бесформатный ввод/вывод, форматный ввод/вывод david1506 Visual C++ 2 21.10.2015 09:03
вывод в див имен из бд и при нажатии вывод в отдельный див дополнительной информации об этом имени / PHP и базы данных looni123 JavaScript, Ajax 3 03.04.2014 21:26
Вывод на Си xapek Общие вопросы C/C++ 0 25.03.2012 17:59
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр Gareek Помощь студентам 2 23.12.2011 21:41
вывод Dimarik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 15.02.2011 14:13