0

私は PHP と MySQL を使用しており (html と CSS は大したことではありません)、アップロードした画像 (パスは MySQL にあります) を収集してテーブルに配置したいと考えています。5 列 6 行 (合計 30 枚の写真) のテーブルを想像してください。最新の画像を最初の列の最初の行に配置したいので、左の一番上に置き、最も古い写真を最後の列の最後の行に配置したいので、右の一番下に配置します。 -。

index.php

<?php
    //Put all required/included files in here
    require_once('config.php');

    //Connection to database
    $link = mysql_connect(DB_HOST,DB_USER,DB_PASS);
    if(!$link) {
        die('Connection failed: ' . mysql_error());
    }

    //Select which database to use
    $db = mysql_select_database(DB_NAME);

    if(!$db) {
        die("Database selection failed: " . mysql_error());
    }
?>

config.php

<?php
    define('DB_HOST','host');
    define('DB_USER','user');
    define('DB_PASS','pass');
    define('DB_NAME','name');
?>

次に、SQL レイアウト:

レイアウト.sql

CREATE TABLE 'fotos'(
    id int not null,
    locatie_thumb text not null,
    locatie_middel text not null,
    locatie_groot text not null,
    primary key(id)
);

CREATE TABLE 'tekst'(
    id int not null auto_increment,
    titel text not null,
    bijschrift text not null,
    album text not null,
    datum DATE not null,
    primary key(id)
);

テーブルの背後にある考え方は、アップロード フォームから写真をアップロードし、titel, bijschrift, album, datumそこに値を入力すると、MySQL が ID を作成するというものです。tekst次に、その ID を使用して、とをテーブルにリンクしfotosます。

MySQL から 30 個の最新のエントリを収集し、それらを 5 列 6 行のテーブルに配置するには、最新の画像を左の上に、最も古い画像を右の下に配置するにはどうすればよいですか?

4

3 に答える 3

1

「tekst」が何であるかはわかりませんが、次のことができます。

  • 画像ごとに、mysqlによってNOW()で設定された日付フィールドを追加します
  • mysqlで、前の日付フィールドでソートされ、結果が30に制限された画像に対してクエリを実行します
  • PHPでは、クエリの結果を使用してHTMLテーブル(またはよりクリーンなdiv構造)を作成し、30枚の画像を保持します。
于 2012-06-29T11:31:53.087 に答える
1

試してみてください:

SELECT *
FROM fotos, tekst
WHERE fotos.id=tekst.id
ORDER BY tekst.datum DESC
LIMIT 30

これが1対1の関係である場合は、すべてを同じテーブルに入れてみませんか

于 2012-06-29T11:29:46.480 に答える
0

クエリを注文するだけ...

MySql を呼び出すときは、次のような文を作成します。

SELECT * FROM fotos ORDER BY date

または、すでに注文されている場合はIDで:)

于 2012-06-29T12:00:31.363 に答える