Php 将列表中的变量放置在sql字符串中
我创建了一个名为myauthors的mySQL数据库,在myauthors中我创建了一个名为table 1的表。然后我创建了4个选择框(请参见代码)。之后,我创建了一些代码和一个带有while循环的sql查询,以填充输出(打印或回显)。它运行良好,并将表的内容打印到屏幕上。但这正是我要做的。当用户单击“选择”框中的某个值时,我希望将其放置在变量中,然后将其放置在sql查询行中。我尝试将其添加到下面的代码中Php 将列表中的变量放置在sql字符串中,php,mysql,Php,Mysql,我创建了一个名为myauthors的mySQL数据库,在myauthors中我创建了一个名为table 1的表。然后我创建了4个选择框(请参见代码)。之后,我创建了一些代码和一个带有while循环的sql查询,以填充输出(打印或回显)。它运行良好,并将表的内容打印到屏幕上。但这正是我要做的。当用户单击“选择”框中的某个值时,我希望将其放置在变量中,然后将其放置在sql查询行中。我尝试将其添加到下面的代码中 $aa = "author" $bb = "publisher"
$aa = "author"
$bb = "publisher"
$cc = "year"
$dd = "genre"
其中,“”中的所有内容都是选择框的名称。
这是一个查询
'"$aa"' AND publisher= '"$bb"' AND year = '"$cc"' AND genre ='"$dd"' " ";
但它不起作用。
我是不是找错人了,有没有别的办法。
非常感谢吉姆
<!DOCTYPE HTML>
<html>
<body>
<select name = "author">
<option value="kendavies">ken davies</option>
<option value="arthursmith">arthur smith</option>
<option value="gillrafferty">gill rafferty</option>
<option value="mollybrown">molly brown</option>
<option value="gilbert riley">gilbert riley</option>
<option value="colinwilson">colin wilson</option>
<option value="jamesgreen">james green</option>
<option value="arnoldlaing">arnold laing</option>
<option value="cathyellis">cathy ellis</option>
<option value="carolreed">carol reed</option>
</select>
<select name = "publisher">
<option value="yonkers">yonkers</option>
<option value="blueparrot">blue parrot</option>
<option value="zoot">zoot</option>
</select>
<select name = "year">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>
<select name = "genre">
<option value="adventure">adventure</option>
<option value="thriller">thriller</option>
<option value="crime">crime</option>
<option value="biography">biography</option>
<option value="romance">romance</option>
</select>
</body>
</html>
<?php
mysql_connect ("localhost","root","") or die(mysql_error());
mysql_select_db ("myauthors") or die(mysql_error());
$strSQL = "SELECT * FROM `table 1`";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs) ) {
print $row ['ID']."<br/>";
print $row ['author']."<br/>";
print $row ['booktitle']."<br/>";
print $row ['publisher']."<br/>";
print $row ['yearpublished']."<br/>";
print $row ['genre']."<br/>";
print $row ['copiessold']."<br/>";
}
mysql_close();
?>
</body>
</html>
肯·戴维斯
亚瑟·史密斯
吉尔·拉弗蒂
莫莉·布朗
吉尔伯特·赖利
科林·威尔逊
詹姆斯格林
阿诺德莱恩
凯西·埃利斯
卡罗尔·里德
扬克斯
蓝色鹦鹉
佐特
2003
2004
2005
2006
2007
2008
冒险
惊悚片
罪行
传记
浪漫
我已经在代码中添加了变量和新的sql行,但是它仍然不起作用,这就是代码现在的样子
<!DOCTYPE HTML>
<html>
<body>
<select name = "author">
<option value="kendavies">ken davies</option>
<option value="arthursmith">arthur smith</option>
<option value="gillrafferty">gill rafferty</option>
<option value="mollybrown">molly brown</option>
<option value="gilbert riley">gilbert riley</option>
<option value="colinwilson">colin wilson</option>
<option value="jamesgreen">james green</option>
<option value="arnoldlaing">arnold laing</option>
<option value="cathyellis">cathy ellis</option>
<option value="carolreed">carol reed</option>
</select>
<select name = "publisher">
<option value="yonkers">yonkers</option>
<option value="blueparrot">blue parrot</option>
<option value="zoot">zoot</option>
</select>
<select name = "year">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>
<select name = "genre">
<option value="adventure">adventure</option>
<option value="thriller">thriller</option>
<option value="crime">crime</option>
<option value="biography">biography</option>
<option value="romance">romance</option>
</select>
$aa = "author"
$bb = "publisher"
$cc = "year"
$dd = "genre"
</body>
</html>
<?php
$aa = "author";
$bb = "publisher";
$cc = "year";
$dd = "genre";
mysql_connect ("localhost","root","") or die(mysql_error());
mysql_select_db ("myauthors") or die(mysql_error());
$strSQL = "SELECT * FROM `table 1`WHERE author = '$aa' AND publisher = '$bb' AND year = '$cc' AND genre ='$dd' ";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs) ) {
print $row ['ID']."<br/>";
print $row ['author']."<br/>";
print $row ['booktitle']."<br/>";
print $row ['publisher']."<br/>";
print $row ['yearpublished']."<br/>";
print $row ['genre']."<br/>";
print $row ['copiessold']."<br/>";
}
mysql_close();
?>
</body>
</html>
肯·戴维斯
亚瑟·史密斯
吉尔·拉弗蒂
莫莉·布朗
吉尔伯特·赖利
科林·威尔逊
詹姆斯格林
阿诺德莱恩
凯西·埃利斯
卡罗尔·里德
扬克斯
蓝色鹦鹉
佐特
2003
2004
2005
2006
2007
2008
冒险
惊悚片
罪行
传记
浪漫
$aa=“作者”
$bb=“发布者”
$cc=“年”
$dd=“流派”
试试这个
"'$aa' AND publisher= '$bb' AND year = '$cc' AND genre = '$dd'";
带点的Concat
'".$aa."' AND publisher= '".$bb."' AND year = '".$cc."' AND genre ='".$dd."' ";
我不明白你的问题,你想做插入查询吗?我怀疑问题是双引号。你试过:
'$aa'和publisher='$bb'和year='$cc'和genre='$dd'
?你好,戈登,谢谢你的回复。我试过了,但没有用。我想知道我是否必须把$variable=选项值这样的东西放在“name”中。类似于你在vb.net中找到的。而不仅仅是列表框(选择框)的名称。你好,萨加尔,谢谢你的回复。它不起作用,我在想也许我必须特别提到数组中的元素。例如$var=options(选项在列表中)之类的东西,我将不插入:)根据你所描述的,这个答案应该有效。请记住,整个语句将用双引号引起来,如“updatetablesetauthor='$aa',publisher='$pp',year='$cc',genre='$dd'WHERE condition”。如果这不是你想要做的,请提供更多细节。嗨,帕拉非常感谢你的回复,我复制并粘贴了你的代码行,它得出了这个结论..解析错误:语法错误,意外'“'在C:\xampp\htdocs\moon\newmoon2.php第59行…我一直在摆弄逗号和其他东西,但想知道是否有用。我在想问题是否出在原始变量及其存储方式上。我猜语句中有额外的”
。请选中“立即编辑”和“粘贴”。