-2

写真のセットと、リストからランダムに抽出された引用のリストをペアにして、そのペアに一意の URL を割り当てたいと思います。ニーチェ・ファミリー・サーカスのように。

彼は php を使用して 2 つのリストをランダムに取得し、画像と引用符の一意の識別子を使用して th url を作成していると確信しています。

このコンセプトの複製を始めるのを手伝ってくれる人はいますか? ありがとう。

4

1 に答える 1

0

データベースはいつでも使用できます。ペアを識別する一意の URL 用の 1 つの列、画像の URL 用の 1 つの列、および引用テキスト用の 1 つの列を含むテーブルをデータベースに作成すると、次のようなことができます。

$quoteArray = array(); //in reality this would be filled with your quotes
$imageArray = array(); //this would be filled with your image urls
$pairs = array();
while(count($quoteArray) > 0 && count($imageArray) > 0) {
    $quoteIndex = rand(0, count($quoteArray) - 1); //get some random indexes
    $imageIndex = rand(0, count($imageArray) - 1);
    $pairs[] = array('quote' => $quoteArray[$quoteIndex], 'image' => $imageArray[$imageIndex]);
    unset($quoteArray[$quoteIndex]); //keep us from using the same quote twice
    unset($imageArray[$imageIndex]); //same goes for the images
}

//this assumes your table has an autoincremeting id field
$stmt = $connection->prepare("INSERT INTO awesomeTable (quote, image) VALUES( :quote , :image )");
//$connection is a PDO which you would have created earlier...look in the php manual for information on setting this up

foreach($pairs as $pair) {
    $uniqueId = sha1($quote . $image);
    $stmt->execute(array(':quote' => $pair['quote'], ':image' => $pair['image']));
}

次に、ランダムな URL を取得するには:

$result = $connection->query("SELECT * FROM awesomeTable ORDER BY RAND() LIMIT 1");
$record = $result->fetch();
//record will contain either an object (accessed by $row->url, $row->quote, etc) or an
//associative array (accessed by $row['url'], $row['quote'], etc) depending on how you
//set up the PDO

これらを提供するページ(images.php)は、渡されたID(自動インクリメントされているため一意)を取得し、データベースにクエリを実行して、それに関連付けられた行(したがって引用と画像)を取得します。 ID。

于 2012-05-26T16:06:39.857 に答える