PHP 用于每个 in while 循环


php for each in 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 值。我该怎么做?

将数字提取更改为关联提取,然后添加 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
    }
}

我也希望你正在验证$_GET['token'],防止你的代码中可能存在的恶作剧。

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

第一个是创建一个数组:

$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 x 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++;
}

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