好的,我认为这很容易,但我不知道(我是PHP和MySQL的新手)。
我有一个选择从数据库中的表中获取数据。我只是采取用户选择的任何选项,并将其放入一个单独的表与php mysql插入语句。
但我遇到了问题。当我点击提交时,除了在第一个空格后没有提交空格的任何选项时,一切都会正确提交。例如,如果选项为COMPUTER REPAIR
,那么将发送的所有内容都是COMPUTER。如果需要,我会发布代码,任何帮助将不胜感激。谢谢!
好的,这是我的选择代码:
<?php
include("./config.php");
$query="SELECT id,name FROM category_names ORDER BY name";
$result = mysql_query ($query);
echo"<div style='overflow:auto;width:100%'><label>Categories (Pick three that describe your business)</label><br/><select name='select1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option>$catinfo[name]</option><br/>
";
}
echo"</select></div>";
?>
这是我的插入代码(只是为了让你知道它的所有内容不仅仅是选择!)
?php
require("./config.php");
$companyname = mysql_real_escape_string(addslashes(trim($_REQUEST['name'])));
$phone = mysql_real_escape_string(addslashes($_REQUEST['phone']));
$zipcode = mysql_real_escape_string(addslashes($_REQUEST['zipcode']));
$city = mysql_real_escape_string(addslashes($_REQUEST['city']));
$description = mysql_real_escape_string(addslashes($_REQUEST['description']));
$website = mysql_real_escape_string(addslashes($_REQUEST['website']));
$address = mysql_real_escape_string(addslashes($_REQUEST['address']));
$other = mysql_real_escape_string(addslashes($_REQUEST['other']));
$payment = mysql_real_escape_string(addslashes($_REQUEST['payment']));
$products = mysql_real_escape_string(addslashes($_REQUEST['products']));
$email = mysql_real_escape_string(addslashes($_REQUEST['email']));
$select1 = mysql_real_escape_string(addslashes($_REQUEST['select1']));
$select2 = mysql_real_escape_string(addslashes($_REQUEST['select2']));
$select3 = mysql_real_escape_string(addslashes($_REQUEST['select3']));
$save=$_POST['save'];
if(!empty($save)){
$sql="INSERT INTO gj (name, phone, city, zipcode, description, dateadded, website, address1, other2, payment_options, Products, email,cat1,cat2,cat3)
VALUES
('$companyname','$phone','$city','$zipcode','$description',curdate(),'$website','$address','$other','$payment','$products','$email','$select1','$select2','$select3')";
if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}
echo "<br/><h2><font color='green' style='font-size:15px'>1 business added</font></h2>";
mysql_close($link);
}
?>
答案 0 :(得分:2)
将value="$catinfo[name]"
放在<option>
代码上,使它们看起来像这样:
echo "<option value=\"".htmlspecialchars($catinfo['name'])."\">".$catinfo['name']."</option>";
由于你已经省略了它们,它默认使用<option>
标签之间的任何内容,因为它们周围没有引号,所以它将空格确定为值的结尾。通过将要插入的实际值放在value
属性中的数据库中,您明确地告诉它使用引号之间的完整短语。
另外,请移除<br/>
,因为您不需要在<select>
元素中放置休息符。
答案 1 :(得分:0)
这是人们遇到的常见错误。为了访问存储在数据库中的数据,请遵循以下格式:
echo "<option>'".$catinfo[name]."'</option><br/>";
如果您希望将值存储在选项中,请使用以下格式:
echo "<option value='".$catinfo[name]."'>'".$catinfo[name]."'</option><br/>";
它将按原样显示数据库中的数据。 我希望它有所帮助!