MYSQL/PHP/JQUERY - Blob 进入图片库,如何解决问题?
MYSQL/PHP/JQUERY - Blobs into image gallery, how to solve an issue?
我已经制作了一个工作脚本,可以将以前上传的图像(包括它们的标题、大小、类别等)加载到图库中。
它看起来像这样:https://i.stack.imgur.com/RWASu.jpg
问题是,我让它加载一张随机ID的图片,滑动后会有更多这样的图片right/left,我想按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 图像的多个块?
将不胜感激所有建议。
解决方案是这样的:
不使用任何 ORDER BY
或 LIMIT
子句从 table 中检索所有行,如下所示:
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 中被完全删除.使用 mysqli
or pdo
instead. And this is why you shouldn't use mysql_*
functions。
我已经制作了一个工作脚本,可以将以前上传的图像(包括它们的标题、大小、类别等)加载到图库中。 它看起来像这样:https://i.stack.imgur.com/RWASu.jpg
问题是,我让它加载一张随机ID的图片,滑动后会有更多这样的图片right/left,我想按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 图像的多个块? 将不胜感激所有建议。
解决方案是这样的:
不使用任何
ORDER BY
或LIMIT
子句从 table 中检索所有行,如下所示: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 中被完全删除.使用 mysqli
or pdo
instead. And this is why you shouldn't use mysql_*
functions。