以此为基础代码:
$sql = "SELECT * FROM `memberlist` WHERE Active = 1";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) {
while ($temp = mysql_fetch_array($res, MYSQL_BOTH)) {
我希望结果是:
暂时:
- 拿到第一张唱片,做点什么
- 拿到第一张唱片,做点什么。拿到第二张唱片,做点什么
- 拿到第一张唱片,做点什么。拿到第二张唱片,做点什么。拿到第三张唱片,做点什么
- 拿到第一张唱片,做点什么。拿到第二张唱片,做点什么。拿到第三张唱片,做点什么。取得第四个记录,做点什么
然后继续,直到所有记录都处理完毕,然后从1开始。只需不断重复整个过程,直到完成任务中的任务得到满足。
这太复杂了吗?
如果我需要澄清,请告诉我。。。
我很感激你的帮助!
谢谢!
就是这样。外循环增加了内循环的范围。
$sql = "SELECT * FROM `memberlist` WHERE Active = 1";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) {
$arr = mysql_fetch_array($res, MYSQL_BOTH);
for($i = 0; $i < count($arr); $i++) {
for($j = 0; $j <= $i; $j++) {
var_dump($arr[$j]); // 'do somethin' here
}
}
}
正如您所要求的那样-使用此代码从数据库中检索所有行。注意,您可以在检索时维护每一行的数据(我在代码中放了一个注释,这样您就知道在哪里进行操作),您不必等到检索完所有数据之后再进行操作。
另外,请注意,我将mysql_*(已取消缓存)更改为mysqli_*。
$sql = "SELECT * FROM `memberlist` WHERE Active = 1";
$dbLink = mysqli_connect( ); // host, username etc go here - if you haven't connected yet
$res = mysqli_query($dbLink, $sql);
$rowResults = array();
if (mysqli_num_rows($res) > 0) {
while ($temp = mysqli_fetch_array($res, MYSQL_BOTH)) {
$dataToProcess = $temp; //store just not to mess with retrieved row data
//processData, for example - trim title:
$dataToProcess['title'] = trim($dataToProcess['title']);
$rowResults[] = $dataToProcess ; // add it to results array
}
}
var_dump($rowResults); //you now have all the processed results here