php - MYSQL/PHP/JQUERY - Blob 进入图片库,如何解决问题?

标签 php jquery mysql blob image-gallery

我已经制作了一个工作脚本,可以将以前上传的图像(及其标题、大小、类别等)加载到图库中。 它看起来像这样:/image/RWASu.jpg

问题是,我让它加载了随机ID的图像,左右滑动后会有更多这样的图像,我想让它们按ID显示,但彼此都是NEXT ID,而不是是相同的还是随机的。我怎样才能让它工作?

这是到目前为止的脚本:

<?php
$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table} ORDER BY RAND() LIMIT 1");
if (mysql_num_rows($result) == 0)
    echo '<ul><li>Nie wgrano żadnych plików.</li>';
else
{
    echo '<ul>';
    while(list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = mysql_fetch_row($result))
    {
        echo "<div class='image-frame left-image'>";
        echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>";
        echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>";
    }

    echo '</ul>';
}
?>
        <?php
$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table} ORDER BY RAND() LIMIT 1");
if (mysql_num_rows($result) == 0)
    echo '<ul><li>Nie wgrano żadnych plików.</li>';
else
{
    echo '<ul>';
    while(list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = mysql_fetch_row($result))
    {
        echo "<div class='image-frame right-image'>";
        echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>";
        echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>";
    }

    echo '</ul>';
}
?>

关于如何将其制作成一个脚本,该脚本将加载具有升序 ID 的图像的多个 block ,有什么想法吗? 将不胜感激所有建议。

最佳答案

解决方案如下:

  • 从表中检索所有行,而不使用任何 ORDER BYLIMIT 子句,如下所示:

    SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table}
    
  • 计算检索到的总行数并创建一个空的 $resultArray 数组,如下所示:

    $rowCount = mysql_num_rows($result);
    $resultArray = array();
    
  • 循环结果集并将行附加到 $resultArray 数组,如下所示:

    while($row = mysql_fetch_array($result)){
        $resultArray[] = $row;
    }
    
  • 使用 rand() 函数从 $resultArray 数组中随机选取一行,并从此 $resultArray 实现循环数组逻辑> 数组来实现您想要的结果,如下所示:

    $i = $randValue = rand(0, $rowCount - 1);
    do{
        list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = $resultArray[$i];
        echo "<div class='image-frame'>";
        echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>";
        echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>";
        $i = ++$i % $rowCount;
    }while($i != $randValue);
    

这是完整的代码,

$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table}");

$rowCount = mysql_num_rows($result);
$resultArray = array();
while($row = mysql_fetch_array($result)){
    $resultArray[] = $row;
}

$i = $randValue = rand(0, $rowCount - 1);
do{
    list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = $resultArray[$i];
    echo "<div class='image-frame'>";
    echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>";
    echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>";
    $i = ++$i % $rowCount;
}while($i != $randValue);
<小时/>

旁注:不要使用 mysql_* 函数,它们从 PHP 5.5 开始已被弃用,并在 PHP 7.0 中被完全删除。使用mysqlipdo反而。 And this is why you shouldn't use mysql_* functions

关于php - MYSQL/PHP/JQUERY - Blob 进入图片库,如何解决问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41211425/

相关文章:

jquery - 元素被隐藏,无法使用 css 属性

php - 如何在php中运行外部程序

php - 如何更新一个值,同时又保持另一个值如何MYSQL/PHP

php - 不支持 Bootstrap 和 Paypal 问题

Javascript - 如何在表单中提交 Canvas ?

javascript - 当我使用冒泡排序时,为什么我得到数组中最高值的数字作为我的第一个元素?

javascript - 在 Karma/Jasmine 测试中模拟 Enter 键按下输入

php - jQuery 页面刷新不读取或执行 php

php mysql 插入准确次数

mysql - 在 Linux 服务器上创建守护进程的最佳实践