echoing [0]给出了与echoing [1]实际为空时相同的结果 - PHP

时间:2016-02-12 11:05:29

标签: php mysql arrays while-loop echo

我在回显数组元素方面遇到了一些问题。

我正在使用PHP来循环数据库中的结果,然后将它们存储在单独的数组中,这样我就可以在页面的下方单独使用它们(这可能效率低下但我不知道如何做到这一点)。

当我在数组中只有一个结果时,我的问题出现了,当我回显结果时,它会为$Advert[0]重复与$Advert[1]相同的结果,即使第二个结果为空。

我使用print_r()来确认这一点。最奇怪的是,它使用非常相似的代码以及与$DisplayedJobTitle数组在同一页面上的不同页面上工作正常。

我错过了什么吗?以下是代码:

$AppQuery = "SELECT Displayed_Job_Title, Applicant_Town, Applicant_Advert FROM Applicants WHERE Status LIKE 'Listed' ORDER BY Applicant_ID DESC LIMIT 4";
$AppStmt = $con->prepare($AppQuery);
$AppStmt->execute() or die("Something went wrong, could not find recent vancacies :-( ".mysqli_error($con));

$AppResult = $AppStmt->get_result();

$DisplayedJobTitle = array();
$Town = array();
$Advert = array();

while ($AppRow = $AppResult->fetch_object()) {
   $DisplayedJobTitle[] = $AppRow->Displayed_Job_Title;
   $Town[] = $AppRow->Applicant_Town;
   $Advert[] = $AppRow->Applicant_Advert;
}

然后在页面下方:

<?php echo $DisplayedJobTitle[0]; ?>

但有效:

<?php 
    echo $Town[0] ."<br /><br />";
    echo $Advert[0];
?>

没有。它只是重复相同的数据。我在页面上各有四个,每个都递增一个$Advert[1] $Advert[2]等。

我已经尝试过使用if语句来检查特定数组元素为空的天气,或者是否为null或是否已设置并执行相同的操作。

1 个答案:

答案 0 :(得分:-1)

你只需要一个索引。

   $i = 0;   
   while ($AppRow = $AppResult->fetch_object()) {    
       $DisplayedJobTitle[$i]  = $AppRow->Displayed_Job_Title;    
       $Town[$i] = $AppRow->Applicant_Town;   
       $Advert[$i] = $AppRow->Applicant_Advert;
       $i++;
    }