[英]How can I make this part of code shorten?
I only know that this part of code is not good for performance web application because it spent a lot of time during execution two SQL query instead of one. 我只知道这部分代码对性能Web应用程序不利,因为它在执行过程中花费了很多时间使用两个SQL查询而不是一个。 I want to read your suggestions about this part of code.
我想阅读您对这部分代码的建议。 Also, I want to read your code solution of this.
另外,我想阅读您的代码解决方案。 The code is working ok.
该代码工作正常。
I appreciate your help. 我感谢您的帮助。
Thank you in advance 先感谢您
<html>
<body>
<select name="category">
<option value="category">category name</option>
<?php
$sql = "SELECT category.name as cat, article.name as art from category
JOIN article ON category.id = article.id";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($query)){
echo "
<option value='".$row["cat"]."'>".$row["cat"]."</option>";
}
mysqli_close($conn);
?>
</select>
<select name="article">
<option value="articlename">article name</option>
<?php
$sql = "SELECT category.name as cat, article.name as art from category
JOIN article ON category.id = article.id";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($query)){
echo "
<option value='".$row["art"]."'>".$row["art"]."</option>";
}
mysqli_close($conn);
?>
</select>
</body>
</html>
You don't need to make 2 connections to the db for getting the same data. 您无需与数据库建立2个连接即可获取相同的数据。 You could create a collection of objects and use them in place like such...
您可以创建对象的集合并像这样使用它们。
<?php
$arr = [];
$sql = "SELECT category.name as cat, article.name as art from category
JOIN article ON category.id = article.id";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($query)){
$obj = (object) [
"cat" => $row["cat"],
"art" => $row["art"]
];
array_push($arr, $obj);
}
mysqli_close($conn);
?>
<select name="category">
<option value="category">category name</option>
foreach($arr as $obj) {
?>
<option value='"<?php echo $obj->cat; ?>"'><?php echo $obj->cat; ?></option>
<?php
}
<select name="article">
<option value="articlename">article name</option>
foreach($arr as $obj) {
?>
<option value='"<?php echo $obj->art; ?>"'><?php echo $obj->art; ?></option>
<?php
}
You can prepare the strings that will hold the <option>
in 1 loop, then simply echo them. 您可以准备在1个循环中保存
<option>
的字符串,然后简单地回显它们。
In example : 例如:
<?php
$sql = "SELECT category.name as cat,
article.name as art
FROM category
JOIN article
ON category.id = article.id";
$query = mysqli_query($conn, $sql);
$articles = "";
$categories = "";
while($row = mysqli_fetch_array($query)) {
$categories .= "<option value='" . $row["cat"] . "'>" . $row["cat"] . "</option>";
$articles .= "<option value='" . $row["art"] . "'>" . $row["art"] . "</option>";
}
mysqli_close($conn);
?>
<select name="category">
<option value="category">category name</option>
<?php echo $categories; ?>
</select>
<select name="article">
<option value="articlename">article name</option>
<?php echo $articles; ?>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.