PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 9
nullbyte
Отправлено: 03 Июня, 2011 - 13:14:32 • Тема: Проблема с постраничной навигацией • Форум: Если скрипт не работает
Ответов: 2 Просмотров: 1240
Цитата: Строки 23-25: нафига создавать три одинаковых объекта? (видимо еще и три активных подключения к базе)
Используйте синглтон, или на худой конец все тот же объект, но в единичном числе, обращаясь с запросами только к нему, присваивая результат разным переменным.
Спасибо, недосмотрел.
Цитата: И поставьте в запросе класса для БД: mysql_query("xxx") or die(mysql_error());
Сделал.
Цитата: Так надо: SELECT COUNT(*) cnt FROM `content`
Получите на выходе $res[0]['cnt'] содержащий число записей.
Сделал, вот что получил:
PHP:
скопировать код в буфер обмена
$connector = new database( $configuration ) ;
$result [ 'general' ] = $connector -> query ( "SELECT * FROM `general` WHERE `destination` = '{$address [" view"]}';" ) ;
$result [ 'counter' ] = $connector -> query ( "SELECT COUNT(*) count FROM `content`;" ) ;
// Navigation start
/* 32 строка */ $navigation [ 'total' ] = mysql_result ( $result [ 0 ] [ 'count' ] , 0
, 0
) ; $navigation [ 'page' ] = ( int) $address [ 'count' ] ;
$navigation [ 'pages' ] = ceil ( $navigation [ 'total' ] / $configuration [ 'pages' ] ) ;
if ( $navigation [ 'page' ] < 1)
$navigation [ 'page' ] = 1 ;
if ( $navigation [ 'page' ] > $navigation [ 'pages' ] )
$navigation [ 'page' ] = $navigation [ 'pages' ] ;
$navigation [ 'start' ] = ( $navigation [ 'page' ] - 1) * $configuration [ 'pages' ] ;
$result [ 'content' ] = $connector -> query ( "SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address [" view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']} , {$configuration['pages']} ;" ) ;
// Navigation ends
require_once ( './templates/' . $configuration [ 'design' ] . '/index.temp.php' ) ;
nullbyte
Отправлено: 02 Июня, 2011 - 22:25:32 • Тема: Проблема с постраничной навигацией • Форум: Если скрипт не работает
Ответов: 2 Просмотров: 1240
Приветствую, форумчане!
Мучаю постраничную навигацию. Вроде все сделал, но вылезает вот такая ошибка - Cannot use string offset as an array in <...>. Вылезает тогда, когда перехожу на любую страницу, кроме первой.
На вывод идет:
Контроллер:
PHP:
скопировать код в буфер обмена
<?PHP
require_once ( './functions/application.php' ) ;
// Get settings start
$address [ 'view' ] = $_GET [ 'view' ] ;
else
$address [ 'view' ] = 'index' ;
if ( isset ( $_GET [ 'module' ] ) ) $address [ 'module' ] = $_GET [ 'module' ] ;
if ( isset ( $_GET [ 'action' ] ) ) $address [ 'action' ] = $_GET [ 'action' ] ;
if ( isset ( $_GET [ 'count' ] ) ) $address [ 'count' ] = $_GET [ 'count' ] ;
else
$address [ 'count' ] = 1 ;
// Get settings ends
$select [ 'general' ] = new database( $configuration ) ;
$select [ 'counter' ] = new database( $configuration ) ;
$select [ 'content' ] = new database( $configuration ) ;
$result [ 'general' ] = $select [ 'general' ] -> query ( "SELECT * FROM `general` WHERE `destination` = '{$address [" view"]}';" ) ;
$result [ 'counter' ] = $select [ 'counter' ] -> query ( "SELECT COUNT(*) FROM `content` WHERE 1" ) ;
// Navigation start
$navigation [ 'total' ] = mysql_result ( $result [ 'counter' ] , 0
, 0
) ; $navigation [ 'page' ] = ( int) $address [ 'count' ] ;
$navigation [ 'pages' ] = ceil ( $navigation [ 'total' ] / $configuration [ 'pages' ] ) ;
if ( $navigation [ 'page' ] < 1)
$navigation [ 'page' ] = 1 ;
if ( $navigation [ 'page' ] > $navigation [ 'pages' ] )
$navigation [ 'page' ] = $navigation [ 'pages' ] ;
$navigation [ 'start' ] = ( $navigation [ 'page' ] - 1) * $configuration [ 'pages' ] ;
$result [ 'content' ] = $select [ 'content' ] -> query ( "SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address [" view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']} , {$configuration['pages']} ;" ) ;
// Navigation ends
require_once ( './templates/' . $configuration [ 'design' ] . '/index.temp.php' ) ;
?>
Прошу помочь, кто знает =))
nullbyte
Отправлено: 31 Мая, 2011 - 18:38:06 • Тема: Cannot use string offset as an array in <...> • Форум: Если скрипт не работает
Ответов: 0 Просмотров: 2743
Приветствую, форумчане!
Мучаю постраничную навигацию. Вроде все сделал, но вылезает вот такая ошибка - Cannot use string offset as an array in <...> on line 5 в шаблоне:
PHP:
скопировать код в буфер обмена
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?PHP echo $view [ 'general' ] [ 'title' ] ; ?> </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="<?PHP echo $view [ 'general' ] [ 'keywords' ] ; ?> " />
<meta name="description" content="<?PHP echo $view [ 'general' ] [ 'description' ] ; ?> " />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/main.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/news.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/footer.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/header.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/shadow.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/content.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/location.css" rel="stylesheet" type="text/css" />
<link href="./templates/<?PHP echo $configuration [ 'design' ] ; ?> /resources/styles/navigation.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="wrapper">
<?PHP require_once ( "./templates/" . $configuration [ 'design' ] . "/resources/blocks/logotype.temp.php" ) ; ?>
<table class="layout">
<tr>
<td class="shadow_left_top"></td>
<?PHP require_once ( "./templates/" . $configuration [ 'design' ] . "/resources/blocks/header.temp.php" ) ; ?>
<td class="shadow_right_top"></td>
</tr>
<tr>
<td class="shadow_left"></td>
<td class="middle">
<table class="content_block">
<tr>
<?PHP require_once ( "./templates/" . $configuration [ 'design' ] . "/resources/blocks/sidebar.temp.php" ) ; ?>
<?PHP require_once ( "./templates/" . $configuration [ 'design' ] . "/resources/blocks/content.temp.php" ) ; ?>
</tr>
</table>
</td>
<td class="shadow_right"></td>
</tr>
<tr>
<td class="shadow_left_bottom"></td>
<?PHP require_once ( "./templates/" . $configuration [ 'design' ] . "/resources/blocks/footer.temp.php" ) ; ?>
<td class="shadow_right_bottom"></td>
</tr>
</table>
</div>
</body>
</html>
Контроллер:
PHP:
скопировать код в буфер обмена
<?PHP
require_once ( './functions/application.php' ) ;
// Get settings start
$address [ 'view' ] = $_GET [ 'view' ] ;
else
$address [ 'view' ] = 'index' ;
if ( isset ( $_GET [ 'module' ] ) ) $address [ 'module' ] = $_GET [ 'module' ] ;
if ( isset ( $_GET [ 'action' ] ) ) $address [ 'action' ] = $_GET [ 'action' ] ;
if ( isset ( $_GET [ 'count' ] ) ) $address [ 'count' ] = $_GET [ 'count' ] ;
else
$address [ 'count' ] = 1 ;
// Get settings ends
$select [ 'general' ] = new database( $configuration ) ;
$select [ 'counter' ] = new database( $configuration ) ;
$select [ 'content' ] = new database( $configuration ) ;
$result [ 'general' ] = $select [ 'general' ] -> query ( "SELECT * FROM `general` WHERE `destination` = '{$address [" view"]}';" ) ;
$result [ 'counter' ] = $select [ 'counter' ] -> query ( "SELECT COUNT(*) FROM `content` WHERE 1" ) ;
// Navigation start
$navigation [ 'total' ] = mysql_result ( $result [ 'counter' ] , 0
, 0
) ; $navigation [ 'page' ] = ( int) $address [ 'count' ] ;
$navigation [ 'pages' ] = ceil ( $navigation [ 'total' ] / $configuration [ 'pages' ] ) ;
if ( $navigation [ 'page' ] < 1)
$navigation [ 'page' ] = 1 ;
if ( $navigation [ 'page' ] > $navigation [ 'pages' ] )
$navigation [ 'page' ] = $navigation [ 'pages' ] ;
$navigation [ 'start' ] = ( $navigation [ 'page' ] - 1) * $configuration [ 'pages' ] ;
$result [ 'content' ] = $select [ 'content' ] -> query ( "SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address [" view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']} , {$configuration['pages']} ;" ) ;
// Navigation ends
require_once ( './templates/' . $configuration [ 'design' ] . '/index.temp.php' ) ;
?>
Помогите пожалуйста
nullbyte
Отправлено: 28 Мая, 2011 - 20:09:18 • Тема: Вывод из БД, цикл while() • Форум: Работа с СУБД
Ответов: 6 Просмотров: 3272
Жаль что пока не могу нажать "Спасибо". Действительно, помогло просто закомментировать одну строчку =))
nullbyte
Отправлено: 28 Мая, 2011 - 20:03:29 • Тема: Вывод из БД, цикл while() • Форум: Работа с СУБД
Ответов: 6 Просмотров: 3272
Ну, это нужно для постраничной навигации, сегодня взялся ее делать, до этого выводились просто данные, без страниц, и была таже проблема. Если ставлю вместо while(), do-while(), все отображает правильно.
nullbyte
Отправлено: 28 Мая, 2011 - 19:55:15 • Тема: Вывод из БД, цикл while() • Форум: Работа с СУБД
Ответов: 6 Просмотров: 3272
Ну, у меня просто такая структура запроса:
PHP:
скопировать код в буфер обмена
$select [ 'content' ] = new database( $configuration ) ;
$result [ 'content' ] = $select [ 'content' ] -> query ( "SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address [" view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']} , {$configuration['pages']} ;" ) ;
nullbyte
Отправлено: 28 Мая, 2011 - 19:50:05 • Тема: Вывод из БД, цикл while() • Форум: Работа с СУБД
Ответов: 6 Просмотров: 3272
Всем привет!
Столкнулся с проблемой при выводе данных из БД:
PHP:
скопировать код в буфер обмена
{
echo "<div class=\" news\" >\n " ;
echo " <div class=\" news_title\" >" . $view [ 'content' ] [ 'title' ] . "</div>\n " ;
echo " <p class=\" news_description\" >" . $view [ 'content' ] [ 'description' ] . "</p>\n " ;
echo " <div class=\" news_information\" >\n " ;
echo " <div class=\" news_item_author\" >" . $view [ 'content' ] [ 'author' ] . "</div>\n " ;
echo " <div class=\" news_item_comments\" >Коментарів — " . $view [ 'content' ] [ 'comments' ] . "</div>\n " ;
echo " </div>\n " ;
echo "</div>\n " ;
}
У меня три новости, выводятся вторая и третья, первая игнорируется.
nullbyte
Отправлено: 15 Мая, 2011 - 10:20:10 • Тема: Вложенные массивы • Форум: SQL и Архитектура БД
Ответов: 2 Просмотров: 34
Благодарю! Если бы мог, поставил спасибку =))
Для тех, у кого аналогичная проблема:
PHP:
скопировать код в буфер обмена
$result [ 'general' ] = $select [ 'general' ] -> query ( "SELECT * FROM `general` WHERE `destination` = '{$address [" page"]}';" ) ;
$result [ 'content' ] = $select [ 'content' ] -> query ( "SELECT * FROM `content` WHERE `destination` = '{$address [" page"]}';" ) ;
nullbyte
Отправлено: 14 Мая, 2011 - 21:06:06 • Тема: Вложенные массивы • Форум: SQL и Архитектура БД
Ответов: 2 Просмотров: 34
Приветствую!
Есть скрипт главной страницы:
PHP:
скопировать код в буфер обмена
<?PHP
require_once ( './functions/application.php' ) ;
$address [ 'page' ] = $_GET [ 'page' ] ;
else
$address [ 'page' ] = 'index' ;
if ( isset ( $_GET [ 'action' ] ) ) $address [ 'action' ] = $_GET [ 'action' ] ;
if ( isset ( $_GET [ 'identifier' ] ) ) $address [ 'identifier' ] = $_GET [ 'identifier' ] ;
$select [ 'general' ] = new database( $configuration ) ;
$select [ 'content' ] = new database( $configuration ) ;
$result [ 'general' ] = $select [ 'general' ] -> query ( 'SELECT * FROM general WHERE destination = `{$address[\'page\']}`;' ) ;
$result [ 'content' ] = $select [ 'content' ] -> query ( 'SELECT * FROM content WHERE destination = `{$address[\'page\']}`;' ) ;
require_once ( './templates/' . $configuration [ 'design' ] . '/index.temp.php' ) ;
?>
Чтобы не засорять global scope, решил использовать ассоциативные массивы. В строке номер 20 ($view['general'] = mysql_fetch_assoc($result['general']); ) вылезает ошибка: "mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource ". Хотелось бы узнать, можно ли вообще использовать массивы в данном случае и как обращаться, в последствии, к их элементам?
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB