2

我的任务是使用 jquery slide 而不是动画脚本从 mysql 数据库中滑动图像。幻灯片应该至少显示最近上传的十张图片。我首先写了一个随机查询

mysql_query("select * from tblname order by rand() limit 1);

但正如预期的那样,它会随机选择图像,而不管它是什么时候发布的,当然它不是最近的十张。经过一番思考,我现在必须首先运行查询以获取最近的十个

mysql_query("select * from tblname order by ID limit 10);
while($row=mysql_fetch_array($sql){
    $slideid=$slideid.",".$row['recordid'];
}

这当然会导致此顺序的变量

$var="23,22,24,34,27,78,56,87,98,55";

我尝试像处理数组一样处理它,但它没有给出任何积极的结果,因此我遇到了如何选择这些数字并将其用于幻灯片的问题

4

6 回答 6

5
$myArr=explode(',',$var);
sort($myArr);

for($i=0;$i<count($myArr);$i++)
{
    echo $myArr[$i];
}

编辑:为了提高效率,请使用:

$myArr=explode(',',$var);
sort($myArr);

foreach ($myArr as $val)
{
    echo $val;
    // Or do whatever else you want with each one.
}

编辑 2:请参阅下面关于效率、for 循环和意外结果的评论。:)

于 2012-07-17T12:21:54.203 回答
1
$var="23,22,24,34,27,78,56,87,98,55";
$arr = explode(',',$var);
foreach ($arr as $val) {
   // work with $val
}

explode将字符串拆分为数组

于 2012-07-17T12:22:04.187 回答
1

根据您的评论,我将提供我的 2p 组合

这就是我所做的 $slideid="23,22,24,34,27,78,56,87,98,55"; $arr = explode(',',$slideid); foreach ($arr as $val) { //让我们从表单中获取变量 post $rs = mysql_query("SELECT * FROM tblname WHERE id='$val'") or die(mysql_error()); while($row=mysql_fetch_array($rs)){ echo "<img src='image/$image'>"; 使用 jquery 幻灯片一张一张地显示图像

现在我认为我们正在浪费时间处理爆炸这个变量,因为 mysql 有漂亮的 IN() 函数(可能在其他数据库中,我不知道)

$slideid = "23,22,24,34,27,78,56,87,98,55";
$rs = mysql_query("SELECT * FROM tblname WHERE id IN({$slideid})") or die(mysql_error());
while ($row = mysql_fetch_assoc($rs))
{
    echo "<img src='image/{$row['image']}' />";
}

我希望这有帮助

于 2012-07-17T13:01:39.000 回答
0

1)将字符串分解成一个数组,用逗号分割。

2)您没有说是否要将数字重新排序为数字顺序,或者按照它们已经存在的顺序处理它们。如果是前者,请使用sort($arr);

3)按顺序循环数组并对每个数字做一些事情

$str = '1,2,3,4,5,6';
$arr = explode(',', $str);
foreach($arr as $num) echo $num.'<br />';

请注意,如果逗号后的空格有任何变化,更好的选择是preg_split而不是explode,因为它更具动态性。

$arr = preg_split('/, ?/', $str);
于 2012-07-17T12:22:42.330 回答
0

您可以使用 php explode函数来实现这一点

$pieces = explode(",", $var);

回声 $pieces[0]; // 块 1

回声 $pieces 1 ; // 块 2

.

.

.

回声 $pieces[n]; // 第 n 块

于 2012-07-17T12:25:37.790 回答
0

我认为你需要在这里得到关于变量顺序的顺序结果

$slideid = "23,22,24,34,27,78,56,87,98,55";
$rs = mysql_query("SELECT * FROM tblname WHERE id IN({$slideid}) ORDER BY FIELD(id, {$slideid}) ") or die(mysql_error());
while ($row = mysql_fetch_assoc($rs))
{
    echo "<img src='image/{$row['image']}' />";
}
于 2012-07-17T13:28:20.770 回答