スクリプトの1つに問題があります。基本的に何が起こるかというと、私の使用とmysqli_data_seek()
次mysqli_fetch_assoc()
のエラーが発生します。
Warning: mysqli_data_seek() expects parameter 1 to be mysqli_result, boolean given in /usr/home/myacc/includes/html/shop/categoryMain.html.php on line 49
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /usr/home/myacc/includes/html/shop/categoryMain.html.php on line 50
これは、これらの2行に関連するコードです。
mysqli_data_seek($subsSql, 0);
while($rowSubs = mysqli_fetch_assoc($subsSql))
これらのエラーは、ホストされている(ライブ)Webサイトでスクリプトが実行されている場合にのみ発生します。私のローカル開発(最新バージョンのWAMP)では、このスクリプトはエラーなしで実行され、目的の効果を生み出します...
完全なコンテキストでのスクリプトは次のとおりです。
//categories to local array
$catsQuery = "
SELECT id, category, catDirPath
FROM categories
ORDER BY category
";
$catsSql = mysqli_query($link, $catsQuery);
$cats = array();
mysqli_data_seek($catsSql, 0);
while($rowCats = mysqli_fetch_assoc($catsSql))
{
$cats[$rowCats['id']]['catName'] = $rowCats['category'];
$cats[$rowCats['id']]['catPath'] = $rowCats['catDirPath'];
}
// subCats to local array
$subsQuery = "
SELECT id, subCat, category_id, subDirPath
FROM subCats, sub_categories
WHERE subCats.id = sub_categories.sub_id
ORDER BY subCat
";
$subsSql = mysqli_query($link, $subsQuery);
$subs = array();
mysqli_data_seek($subsSql, 0);
while($rowSubs = mysqli_fetch_assoc($subsSql))
{
$subs[$rowSubs['id']]['subName'] = $rowSubs['subCat'];
$subs[$rowSubs['id']]['catId'] = $rowSubs['category_id'];
$subs[$rowSubs['id']]['subPath'] = $rowSubs['subDirPath'];
}
// loop through categories and if subs exist, add to resultset and display
foreach ($cats as $catId => $cat)
{
...
foreach ($subs as $subId => $sub)
{
...
}
...
}
誰かがこのスクリプトのコーディング方法に問題を見つけたり、Webホストで使用されているApacheサーバーではなくwampを介してこれが機能する理由を示唆したりする可能性がありますか?
これに関する提案やアドバイスをいただければ幸いです。
これを読んでくれてありがとう!