<?php
require"function.php";
error_reporting(0);
$n = 2; //随机显示的记录数
$results = $result = array(); //记录结果的数组 $rowNum = mysql_result(mysql_query( "SELECT COUNT(*) AS cnt FROM tiku1 "), 0, 0); if($rowNum < 50) { //数据量小的话,这样反而可以提高效率,当然50可以随便改 $query = mysql_query( "SELECT * FROM tiku1 ORDER BY rand() LIMIT 0,$n ");
while($result = mysql_fetch_array($query)) {
$results[$result[ 'id ']] = $result;
} } else { //随机的范围
$maxNum = mysql_result(mysql_query( "SELECT MAX(vid) AS cnt FROM tiku1 "), 0, 0);
$minNum = 1;
$midNUm = intval($maxNum / 2); //随机的id
$randId = null; //已存在的id集合 格式为 xx,xx,xx,xx
$existId = ' ';
$comma = ' '; $i = 0;
while($i < $n && $minNum <= $maxNum) { $query = ' '; //再查询中剔除已存在的id
$existIdExp = $existId ? "AND id NOT IN ($existId) " : ' '; do{
mt_srand((float)microtime() * 1000000);
$randId = mt_rand($minNum, $maxNum);
}while(array_key_exists($randId, $results)); //如果产生id已经存在,继续随机 if($randId <= $midNUm) { $query = mysql_query( "SELECT * FROM tiku1 WHERE id <= $randId $existIdExp LIMIT 0,1 ");
if($result = mysql_fetch_array($query)) { //找到记录记录内容,重新随机 $results[$result[ 'id ']] = $result;
$existId .= $comma.$result[ 'id '];
$comma = ', ';
$i++; } else { //没有找到记录,缩小随机的范围
$minNum++;
} } else { $query = mysql_query( "SELECT * FROM tiku1 WHERE id > = $randId $existIdExp LIMIT 0,1 ");
if($result = mysql_fetch_array($query)) { //找到记录记录内容,重新随机 $results[$result[ 'id ']] = $result;
$existId .= $comma.$result[ 'id '];
$comma = ', ';
$i++; } else { //没有找到记录,缩小随机的范围
$maxNum--;
} } }
} var_dump($results);
?>我想把储存在$results中的的题目的id给提取出来,怎么办
我用for循环+echo,提取不出来
请大家帮帮忙
require"function.php";
error_reporting(0);
$n = 2; //随机显示的记录数
$results = $result = array(); //记录结果的数组 $rowNum = mysql_result(mysql_query( "SELECT COUNT(*) AS cnt FROM tiku1 "), 0, 0); if($rowNum < 50) { //数据量小的话,这样反而可以提高效率,当然50可以随便改 $query = mysql_query( "SELECT * FROM tiku1 ORDER BY rand() LIMIT 0,$n ");
while($result = mysql_fetch_array($query)) {
$results[$result[ 'id ']] = $result;
} } else { //随机的范围
$maxNum = mysql_result(mysql_query( "SELECT MAX(vid) AS cnt FROM tiku1 "), 0, 0);
$minNum = 1;
$midNUm = intval($maxNum / 2); //随机的id
$randId = null; //已存在的id集合 格式为 xx,xx,xx,xx
$existId = ' ';
$comma = ' '; $i = 0;
while($i < $n && $minNum <= $maxNum) { $query = ' '; //再查询中剔除已存在的id
$existIdExp = $existId ? "AND id NOT IN ($existId) " : ' '; do{
mt_srand((float)microtime() * 1000000);
$randId = mt_rand($minNum, $maxNum);
}while(array_key_exists($randId, $results)); //如果产生id已经存在,继续随机 if($randId <= $midNUm) { $query = mysql_query( "SELECT * FROM tiku1 WHERE id <= $randId $existIdExp LIMIT 0,1 ");
if($result = mysql_fetch_array($query)) { //找到记录记录内容,重新随机 $results[$result[ 'id ']] = $result;
$existId .= $comma.$result[ 'id '];
$comma = ', ';
$i++; } else { //没有找到记录,缩小随机的范围
$minNum++;
} } else { $query = mysql_query( "SELECT * FROM tiku1 WHERE id > = $randId $existIdExp LIMIT 0,1 ");
if($result = mysql_fetch_array($query)) { //找到记录记录内容,重新随机 $results[$result[ 'id ']] = $result;
$existId .= $comma.$result[ 'id '];
$comma = ', ';
$i++; } else { //没有找到记录,缩小随机的范围
$maxNum--;
} } }
} var_dump($results);
?>我想把储存在$results中的的题目的id给提取出来,怎么办
我用for循环+echo,提取不出来
请大家帮帮忙
不应该用if
他俩不会=
if(is_array($result)){
foreach($result as $key=>$value){
echo $key;
}
}
输出的这个,用了楼上的代码还是没办法输出来