php连接到mysql并提交数据

时间:2011-10-24 13:19:19

标签: php mysql database

大家都希望一切顺利。在我遇到的问题上,我需要你宝贵的专业知识。我将尝试在下面解释。

我有一个表单并且在该表单内部我有一个“选择状态”选项:

<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)。然后它从ip部分收集关联到ALbama部分的ip,并将其提交到我的电子邮件地址以及其余的表单信息(名称,电子邮件等等)。它还需要从阿拉巴马州随机选择一个ip,因为在数据库中我有多次Alabama(AL),所以它只选择Alabama 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

我可能正在做一些非常愚蠢的事情,但我看不出是什么。任何帮助都会很棒

阿里

2 个答案:

答案 0 :(得分:1)

假设你的表看起来像这样:

+-------+---------------+
| 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数组来访问其他表单字段,例如$ _POST ['customer_name']如果您的表单的输入字段名称为'customer_name'。

更新: 添加数据库连接。这只是一个非常基本的例子,你应该自己做一些关于数据库连接和查询的研究。我建议你立即开始学习MySQLi(MySQL改进扩展)而不是'old&amp;普通的'MySQL。

答案 1 :(得分:0)

你可以让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个随机匹配行的部分,而不是所有行。