我做在PHP一個簡單的博客,並得到這個錯誤 -PHP/MySQL的偏移誤差
非法串偏移 '名' 在C:\ XAMPP \ htdocs中\上線28簡單\的index.php和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;
}
我的職位表中的下列屬性 -
ID,標題, CAT_ID,內容,date_posted。
對於分類表:
id和名稱。
顯示完整的代碼。根據你的$帖子是不確定的,你應該在第一次得到另一個錯誤,如'無效..somt .. for foreach' – M0rtiis
它看起來像$ post和['name']之間有一個空格,可能會導致問題? –
它沒有解決你的問題。但你肯定會替代'$ posts = $ row;'whith'$ posts [] = $ row;'在最後一個代碼塊 – M0rtiis