复杂的数据库设置:尝试显示与其他三个特定字段对应的两个字段值

时间:2013-06-18 16:12:07

标签: php mysql sql

我正在创建一个页面来显示数据库中的一堆信息,但我正在使用的数据库设置得很时髦。

虽然大约有15列,但我关注的是: Config_Name,Config_Type,Seq_Nbr,问题和答案。

每个Config_Type都有一组不同的Seq_Nbr值。 所以我有一个名为“_Hosting”的Config_Type,它有大约12个不同的“Seq_Nbr”值。每个值对应于不同的“问题”和“答案”字段。例如,

示例:

  

任何给定的Config_Name,Config_Type = _Hosting& Seq_Nbr = 60;问题字段将是   “控制面板URL”和“答案”字段将是   “www.examplesite.com/cpanel”

     

任何给定的Config_Name,Config_Type = _Hosting& Seq_Nbr = 70;问题字段将是   “控制面板用户名”和“答案”字段将为“ someusername

我要做的是将所有信息显示在一个页面上。 我在想我可以使用代码并查询每个部分的个别值(来自示例):

<?php
    $sql = "SELECT Question, Answer FROM configs WHERE Config_Name='Company', Config_Type = '_Hosting', Seq_Nbr = '60'";
    $result = mysql_query($sql)or die(mysql_error());
    $content = $result

?>

然后将其回显到每个

字段:

<p>
    <h2><? echo "Control Panel URL"; ?><h2>
    <br></br>
    <h4><? echo $content; ?><h4>
</p></br>

但是因为我必须为10+“Seq_Nbr”值执行此操作,所以整个过程看起来很乏味且不必要地重复。我知道我可以实现一个switch()并让它通过不同的SQL查询,但我正在尝试找到一种更有效的方法来实现这一点。

任何想法都将不胜感激! (我知道代码不完全正确,我只是想传达方法)

谢谢!

2 个答案:

答案 0 :(得分:0)

如果你想让它们全部在一个选择中返回,你可以尝试一个“in”子句。

$seq = "'60','70','80'";
$sql = "SELECT Question, Answer FROM configs WHERE Config_Name='Company' and Config_Type = '_Hosting' and Seq_Nbr in ( " . $seq . " ) ";

答案 1 :(得分:0)

为什么不只是查询所有并显示所有??

使用ORDER BY来组织它,无论你想要......

 //Google PDO to learn more, and how to connect
 //Connect
$conn = new PDO("...");

$sql = "SELECT * FROM configs ORDER BY Seq_Nbr";
foreach($conn->query($sql) as $val){
  echo "Name :". $val['Config_Name']."<br>";
  echo "Type :".$val['Config_Type']."<br>";
  echo "Question :". $val['Question']." | Answer :".$val['Answer']."<br>";
}

如果我误解你想做什么,请原谅我......

另外,我在示例中使用PDO,如果您仍然要使用mysql,只需调整所需的内容_ *