PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (5): « 1 2 3 4 [5]
Найдено сообщений: 69
Lolya
Отправлено: 24 Мая, 2018 - 09:27:33 • Тема: Поиск в базе по IP • Форум: Вопросы новичков
Ответов: 9 Просмотров: 372
Я имею в виду что в самом скрипте сайт не прописана эта функция. Сайт у меня сейчас стоит временно на Опен Сервер, пока его гоняю и дорабатываю.
Вот что там прописано только:
PHP:
скопировать код в буфер обмена
function sql_query( $query ) {
global $queries , $query_stat , $querytime ;
$queries ++;
$query_start_time = timer( ) ; // Start time
$query_end_time = timer( ) ; // End time
$query_time = ( $query_end_time - $query_start_time ) ;
$querytime = $querytime + $query_time ;
$query_stat [ ] = array ( "seconds" => $query_time , "query" => $query ) ; return $result ;
}
Как мне поменять или добавить в скрипт для работы mysqli_query , mysqli_fetch_array ?
Lolya
Отправлено: 23 Мая, 2018 - 11:19:25 • Тема: Поиск в базе по IP • Форум: Вопросы новичков
Ответов: 9 Просмотров: 372
Vladimir Kheifets пишет: Извините, не понял для чего это:
$ips = str_replace(".", ".", $ip);
будет тот же результат если написать
$ips = $ip;
Советую Вам заменить неактуальные mysql_query , mysql_fetch_array ,
которые исключены начиная с версии PHP7.0.0, на mysqli_query , mysqli_fetch_array
Для точного поиска с точками, хотя если убрать то вроде работает.
К сожалению mysqli у меня не прописана в скрипте, НЕ работает она, только mysql или sql.
Lolya
Отправлено: 22 Мая, 2018 - 12:38:51 • Тема: Поиск в базе по IP • Форум: Вопросы новичков
Ответов: 9 Просмотров: 372
Vladimir Kheifets
Спасибо за ответы, разобрался. Все работает нормально.
код вот этот нужен был:
PHP:
скопировать код в буфер обмена
$ip = getip( ) ;
$r = @ mysql_query ( "SELECT * FROM users WHERE ip='" . unesc
( $ips ) . "'" ) or sqlerr
( __FILE__ , __LINE__ ) ; if ( ! $user ) {
print ( "<html><head><meta http-equiv=refresh content='0;url=http://bublya'></head></html>" ) ;
} else {
print ( "<html><head><meta http-equiv=refresh content='0;url=$DEFAULTBASEURL '></head>
}
Lolya
Отправлено: 21 Мая, 2018 - 22:35:44 • Тема: Свести две функции в один запрос • Форум: Вопросы новичков
Ответов: 6 Просмотров: 469
Строитель пишет: $table_names = array(
Большое спасибо. Работает в таком виде (полный код):
PHP:
скопировать код в буфер обмена
$table = array ( 'categories' , 'incategories' ) ; function get_list( $table ) {
$res = sql_query( "SELECT id, name, image FROM $table ORDER BY sort ASC" ) ;
$ret [ ] = $row ;
return $ret ;
}
Вывод на сранице взял так:
Скорость *вроде как быстрее стала, но один черт запросов два на страницу как и было.
Мне надо вывести картинки с названием и id категории и подкатегории на странице, так что если одну уберу (какую-то), то будет бить ошибку и ругаться на нехватающую функцию.
Проблема...
Lolya
Отправлено: 21 Мая, 2018 - 21:12:48 • Тема: Поиск в базе по IP • Форум: Вопросы новичков
Ответов: 9 Просмотров: 372
Vladimir Kheifets пишет:
Добрый вечер!
Конечно важно проверить, в каком формате у Вас хранится
ip
Возможно, что не хватает ковычек в фильтре и должно быть:
Хранится так записи в ячейке ip с varchar(15) :
Lolya
Отправлено: 21 Мая, 2018 - 21:09:34 • Тема: Свести две функции в один запрос • Форум: Вопросы новичков
Ответов: 6 Просмотров: 469
Строитель пишет: Lolya пишет: как теперь расписывать функции для запроса?
Если запросы к БД одинаковые
(как выше было написано) , то ничего больше расписывать не нужно. Всё что надо сделать, это заполнить массив
$table_names названиями таблиц, из которых будет выборка, по такому принципу:
Вот что пишет когда заменил на выше код:
Цитата: syntax error, unexpected '[' in
Lolya
Отправлено: 21 Мая, 2018 - 20:37:35 • Тема: Поиск в базе по IP • Форум: Вопросы новичков
Ответов: 9 Просмотров: 372
Видел такую возможность на нескольких сайтах, если нет IP в базе сайта, то просто перенаправляет сразу на другой какой-то адресс.
Пытаюсь реализовать под себя и ошибка выходит все время. кто может подсказать в чем проблема? Заранее спасибо.
В базе есть таблица users , там есть ячейка ip . Вот запрос что я пытаюсь сделать:
PHP:
скопировать код в буфер обмена
$ip = getip( ) ;
$row = get_row_count( "users" , "WHERE ip=" . sqlesc( $ip ) ) ;
if ( ! $row ) {
print ( "<html><head><meta http-equiv=refresh content='20;url=http://bublya'></head></html>" ) ;
}
Где ошибка?
Lolya
Отправлено: 21 Мая, 2018 - 20:15:19 • Тема: Свести две функции в один запрос • Форум: Вопросы новичков
Ответов: 6 Просмотров: 469
Строитель пишет: Lolya , у вас ведь по сути меняется только название таблицы, из которой идёт выборка? Тогда можно описать всего одну функцию, добавив в сигнатуру один аргумент - в этот аргумент будет передаваться текущее название таблицы. В результате на выходе вы получите массив значений выборки из нескольких таблиц. Пример:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
function get_list( $table ) {
$result = [ ] ;
$res = sql_query( "SELECT id, name, image FROM $table ORDER BY sort ASC" ) ;
$result [ ] = $row ;
}
return $result ;
}
// Массив с названиями таблиц
$table_names = [ 'categories' , 'incategories' ] ;
return get_list( $item ) ;
} , $table_names ) ;
(Добавление)
Lolya пишет: таких еще будет 4 одинаковых
Добавьте остальные названия таблиц в массив с названиями таблиц.
Спасибо. А теперь вопрос дополнительный:
как теперь расписывать функции для запроса?
Lolya
Отправлено: 19 Мая, 2018 - 12:42:34 • Тема: Свести две функции в один запрос • Форум: Вопросы новичков
Ответов: 6 Просмотров: 469
Возможно свести две функции в один запрос? Выборка у них одинаковая идет, но для разных таблиц.
PHP:
скопировать код в буфер обмена
function genrelist( ) {
$res = sql_query( 'SELECT id, name, image FROM categories ORDER BY sort ASC' ) ;
$ret [ ] = $row ;
return $ret ;
}
function incatlist( ) {
$res = sql_query( 'SELECT id, name, image FROM incategories ORDER BY sort ASC' ) ;
$rek [ ] = $row ;
return $rek ;
}
Два запроса сильно напрягают, хотелось бы избавиться от них, тем более что таких еще будет 4 одинаковых но с другим названием функции (вид останется тот-же).
Возможно ли объединение?
Страниц (5): « 1 2 3 4 [5]
Powered by ExBB FM 1.0 RC1. InvisionExBB