こんにちは。私の質問に答えてくれる人に感謝します。私はまだPHPに関して少し緑ですが、何が欲しいのか、何が問題なのかを説明しようと思います。
MySQL クエリの結果を含む 3 つの配列があります。
- $resultsTextPageID (pageID 値 [int(10)] 付き)
- $resultsTextPageName (pageName 値 [テキスト])
- $resultsTextIntro (pageIntro 値 [テキスト] 付き)
最終出力を
<b><a href="page.php?id=[pageID goes here]">[pageName goes here]</a></b><br />
[pageIntro goes here]<br /><br />
このような:
[pageName]
[pageIntro]
[pageName]
[pageIntro]
次のコードを試しました:
//ECHO PAGEID PART
while ($pageID = mysql_fetch_assoc($resultsTextPageID))
{
echo '<b><a href="page.php?id='.$pageID['pageID'].'">';
//ECHO PAGENAME PART
while ($pageName = mysql_fetch_assoc($resultsTextPageName))
{
echo $pageName['pageName'].'</a></b><br />';
//ECHO PAGEINTRO PART
while ($intro = mysql_fetch_assoc($resultsTextIntro))
{
echo $intro['pageIntro'].'<br /><br />';
}
}
}
しかし、私が得る出力は次のとおりです。
[pageName]
[pageIntro]
[pageIntro]
[pageName]
問題は while ループを構造化する途中にあると思いますが、私の人生では、それを修正する方法がわかりません。
誰かが私を助けることができますか?繰り返しますが、事前に感謝します! :D
編集1:クエリコードは次のとおりです。
//Prepare and set search query string
$q = preg_replace("/[^a-zA-Z0-9 !?.:]+/", " ", $_GET['q']);
//RETRIEVE KEYWORDS
//seperate multiple keywords into array
$keywords = explode(" ", $q);
//Clean empty arrays so they don’t get every row as result
$keywords = array_diff($keywords, array(""));
//MySQL QUERY
$searchTextPageID = "SELECT pageID FROM pages WHERE pageIntro LIKE '%".$keywords[$i]."%' OR pageText LIKE '%".$keywords[$i]."%'";
$searchTextPageName = "SELECT pageName FROM pages WHERE pageIntro LIKE '%".$keywords[$i]."%' OR pageText LIKE '%".$keywords[$i]."%'";
$searchTextIntro = "SELECT pageIntro FROM pages WHERE pageIntro LIKE '%".$keywords[$i]."%' OR pageText LIKE '%".$keywords[$i]."%'";