簡體   English   中英

PHP連接到MySQL並提交數據

[英]php connect to mysql and submit data

大家好,希望一切順利。 我需要您寶貴的專業知識來解決我遇到的問題。 我將在下面嘗試解釋。

我有一個表單,在該表單的內部,我有一個“選擇狀態”選項:

<select name="State">
<option value="0" selected="selected">Select a State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
   etc.....
</select>

當客戶選擇一個狀態然后單擊表單提交按鈕時,我希望他們使用我的mysql數據庫並從與他們選擇的內容相關的表中提取一個IP地址。

我在phpmyadmin內部創建了一個帶有兩個字段的表。 第一個是:state,varchar,30,primary第二個是:ip,text

然后,我導入了一個csv文件,該文件以以下格式填充

狀態ip

AL 67.100.244.74

AK 68.20.131.135

AK 64.134.225.33

等等.......

因此,一個例子是:客戶填寫表格並選擇阿拉巴馬州。 然后,他們提交表單,並且表單連接到數據庫,該數據庫會看到阿拉巴馬州(AL)的狀態。 然后,它從與ALbama部分相關的ip部分中收集ip,並將其與其余表單信息(名稱,電子郵件等)一起提交給我的電子郵件地址。 它還需要從阿拉巴馬州隨機選擇一個IP,因為在數據庫中我多次有阿拉巴馬州(AL),因此它只選擇阿拉巴馬州ip的任何一個

我希望我有道理

如果您知道如何做或在哪里可以找到該信息,將不勝感激

感謝你的幫助

阿里


多謝您的協助,對於造成的延遲,我們深表歉意。 每當我將該代碼添加到頁面時,都會出現此錯誤

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/content/b/o/l/boldbaba406/html/1stop/1vince/test1.php on line 3

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/content/b/o/l/boldbaba406/html/1stop/1vince/test1.php on line 3

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/content/b/o/l/boldbaba406/html/1stop/1vince/test1.php on line 4

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/content/b/o/l/boldbaba406/html/1stop/1vince/test1.php on line 5

我可能正在做一些非常愚蠢的事情,但是我看不到。 任何幫助都會很棒

阿里

假設您的表格如下所示:

+-------+---------------+
| state |      ip       |
+-------+---------------+
| AL    | 67.100.244.74 |
| AK    | 68.20.131.135 |
| AZ    | 64.134.225.33 |
+-------+---------------+

您的腳本可能是這樣的:

<select name="State">
<option value="0" selected="selected">Select a State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
   etc.....
</select>

<?php
$state = $_POST['State']; // User selected Alaska (AK) so $_POST['State'] = 'AK'
$query = "SELECT state, ip FROM ipaddresses WHERE state='" . mysql_real_escape_string($state) . "'";
$link_resource = mysql_connect($host, $username, $password);
$db = mysql_select_db($database);
$result = mysql_query($query, $link_resource);
$row = mysql_fetch_assoc($result);

// ip-address belonging to Alaska (AK) turns out to be 68.20.131.135 as it's stored in the same row as AK
?>

現在,屬於AK的IP地址存儲在$ row ['ip']中。 可以使用$ _POST數組訪問其他表單字段,例如,如果您的表單具有名為“ customer_name”的輸入字段,則可以使用$ _POST ['customer_name']。

更新:添加了數據庫連接。 這只是一個非常基本的示例,您應該自己研究數據庫連接和查詢。 我建議您立即開始學習MySQLi(MySQL改進的擴展),而不要學習“舊的和普通的” MySQL。

您可以使MySQL返回如下所示的隨機行:

// Get the state that the user selected
$selectedState = mysql_real_escape_string($_REQUEST['State']);

// Build a query
$query = "SELECT ip
          FROM table_name
          WHERE state = '$selectedState'
          ORDER BY rand()
          LIMIT 1";

// Execute it
$result = mysql_query($query);

// Fetch the result as an array
$row = mysql_fetch_assoc($result);

// The IP address you want is now stored in $row['ip']

重要的是ORDER BY rand() LIMIT 1這是獲得1個隨機匹配行而不是所有行的部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM