0

Mはmysqlに取り組んでおり、テーブルのデータを時系列の逆順に印刷する必要があります。また、上部に印刷された名前には、画面とデータベースの両方で id 1 が必要です。つまり、エントリ数が増えるたびに更新されます。次のコードを使用しましたが、役に立ちません。

$query = "SELECT * FROM table ORDER BY date DESC";
$count=1;

while ($row=mysql_fetch_array($result)) {
    $temp = $row['added_name'];
    $query = "UPDATE table SET id = '$count'";
    mysql_query($query,$conn);
    echo "<tr>
            <td>".$row['id']."</td>
            <td>".$row['added_name']."</td>
            <td>".$row['date']."</td>
          </tr>";
    $count++;
}
4

2 に答える 2

0

これを行う方法を説明しますが、あなたは本当にこれをやりたくないことを約束します. Husman が言ったように、1 を表示するだけで、実際のデータベース レコード ID 番号にリンクする必要があります。

とにかく、良いアドバイスを無視することにした場合は、次のようにします。

新しいレコードを挿入する前に、次のクエリを実行します。

UPDATE table SET id = id+1 ORDER BY id DESC

次に、IDが1の新しいレコードを挿入します

于 2013-03-11T12:33:56.470 に答える
0

何が起こっていて何が間違っているのかを明確に述べていないので、私は推測することしかできません. 私が見ているのは、データベース アイテムの ID を間違って更新していることです。

知らせ:

$query = "UPDATE table SET id = '$count'";

idテーブルを更新して ALLをに設定するようにデータベースに指示しています$count。これにより、これを実行するたびに、すべての ID が同じ値に変更されます。ステートメントを追加してwhere、現在のアイテムのみを更新する場合は、次のようになります。

$query = "UPDATE table SET id = '$count' WHERE added_name = '$temp'";

また

$query = "UPDATE table SET id = '$count' WHERE date = '{$row['date']}'";

コードで指定された変数を使用しました。そのアイテムに固有の他の値を使用したり、より大きなwhereステートメントを作成したりできます。

于 2013-03-11T12:37:11.793 に答える