建筑“使用条件PHP-这将导致50!排列。我以为你只有一个带有数字或“全部”的json?因此,使用上述方法应该没有问题。If语句仅检查变量是否包含“all”。对于我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50
建筑“使用条件PHP-这将导致50!排列。我以为你只有一个带有数字或“全部”的json?因此,使用上述方法应该没有问题。If语句仅检查变量是否包含“all”。对于我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50,php,mysql,sql,Php,Mysql,Sql,建筑“使用条件PHP-这将导致50!排列。我以为你只有一个带有数字或“全部”的json?因此,使用上述方法应该没有问题。If语句仅检查变量是否包含“all”。对于我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50个变量,例如bookTypeID,publisherID,ISDN,title,author,等等。所有这些值都可以是“全部”或具有实际值。因此,我的SQL查询更像是$query=“从booktype=$bookTypeID和publisher
建筑“使用条件PHP-这将导致50!排列。我以为你只有一个带有数字或“全部”的json?因此,使用上述方法应该没有问题。If语句仅检查变量是否包含“all”。对于我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50个变量,例如
bookTypeID
,publisherID
,ISDN
,title
,author
,等等。所有这些值都可以是“全部”或具有实际值。因此,我的SQL查询更像是$query=“从booktype=$bookTypeID和publisher=$publisher和author=$author和title=$title
的书籍中选择名称。如果JSON参数的值设置为'all',我基本上需要一种忽略WHERE子句中特定条件的方法。我希望有一个SQL解决方案,而不是PHP解决方案。代码转储是错误的答案。你应该解释为什么这可以解决他们的问题。虽然你的解决方案有效,但我的问题是,在实践中,我有50个不同的参数,所以我试图避免使用条件PHP“语句构建”——这将导致50个!排列。我以为你只有一个带有数字或“全部”的json?因此,使用上述方法应该没有问题。If语句仅检查变量是否包含“all”。对于我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50个变量,例如bookTypeID
,publisherID
,ISDN
,title
,author
,等等。所有这些值都可以是“全部”或具有实际值。因此,我的SQL查询更像是$query=“从booktype=$bookTypeID和publisher=$publisher和author=$author和title=$title
的书籍中选择名称。如果JSON参数的值设置为'all',我基本上需要一种忽略WHERE子句中特定条件的方法。我希望有一个SQL解决方案,而不是PHP解决方案。代码转储是错误的答案。你应该解释为什么这能解决他们的问题。为什么?我已将where子句替换为您在变量$booktype
上替换的字符串,而不是整个where子句。因此,现在查询将只查找不带值的booktypes,而不会返回任何行。这是一个缺陷。让我们来看看。我很高兴您的示例能够在我的简化示例中工作,但实际上我在JSON中传递了大约50个参数,所以我试图避免使用PHP进行“语句构建”。您是否能够通过提供一种适用于大量参数的简单方法来改进您的解决方案?代码转储是错误的答案。你应该解释为什么这能解决他们的问题。为什么?我已将where子句替换为您在变量$booktype
上替换的字符串,而不是整个where子句。因此,现在查询将只查找不带值的booktypes,而不会返回任何行。这是一个缺陷。让我们来看看。我很高兴您的示例能够在我的简化示例中工作,但实际上我在JSON中传递了大约50个参数,所以我试图避免使用PHP进行“语句构建”。您是否能够通过提供一种适用于大量参数的简单方法来改进您的解决方案?代码转储是错误的答案。您应该解释为什么这可以解决他们的问题。为什么在开关之后有一个单独的if
?代码转储是错误的答案。您应该解释为什么这可以解决他们的问题。为什么在开关之后有一个单独的if
?代码转储是错误的答案。你应该解释为什么这可以解决他们的问题。yhea buddy,但很简单,如果条件不匹配,只需一个省略子句。虽然你的解决方案适用于那个特定的示例,但我的问题是,在实践中,我有50个不同的参数,所以我试图避免使用条件PHP“语句构建”——这将导致50个!为了回答我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50个变量,例如bookTypeID、publisherID、ISDN、title、author等。所有这些值都可以是“全部”或具有实际值。因此,我的SQL查询更像$query=“从booktype=$bookTypeID和publisher=$publisher和author=$author和title=$title的书籍中选择名称。如果JSON参数的值设置为“all”,则基本上需要一种忽略WHERE子句中特定条件的方法。我希望有一个SQL解决方案,而不是PHP解决方案。代码转储是错误的答案。你应该解释为什么这可以解决他们的问题。yhea buddy,但很简单,如果条件不匹配,只需一个省略子句。虽然你的解决方案适用于那个特定的示例,但我的问题是,在实践中,我有50个不同的参数,所以我试图避免使用条件PHP“语句构建”——这将导致50个!为了回答我的问题,我提供了一个简化的示例,其中一个示例在JSON中传递了1个变量。实际上,我传递了50个变量,例如bookTypeID、publisherID、ISDN、title、author等。所有这些值都可以是“全部”或具有实际值。因此,我的SQL查询更像$query=“从booktype=$bookTypeID和publisher=$publisher和author=$author和title=$title的书籍中选择名称。如果JSON参数的值设置为“all”,则基本上需要一种忽略WHERE子句中特定条件的方法。我希望有一个SQL解决方案,而不是PHP解决方案。这是我正在寻找的类型,但我发现$bookTypeID=“all”(而不是返回所有行)的情况下,它返回0行。但是,不应该有这样的问题。您是否完全尝试了我编写的内容或类似的内容?也许是
<?php
include 'db_conf.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
printf("Connect failed: %s\n", $conn->connect_error);
exit();
}
$content = file_get_contents('php://input');
$json = json_decode($content, true);
$bookTypeIDString = $json["bookTypeID"];
$bookTypeID;
switch($bookTypeIDString){
case "all":
$bookTypeID = "all"; // IS THERE A VALUE HERE THAT I CAN PASS TO AN SQL QUERY TO RETURN EVERYTHING? i.e. IGNORE THE WHERE CLAUSE COMPLETELY?
break;
default:
$bookTypeID = $bookTypeIDString;
}
$query = "SELECT name FROM books WHERE booktype = $bookTypeID";
$result = $conn->query($query);
$data = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$data[] = $row;
}
echo json_encode($data);
$conn->close();
?>
switch($bookTypeIDString){
case "all":
$bookTypeID = "";
break;
default:
$WhereStting = "WHERE booktype = $bookTypeIDString";
}
$query = "SELECT name FROM books $WhereStting";
if($bookTypeID == 'all') {
$query = "SELECT name FROM books";
} else {
$query = "SELECT name FROM books WHERE booktype = $bookTypeID";
}
case "all":
$bookTypeID = "booktype";
break;
WHERE booktype = booktype
WHERE booktype IS NOT NULL
$where = '';
switch($bookTypeIDString){
case "all":
$bookTypeID = "all"; // IS THERE A VALUE HERE THAT I CAN PASS TO AN SQL QUERY TO RETURN EVERYTHING? i.e. IGNORE THE WHERE CLAUSE COMPLETELY?
break;
default:
$bookTypeID = $bookTypeIDString;
$where = "WHERE booktype = $bookTypeID";
}
$query = "SELECT name FROM books ".$where;
$where = '';
if($bookTypeID != 'all') {
$where = "WHERE booktype = $bookTypeID";
}
$query = "SELECT name FROM books ".$where;
<?php
include 'db_conf.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
printf("Connect failed: %s\n", $conn->connect_error);
exit();
}
$content = file_get_contents('php://input');
$json = json_decode($content, true);
$bookTypeIDString = $json["bookTypeID"];
$bookTypeID;
switch($bookTypeIDString){
case "all":
$bookTypeID = "all"; // IS THERE A VALUE HERE THAT I CAN PASS TO AN SQL QUERY TO RETURN EVERYTHING? i.e. IGNORE THE WHERE CLAUSE COMPLETELY?
$where_clause = " ";
break;
default:
$bookTypeID = $bookTypeIDString;
$where_clause = " WHERE booktype = $bookTypeID";
}
$query = "SELECT name FROM books".$where_clause;
$result = $conn->query($query);
$data = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$data[] = $row;
}
echo json_encode($data);
$conn->close();
?>
$query = "SELECT name FROM books WHERE (booktype = $bookTypeID OR $bookTypeID = 'all' )"