php - 使用 PHP 从数据库中获取行,从行中获取值并插入 HTML
问题描述
我想从数据库中获取符合条件的行,从每一行获取特定值并将这些值粘贴到不同的 HTML 中。
例如,来自标准的数据库匹配 = id 为 3、7 和 30
的行我想从第 3 行中获取“名称”并将其放入<div id='firstResult'></div>
然后从第 7 行中获取“名称”并将其放入<div id='secondResult'></div>
最后,我想采用“从行 id 30 中命名'并将其放入<div id='thridResult'></div>
我知道如何将它们放在 HTML 中,我正在努力处理 PHP 部分。到目前为止,我得到了:
<?php
include_once 'databaseconn.php';
$ramResult = $_POST['ram'];
$graphcardResult = $_POST['graphcard'];
$processorResult = $_POST['processor'];
$sql = "SELECT * FROM laptops WHERE ram = '$ramResult' AND graphcard = '$graphcardResult' AND processor = '$processorResult' ;";
$result = mysqli_query($conn, $sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$nameResult = $row['name'];
$ramResult = $row['ram'];
$graphcardResult = $row['graphcard'];
$processorResult = $row['processor'];
$imgResult = $row['img'];
$imgId = $row['id'];
}
}
?>
我想给结果数字,比如第一个结果是 1,第二个是 2,等等,然后$firstResult['name']
不确定这是否是正确的方法,因为我是新手,我很难弄清楚该怎么做这个。我希望你能把我推向正确的方向。
为了完成,DB:
id | name | ram | graph | processor | url
1 | data | data| data | data | data
2 | data | data| data | data | data
3 | data | data| data | data | data
ETC..
解决方案
从概念上讲,您可以通过多种方式实现这一目标。
<?php
include_once 'databaseconn.php';
$ramResult = $_POST['ram'];
$graphcardResult = $_POST['graphcard'];
$processorResult = $_POST['processor'];
$sql = "SELECT * FROM laptops WHERE ram = '$ramResult' AND graphcard = '$graphcardResult' AND processor = '$processorResult' ;";
$result = mysqli_query($conn, $sql);
$list = mysqli_fetch_all ($result, MYSQLI_NUM); //RETURN INDEXED ARRAY
//CREATES AN EMPTY STRING
$output = "";
if(count($list) > 0){ //CHECK IF THERE IS A RESULT.
//if ($result->num_rows > 0) {
for($i=0; $i < count($list); $i++){
//while($row = $result->fetch_assoc()) {
$nameResult = $list[$i]['name'];
$ramResult = $list[$i]['ram'];
$graphcardResult = $list[$i]['graphcard'];
$processorResult = $list[$i]['processor'];
$imgResult = $list[$i]['img'];
$imgId = $list[$i]['id'];
//CONDITIONALLY CHECK VALUE AND ALTER OUTPUT
if($i == "0"){
// .= operator will append the string to the end of the existing string.
$output .= "<div id='firstResult'>".$nameResult."</div>";
}elseif($i == "1"){
$output .= "<div id='secondResult'>".$nameResult."</div>";
}elseif($i == "2"){
$output .= "<div id='thirdResult'>".$nameResult."</div>";
}else{
/*... default output ... */
}
}
//ONCE OUTPUT IS BUILT, You can echo it, or use it in your template.
echo $output;
}
?>
推荐阅读
- asp.net-core - 在显示重定向页面之前显示默认页面
- sql - 根据每个条件对值进行分组
- batch-file - 如何通过将递归路径添加到文件名来将嵌套目录结构的所有文件复制到一个新目录中?
- python - 如何将多个绘图保存到一个word文档文件中?
- python - 如何让用户在 sqlite3、python3 中输入 TABLE 名称?
- salesforce - 将 Salesforce 与 Salesforce 集成
- python - 如何在列表中的字符串值中添加新单词?
- android - 如何在 Android Kotlin 中获取孩子并转换为双精度
- coq - 通过将其添加为子目标来引入新的假设/假设
- json - TypeScript:更改 JSON 对象中元素的类型