首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从三个表中选择SQL和PHP

从三个表中选择SQL和PHP
EN

Stack Overflow用户
提问于 2015-12-29 00:35:08
回答 2查看 86关注 0票数 0

当我选择一个类别时,它会显示一个新的错误。我只需要回应纸杯蛋糕的名称和所选类别的价格,如果可能的话,我想添加另一个下拉按钮与品味。例如,如果有人正在寻找生日纸杯蛋糕将香草味道所有的生日纸杯蛋糕香草味道将显示与其价格。

代码语言:javascript
运行
复制
<html>
<body>
<?php
$server="localhost";
$username="root";
$password="";
$connect_mysql=mysql_connect($server,$username,$password) or die ("Connection Failed!");
$mysql_db=mysql_select_db("wordpress",$connect_mysql) or die ("Could not Connect to Database");
$query = "SELECT * FROM category ";
$result=mysql_query($query) or die("Query Failed : ".mysql_error());
$i=0;
while($rows=mysql_fetch_array($result))
{
$roll[$i]=$rows['name_category'];
$i++;
}
$total_elmt=count($roll);
?>
<form method="POST" action="">
Select cupcake_category : <select name="sel">
<option>Select</option>
<?php 
for($j=0;$j<$total_elmt;$j++)
{
?><option><?php 
echo $roll[$j];
?></option><?php
}
?>
</select>

<input name="submit" type="submit" value="Search"/><br />

</form>

<?php

if(isset($_POST['submit']))
{
$value=$_POST['sel'];

$query2 = "SELECT * FROM cupcakes, category, taste WHERE
  cupcakes.cupcake_id = category.id_category AND
  category.id_category = taste.id_taste AND
  category.cupcake_id = taste.cupcake_id";
$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
while($row=mysql_fetch_array($result2))
{
	echo "cupcake name: ".$row['cupcake_name']."<br/>";
	echo "price: ".$row['cupcake_price']."<br/>";

}
mysql_close($connect_mysql);
}
?>

EN

Stack Overflow用户

发布于 2015-12-30 16:19:13

下面是如何使用PDO完成此操作

代码语言:javascript
运行
复制
$stmt = $pdo->prepare("SELECT * FROM cupcakes 
                       WHERE id_category = :category AND id_flavor = :flavor");
$stmt->bindParam(':category', $_POST['category']);
$stmt->bindParam(':flavor', $_POST['flavor']);
$stmt->execute();

查询不需要关联这3个表。它只是从表单输入中获取类别ID和风格ID,并使用它们从第一个表中选择适当的行。

您只需使用其他两个表来填充类别和风格下拉列表。

下面是如何使用过时的mysql扩展而不是PDO执行上述查询:

代码语言:javascript
运行
复制
// Protect against SQL injection
$cat = mysql_real_escape_string($_POST['category']);
$flavor = mysql_real_escape_string($_POST['flavor']);

// Build and run query
$sql = "SELECT * FROM cupcakes
        WHERE id_category = {$cat}
        AND id_flavor = {$flavor}";
$result = mysql_query($sql);
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34497181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档