你好我要从中获取数组数据。我有一个代码但它的效果并不好 在前面的代码中cs = 2
for($k=0;$k<$cs;$k++)
{
$SQL = "SELECT duration FROM core_network WHERE location=('".$location_c[$k]."')";
$result = mysql_query($SQL);
$cks="0";
$duration=array();
while ($db_field = mysql_fetch_array($result)) {
$duration_c[$cks]= $db_field['duration']; //*here must save to data
$cks++;
}
}
我已将此代码保存在search_l.php
中 <?php include("lib/search_l.php"); ?>
<?php
if($cs!=0){
for($i=0;$i<$cs;$i++)
{
?>
<div id="alarmdisplay">
<table class width="634" border="0" cellspacing="3" cellpadding="3">
<tr class="search">
<td width="256"><?php echo $location_c[$i] ?></td>
<td width="154" class="247"><?php echo $duration_c[$i]
?></td>
<td width="194"> </td>
</tr>
</table>
在这里必须打印2个持续时间。但它打印只有一个有错误注意:未定义的偏移:1如何正确打印?
当我测试它以检查是否正确时我注意到:
$result)) {
$duration_c[$cks]= $db_field['duration'];
$cks++;
} echo $duration_c[$cks] //*it prints correct i meant prints 2 test data
}
之后
$result)) {
$duration_c[$cks]= $db_field['duration'];
$cks++;
}
}
echo $duration_c[$cks] //*it prints not correct i meant prints only first test data
如何纠正?
答案 0 :(得分:0)
如果您想要键类型结果(assoc数组),请使用
mysql_fetch_assoc();
而不是
mysql_fetch_array();
答案 1 :(得分:0)
好的,然后尝试这样的事情,这将得到你在数组中插入的结果。
<?php
for($i = 0; $i < count($duration); ++$i) {
echo $duration[$i];
?>
答案 2 :(得分:0)
代码中存在一个简单的类型错误:
$duration=array();
应该是
$duration_c=array();
否则会出现范围问题,因为在$duration_c
循环之外不会知道while
。
答案 3 :(得分:0)
$duration_c=array();//Should be declared outside loop
for($k=0;$k<$cs;$k++)
{
$SQL = "SELECT duration FROM core_network WHERE location=('".$location_c[$k]."')";
$result = mysql_query($SQL);
$cks = 0;//String variable
while ($db_field = mysql_fetch_array($result,MYSQL_ASSOC)) {
//^---------returns associative array
$duration_c[$cks]= $db_field['duration'];
$cks++;
}
}