您好,提前感谢任何可以回答我问题的人。就 PHP 而言,我仍然有点绿色,但我会尝试解释我想要什么以及我的问题是什么。
我有 3 个带有 MySQL 查询结果的数组:
- $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]."%'";