【发布时间】:2015-09-01 11:04:22
【问题描述】:
我是 PHP 和 MySQL 的新手,希望你能在这方面帮助我一些技巧或 cmets。
我有一个带有表“Languages”的 MySQL 数据库,我想从中获取所有数据,然后在我的页面上回显它,并在其周围添加一些 HTML 标记。
在下面的示例中,“ISO”是语言代码,“$trans”是语言名称的选定翻译,例如英语。
此处的输出是(自定义)复选框列表,每种语言都有一个复选框。
到目前为止,我有以下按预期工作的方法,但由于我是新手,所以我想知道我是否真的需要 While 循环,或者是否有 更短/更好的方法来获得相同的效果 - 最后我只需要回显我的 Select 的结果。
我的 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++;
}
【问题讨论】:
-
我觉得还不错!
-
在这里codereview.stackexchange.com 发布您的问题。 stackoverflow 是为了解决问题,而不是为了代码审查
-
那么不要做
select *。永远不要吸进你不会使用的领域。只要有select ISO, trans,然后是$languages[] = $arrLanguages。 -
@marijnz0r:感谢您的反馈! :)
-
@MarcB:非常感谢 - 这太棒了!肯定会申请。 :) 如果您将其发布为答案,那么我会接受。
标签: php mysql arrays loops select