我想从数据库中取出数据并存储在不同的数组中,以便我可以为它绘制图形。但是当我取出数据时会出现问题。我只是拿出部分编码。
$query =mysqli_query($con,"select * from appointment WHERE L_Name='$lname' and A_Status='CONFIRMED' and EXTRACT(month FROM A_Date) = '$month' ") or die(mysqli_error());
if(mysqli_num_rows($query)>0)
{
echo "<h3 align=center style=font-size:20px;>" .$_POST['month']. "</h3>";
echo "<table width=500 cellpadding=10 border=0 align=center><tr style='color:#FFF;background-color:#000'><td><div align='center'>Name</td><td align='center'>Total No. of Appointment</td><td align='center'>Details</td></tr>";
while($row=mysqli_fetch_assoc($query))
{
$name=$row['S_Name'];
if($tempname!=$name)
{
$sql=mysqli_query($con,"select * from appointment WHERE L_Name='$lname' and A_Status='CONFIRMED' and EXTRACT(month FROM A_Date) = '$month' and S_Name='$name' ") or die(mysqli_error());
if(mysqli_num_rows($sql)>0)
{
$count = mysqli_num_rows($sql);
$x=array($name);
$no=array($count);
echo "<tr bgcolor='#F7D358' width=60><td align=center>".$name."</td><td width=200 align=center>" .$count. "</td>";
echo "<td align=center width=80><a href='view_month.php?sname=$name&num=$count&month=$month'><img src='select.jpeg' width='80' height='30'></a></td></tr>";
}
$tempname=$name;
}
}
$data = array_combine($x, $no);
print_r($data);
&#13;
我得到的输出只有1个数据,因为数据库中应该有2个数据。我该如何解决?
当前输出
Array ( [Ken] => 1 )
预期输出
Array ( [Alice] => 2 ),
Array ( [Ken] => 1 )
答案 0 :(得分:0)
问题是以下代码行。你应该使用array_push
,目前你正在覆盖数组数据
$x=array($name);
$no=array($count);
你应该改用
$x = array(); //declare below the loop
$no = array(); //declare below the loop
array_push($x, $name);
array_push($no, $count);
注意:如果第一个参数不是数组,array_push()将发出警告。
这就是为什么我们必须首先将变量声明为数组。
答案 1 :(得分:0)
array_combine 使用一个“keys”数组和一个“values”数组中的元素创建一个数组。
array_merge array_merge()函数将一个或多个数组合并为一个数组。
您可以使用array_merge
而不是: $data = array_combine($x, $no);
使用: $data =array_merge($x, $no);
答案 2 :(得分:0)
这可能会对您有所帮助:
$count = mysqli_num_rows($sql);
$x[]=$name; /* $x must be an array in your case you are replacing old contents of $x */
$no[]=$count;