0

私は現在PHPを使用して、ユーザーが1ページにある14のテーブルにデータを挿入するためのシステムをローカルに作成しています.1日の終わりに、そのテーブルのすべてのデータは、自動的にダッシュボードという名前のデータベースの新しいテーブルに移動する必要があります(毎日のデータを保存します) )しかし、最近、手動でクリックしてボタンを使用してアクションを実行し、同時に上記の14個のテーブル状態のすべてのデータが自動的に削除されます。今日のデータは別のテーブルに移動されており、現在のテーブルのデータは空だったため、翌日に新しいデータを挿入するのは簡単です。この問題についてすべてのウェブサイトを検索しましたが、解決策がありません。皆さんがこの問題から私を助けてくれることを願っています。

INSERT INTOを使用しましたが、機能しません。FROMタグはどこで使用すればよいですか? sr1、sr2、sr3 など、8 つのテーブルを転送する必要があるためです。

以下のように私のコード:

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO sr1_full (date, total_pending, appt_today, percent_appt_today, percent_complete, partial_complete, full_complete, return_technical, return_customer, return_cancel, cancel, reappt, focus, total_tepi, total_bawah) SELECT date, total_pending, appt_today, percent_appt_today, percent_complete, partial_complete, full_complete, return_technical, return_customer, return_cancel, cancel, reappt, focus, total_tepi, total_bawah FROM sr1 TRUNCATE TABLE sr1",
                           GetSQLValueString($_POST['date'], "date"),
                           GetSQLValueString($_POST['total_pending'], "int"),
                           GetSQLValueString($_POST['appt_today'], "int"),
                           GetSQLValueString($_POST['percent_appt_today'], "int"),
                           GetSQLValueString($_POST['percent_complete'], "int"),
                           GetSQLValueString($_POST['partial_complete'], "int"),
                           GetSQLValueString($_POST['full_complete'], "int"),
                           GetSQLValueString($_POST['return_technical'], "int"),
                           GetSQLValueString($_POST['return_customer'], "int"),
                           GetSQLValueString($_POST['return_cancel'], "int"),
                           GetSQLValueString($_POST['cancel'], "int"),
                           GetSQLValueString($_POST['reappt'], "int"),
                           GetSQLValueString($_POST['focus'], "int"),
                           GetSQLValueString($_POST['total_tepi'], "int"),
                           GetSQLValueString($_POST['total_bawah'], "int"));

      mysql_select_db($database_pods, $pods);
      $Result1 = mysql_query($insertSQL, $pods) or die(mysql_error());

      $insertGoTo = "main.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }

    mysql_select_db($database_pods, $pods);
    $query_sr1 = "SELECT * FROM sr1";
    $sr1 = mysql_query($query_sr1, $pods) or die(mysql_error());
    $row_sr1 = mysql_fetch_assoc($sr1);
    $totalRows_sr1 = mysql_num_rows($sr1);

    mysql_select_db($database_pods, $pods);
    $query_sr2 = "SELECT * FROM sr2";
    $sr2 = mysql_query($query_sr2, $pods) or die(mysql_error());
    $row_sr2 = mysql_fetch_assoc($sr2);
    $totalRows_sr2 = mysql_num_rows($sr2);

    mysql_select_db($database_pods, $pods);
    $query_sr3 = "SELECT * FROM sr3";
    $sr3 = mysql_query($query_sr3, $pods) or die(mysql_error());
    $row_sr3 = mysql_fetch_assoc($sr3);
    $totalRows_sr3 = mysql_num_rows($sr3);

    mysql_select_db($database_pods, $pods);
    $query_sr4 = "SELECT * FROM sr4";
    $sr4 = mysql_query($query_sr4, $pods) or die(mysql_error());
    $row_sr4 = mysql_fetch_assoc($sr4);
    $totalRows_sr4 = mysql_num_rows($sr4);

    mysql_select_db($database_pods, $pods);
    $query_sr5 = "SELECT * FROM sr5";
    $sr5 = mysql_query($query_sr5, $pods) or die(mysql_error());
    $row_sr5 = mysql_fetch_assoc($sr5);
    $totalRows_sr5 = mysql_num_rows($sr5);

    mysql_select_db($database_pods, $pods);
    $query_stx = "SELECT * FROM stx";
    $stx = mysql_query($query_stx, $pods) or die(mysql_error());
    $row_stx = mysql_fetch_assoc($stx);
    $totalRows_stx = mysql_num_rows($stx);

    mysql_select_db($database_pods, $pods);
    $query_kl = "SELECT * FROM kl";
    $kl = mysql_query($query_kl, $pods) or die(mysql_error());
    $row_kl = mysql_fetch_assoc($kl);
    $totalRows_kl = mysql_num_rows($kl);

    mysql_select_db($database_pods, $pods);
    $query_msc = "SELECT * FROM msc";
    $msc = mysql_query($query_msc, $pods) or die(mysql_error());
    $row_msc = mysql_fetch_assoc($msc);
    $totalRows_msc = mysql_num_rows($msc);

    mysql_select_db($database_pods, $pods);
    $query_total = "SELECT * FROM total_bawah";
    $total = mysql_query($query_total, $pods) or die(mysql_error());
    $row_total = mysql_fetch_assoc($total);
    $totalRows_total = mysql_num_rows($total);
