gpt4 book ai didi

PHP/MySQL : How to reduce code to echo Select results (working code)

转载 作者:行者123 更新时间:2023-11-29 02:21:37 25 4
gpt4 key购买 nike

我是 PHP 和 MySQL 的新手,希望您能就此提供一些提示或评论帮助我。

我有一个带有表“Languages”的 MySQL 数据库,我想从中获取所有数据,然后在我的页面上回显它并在其周围添加一些 HTML 标记。

在下面的示例中,“ISO”是语言代码,“$trans”是语言名称的选定翻译,例如英语。此处的输出是一个(自定义的)复选框列表,每种语言都有一个复选框。

到目前为止,我有以下按预期工作的方法,但由于我是新手,我想知道我是否真的需要这里的 While 循环,或者是否有更短/更好的方法来获得相同的结果 - 最后我只需要回应我的选择结果

我的PHP:

// select data from db
$tbl = "Languages";

$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM " . $tbl . " ORDER BY ISO ASC";
$result = $conn->query($sql);
// create array
while($arrLanguages = $result->fetch_assoc()){
$languages[] = array("ISO" => $arrLanguages["ISO"], "trans" => $arrLanguages[$lang]);
}
$conn->close();

// echo results with some HTML tags
$i = 1;
foreach($languages as $language){
echo "<input type='checkbox' class='checkSingle' id='language" . $i . "' name='language' value='" . $language['ISO'] . " - " . $language["trans"] . "' />";
echo "<label for='language" . $i . "'>" . $language['ISO'] . "</label>";
$i++;
}

最佳答案

如果您不打算使用表中的所有字段,请不要执行 select *。请求稍后将被丢弃的字段是对带宽/CPU 周期的浪费。

$sql = "SELECT ISO, trans ...";
... execute ...
while($arrLanguages = ...) {
$languages[] = $arrLanguages;
}

因为您只选择了您真正想要的两个字段,$arrLanguages 将仅包含这些字段,并且您没有类型创建完整的数组。这是由 fetch_assoc() 调用自动完成的。

关于PHP/MySQL : How to reduce code to echo Select results (working code),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com