SQL データベースの 1 つのセルで複数の値を使用する正しい方法は何ですか。訪問者追跡用のコードを作成しようとしています。これが追跡しようとしているものです
IP1: index.php
contact.php
sssa.php
IP2: aaduau.php
ssssau.php
など
1 つの IP アドレスに異なるページ名を挿入したい。これを行うための正しいアルゴリズムは何ですか?
実際には、テーブルで , の 2 つの列を使用することをお勧めしip_address
ますpage_name
。
挿入するときは、次のようにします。
$ip = $_SERVER['REMOTE_ADDR'];
$page = mysql_real_escape_string($_SERVER['REQUEST_URI']);
mysql_query('INSERT INTO logs (ip_address, page_name) VALUES(INET_ATON("' . $ip . '"), "' . $page . '");');
すべてのレコードを IP で取得するには、次を使用します。
$results = mysql_query('SELECT page_name FROM logs WHERE ip_address=INET_ATON("' . $ip . '");');
INET_ATON()
は、IP アドレスstring
をネットワーク アドレスに変換するために使用されますlong
。元に戻すには、次INET_NTOA()
のように使用できます。SELECT NTOA(ip_address) AS ip_address FROM logs;
ページ名を単一のセルに保存するには、引用符なしでカンマ「,」を追加し、データベースからデータを取得する際に、PHP の expand() 関数を使用して文字列を分解します。