1

MySQL で完全には機能しないかなり複雑なスクリプトがありますが、部分的には機能します。説明してみましょう...

私のページの結果は、特定のフォルダーからの純粋な画像名です。つまり、この関数を使用して結果を取得します。

function get_all_images($dir)
{
    $dir = opendir($dir);
    $dirArray = array();

    while($entryName = readdir($dir)) 
    {
        if(($entryName != ".") && ($entryName != "..") && ($entryName != ".svn") && ($entryName != ".htaccess"))
        {   
            $dirArray[] = $entryName;
        }
    }

    closedir($dir);
    (sizeof($dirArray)) ? arsort($dirArray) : '';

    return (is_array($dirArray)) ? $dirArray : '';
}

これは、基本的に自分のページで結果を取得する方法です。

    <?php
 include('includes/header.php');
    $images = get_all_images('i');

    $url    = str_replace('www.', '', generate_site_url());
    $flag   = false;
    $count  = 0;

    if (empty($images))
    {
        echo '<h2>There are no uploaded images</h2><br>';
    }

    foreach ($images as $image) 
    {
        $filename = $image_name = $image; 
        $image_link = $url . IMAGES_PATH . $filename;
        $user_id = fetch_user_id($image_link);

        $delete_link        = (isset($_POST['delete_link'])) ? $_POST['delete_link'] : '';
        $delete_image       = (isset($_POST['delete_image'])) ? $_POST['delete_image'] : '';

        if ($delete_admin_submit) 
        {
            unlink('./t/' . $delete_image);
            unlink('./t/big' . $delete_image);
            adminDelete('./i/' . $delete_image, $delete_link); 
            header('Location: ' . $imgit_action); 
            exit();
        }

        echo '<div class="' . ($count++ % 2 ? "odd-color" : "even-color") . '">';
            echo '<table>';
            echo '<tr><td class="fullwidth"><a class="preview_img" href="' . $image_link . '"><img src="' . $image_link . '" title="Click to enlarge" width="300" class="thumb" /></a></td></tr>';

            echo '<tr><td><span class="default">Direct link:</span>&nbsp;';
            echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $image_link . '" />';
            echo '<form method="post" action="" onsubmit="return confirmSingleDeletion();" style="display: inline;"> ';
            echo '<input type="submit" class="icon_delete" name="delete_link" value="' . $image_link . '" title="Delete this image" />';
            echo '<input type="hidden" name="delete_image" value="' . $image_name . '" />';
            echo '</form>'; 
            echo '</td></tr>';

            echo ($flag) ? '<hr /><br>' : '';

            echo '</table>';
            if (!empty($user_id))
            {
                echo '<br><strong class="normal">Uploader ID:</strong>&nbsp;';
                echo '<em class="normal">' . $user_id . '</em><br>';
            }
            echo '<br>';

        $flag = true;
    }
    ?>
    <a href="<?php echo $home_action; ?>"><span class="button-sub">&laquo; Back to Index</span></a> 
    <?php echo '</div>'; ?>
<?php include('includes/footer_alt.php'); ?>

今、結果をページに分割する方法を簡単に知る手がかりがありません。ここで 12000 件以上の結果を処理していますが、ページの読み込みに時間がかかります。この大きな結果を複数のページに分割するには、助けが必要です。

私を助けてくれる人はいますか?少なくとも、開始方法の手がかりを教えてください。本当に感謝しています。

読んでくれてありがとう。

4

2 に答える 2

0

CupsUmair Khanに答えてくれてありがとう、しかし私はここで実用的な解決策を見つけました:

http://tiffanybbrown.com/2008/12/14/simple-pagination-for-arrays-with-php-5/

于 2012-08-11T21:18:22.560 に答える
0

ファイル名を収集するときに配列を検討しますが、並べ替えた後は次のようになります。

$imgs = array(
0 => 'image1.jpg',
1 => 'image2.jpg',
2 => 'image3.jpg',
3 => 'image4.jpg',
4 => 'image5.jpg',
5 => 'image6.jpg',
6 => 'image7.jpg',
7 => 'image8.jpg',
);
// create some vars which you can use in your pagination
$perpage = 3 ;
$page=2;
$range_end = ($perpage*$page)-1;
$range_start = ($perpage*($page-1));
$display=range($range_start,$range_end);

// loop through results
foreach($display as $show){
echo $imgs[$show];
}

それで始められますか?

于 2012-08-11T15:19:55.343 に答える