4

3 に答える 3

1

これを行う方法に関する情報を見つけるのに苦労している理由は、これが正しい方法ではないからです。

「今日」のデータと前日のデータを格納するために、テーブルの構造を複製しないでください。すべきこと、すべてのアイテムを 1 つのダッシュボード テーブルに格納し、日付列に基づいてフィルター処理して、どのアイテムが今日のアイテムと見なされるかを判断することです。現在のテーブルからアーカイブ テーブルに行を移動しようとしているアプローチは、完全に間違っています。それはデータベースの仕組みではありません。

select into tableつまり、 を使用してすべてのデータを から に移動しtoday_dashboardall_dashboardそれを消去することでこれを達成できますdelete from today_dashboardこれをしないでください。アーキテクチャを再考して、両方を 1 つのテーブルに格納してください。

于 2012-08-31T12:30:26.210 に答える
1
$current_date = date("m.d.y"); 
$query = "INSERT INTO table_name (date,column1, column2, column3,...)
          VALUES ($current_date,value1, value2, value3,...)";
$result=mysql_query($query);
  • このようにして、現在の日付ですべてのデータをテーブルに挿入する必要があります。
  • レコードをデータベースに保存した後、現在の日付がすべてのレコードと一致したことを確認する必要があります。レコードが見つかった場合は、削除クエリを使用してこのレコードを削除する必要があります。このようにして、そのテーブルから既存のすべてのレコードを削除できます

    これがあなたに役立つことを願っています...

于 2012-08-31T12:34:58.580 に答える
1

この SQL を使用してデータをコピーします。

insert into `CopyTable` (`colum1`,`colum2`) select `colum1`,`colum2` from `Sourcetable`

による空のテーブル

TRUNCATE TABLE  `Sourcetable`

例 :

$insertSQL = "INSERT INTO sr1_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`, `percent_complete`, `partial_complete`, `full_complete`, `return_technical`, `return_customer`, `return_cancel`, `cancel`, `reappt`, `focus`, `total_tepi`, `total_bawah`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today`, `percent_complete`, `partial_complete`, `full_complete`, `return_technical`, `return_customer`, `return_cancel`, `cancel`, `reappt`, `focus`, `total_tepi`, `total_bawah` FROM `sr1`";

mysql_query($insertSQL); // data copied.

$removeSQL = "TRUNCATE TABLE sr1";

mysql_query($removeSQL); // deleted all data from sr1

//data moved
于 2012-08-31T12:36:33.263 に答える