【发布时间】:2017-09-01 21:01:15
【问题描述】:
我创建了一个运行良好的代码,但我不确定它是否“合法”。 我在来自另一个 sql 查询的 while 循环中使用 sql 查询,这意味着(第二个)sql 查询重复第一个查询返回的行数。
谁能告诉我我是否可以使用这个或它只是一团糟?
代码:
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql_feat = 'SELECT * FROM wp_wpl_dbst WHERE category = 105';
$result_feat = mysqli_query($conn, $sql_feat);
if (mysqli_num_rows($result_feat) > 0) {
while($row = mysqli_fetch_assoc($result_feat)) {
$filter_feat = $row["table_column"];
$filter_name = $row["name"];
$sql_feat2 = 'SELECT * FROM wp_wpl_properties';
$result_feat2 = mysqli_query($conn, $sql_feat2);
if (mysqli_num_rows($result_feat2) > 0) {
while($row2 = mysqli_fetch_assoc($result_feat2)) {
if (!empty($row2[$filter_feat])) {
echo $filter_name;
echo "<br>";
}
}
}
}
}
mysqli_close($conn);
【问题讨论】:
-
我不明白你为什么多次执行内部sql查询。它不会改变,因此您可以保证每次都获得相同的结果,因为两者之间不会进行更新或插入。这意味着在循环之外执行一次查询并获取结果集就足够了。
-
这两个查询之间有什么关联?也许离开加入
table_column.. -
@chris85 第一个查询检查第二个while循环必须使用哪个表列
-
@ThomasBeumer 你能从每个表中发布一些示例行吗?我不确定我是否了解它是如何工作的。
-
@arkascha 有道理,我尝试过之后会回复你。感谢您的输入。还在学习o.o"..
标签: php mysql sql while-loop