Я делаю простой блог в PHP и получаю эту ошибку -PHP/Mysql ошибка смещения
Illegal строка смещения 'имя' в C: \ XAMPP \ HTDOCS \ простой \ index.php в строке 28 и 29
<?php
foreach ($posts as $post) {
if (! category_exists('name', $post ['name'])) { //line 28
$post['name'] = 'Uncategorised';
}
?>
Я знаю строку компенсировано вопросы были здесь задавали много, но все-таки я не мог понять, как исправить это. Пожалуйста помоги.
Вот функция category_exists
function category_exists($field,$value)
{
$field=mysql_real_escape_string($field);
$value=mysql_real_escape_string($value);
$query=mysql_query("SELECT COUNT(1) FROM categories WHERE {$field}= '{$value}'");
echo mysql_error();
return (mysql_result($query,0)=='0')? false : true;
}
Эта часть кода, мы надеемся, поможет вам понять $posts
переменную:
$posts=get_posts();
function get_posts($id=null,$cat_id=null){
$posts=array();
$query=mysql_query("SELECT posts.id AS post_id, categories.id AS category_id, title, contents, date_posted, categories.name FROM posts INNER JOIN categories ON categories.id = posts.cat_id ORDER BY post_id DESC");
while($row=mysql_fetch_assoc($query))
{
$posts=$row;
}
return $posts;
}
У меня есть следующие атрибуты таблицы сообщений -
идентификатор, название, cat_id, содержание, date_posted.
Для таблицы категорий:
id и название.
показать полный код. в соответствии с вашими сообщениями $ undefined, и u сначала должен получить еще одну ошибку, например, «invalid ..somt .. for foreach» – M0rtiis
Похоже, что существует пробел между $ post и ['name'], может ли это быть причиной? –
не решит вашу проблему. но вы, безусловно, shoult замените '$ posts = $ row;' whith '$ posts [] = $ row;' в последнем блоке кода – M0rtiis