大家都希望一切顺利。在我遇到的问题上,我需要你宝贵的专业知识。我将尝试在下面解释。
我有一个表单并且在该表单内部我有一个“选择状态”选项:
<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
我可能正在做一些非常愚蠢的事情,但我看不出是什么。任何帮助都会很棒
阿里
答案 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个随机匹配行的部分,而不是所有行。