我很快就会遇到使用while循环的问题...我不知道发生了什么事情,所以,我认为我应该寻求帮助,经过大量搜索,我知道 mysql_fetch_array 每次都会返回行,因此如果需要从查询中获取所有行,我们应该使用而。 在尝试避免而并使用 foreach 之后,我发现只是我们不能使用 foreach 而不是而> strong>或者我们可以在 之后将其用作另一个循环。 无论如何,我的问题是:我在mysql数据库中创建了一个存储过程,它使用php正常工作,但是当我试图将它放在基于的循环中时一些数据的ID, while循环仅在计算后给了我第一行。 所以,如果有人能看到我能在代码中看到的内容,请不要犹豫。 感谢..
$startdate = $_POST['startdate'];
$enddate = $_POST['enddate'];
$thefinalres="";
$loop = mysql_query("SELECT * FROM mrh_chains order by id");
if ($loop){
while ($row = mysql_fetch_array($loop))
{
$theid = $row['id'];
$thename = $row['name'];
//CALL PROCEDURE
$result = mysql_query("CALL calccommission($theid,'$startdate','$enddate')");
if ($result){
$row2 = mysql_fetch_array($result);
if ($row2[0]!=""){
$thecommission = $row2[0];
} else {
$thecommission = "Try to change dates, There are no data on these dates";
}
$thefinalres .= $thename . " commission: ". $thecommission . "<br/>";
}
}
$value = array('msg' => 'true' );
$value["res"] = $thefinalres;
} else {
$value = array('msg' => 'false' );
}
答案 0 :(得分:0)
$mysqli = new mysqli( "HOST", "USR", "PWD", "DBNAME" );
$ivalue=1;
$res = $mysqli->multi_query( "CALL myproc($ivalue,@x);SELECT @x" );
if( $res ) {
$results = 0;
do {
if ($result = $mysqli->store_result()) {
printf( "<b>Result #%u</b>:<br/>", ++$results );
while( $row = $result->fetch_row() ) {
foreach( $row as $cell ) echo $cell, " ";
}
$result->close();
if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );
}
$mysqli->close();
我在这篇文章中找到了答案:https://forums.mysql.com/read.php?52,198596,198717