php中的每个while循环

时间:2013-10-27 16:14:21

标签: php while-loop

我试图从while循环中获取特定数据并循环x次。

我正在选择这些数据:

$r=mysql_query("SELECT ac6, ac5, ac4, ac3, ac2, ac1, ac0 FROM advertisements WHERE token = '".$_GET['token']."'");
while ($adData = mysql_fetch_array($r, MYSQL_NUM))
{
    $data = $adData;
    $ac0 = $data['ac0'];
    $ac1 = $data['ac0'];

print $ac0;
print $ac1;

}

这不起作用。什么都没打印出来。

我想要做的是为特定广告(令牌)获取ac6到ac0值。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

将数字提取更改为关联提取,然后添加foreach循环以处理结果。

$r = mysql_query("SELECT ac6, ac5, ac4, ac3, ac2, ac1, ac0
    FROM advertisements WHERE token = '" . $_GET['token'] . "'");
while ($adData = mysql_fetch_assoc($r))
{
    foreach ($adData as $key => $value)
    {
        $nubmer = (int)substr($key, 2);
        print $value; // or whatever you actually want to do
    }
}

此外,我希望您的代码中validating $_GET['token'] against possible mischief

答案 1 :(得分:0)

您可以创建数组以添加结果查询中的值

第一是创建一个数组:

$advert_AC0 = array();
$advert_AC1 = array();
$advert_AC2 = array();
$advert_AC3 = array();
$advert_AC4 = array();
$advert_AC5 = array();
$advert_AC6 = array();

现在,要向数组添加内容

$r = mysql_query("SELECT ac6, ac5, ac4, ac3, ac2, ac1, ac0
    FROM advertisements WHERE token = '" . $_GET['token'] . "'");
if(mysql_num_rows($r)){ //check 1st if there is num of rows from the result
 while ($adData = mysql_fetch_assoc($r))
 {
    array_push($advert_AC0, $dData['ac0']);
    array_push($advert_AC1, $dData['ac1']);
    array_push($advert_AC2, $dData['ac2']);
    array_push($advert_AC3, $dData['ac3']);
    array_push($advert_AC4, $dData['ac4']);
    array_push($advert_AC5, $dData['ac5']);
    array_push($advert_AC6, $dData['ac6']);
 }
}else{
 echo "NO RESULT.";
}

调用数组值,1乘1

$count_array = count($advert_AC0);
$i = $count_array;
while(1 <= $i){
 echo "AC0: $advert_AC0[$i]<br>";
 echo "AC1: $advert_AC1[$i]<br>";
 echo "AC2: $advert_AC2[$i]<br>";
 echo "AC3: $advert_AC3[$i]<br>";
 echo "AC4: $advert_AC4[$i]<br>";
 echo "AC5: $advert_AC5[$i]<br>";
 echo "AC6: $advert_AC6[$i]<br>";
 $i++;
}

我不知道我的答案是否解决了您的问题,如果没有,请发表评论。