Php 显示数据库中的值列表 $sql=“从主题中选择*”; $query=mysqli\u query($db\u conx,$sql); while($row=mysqli\u fetch\u数组($query,mysqli\u ASSOC)){ $id=$row[“id”]; $name=$row[“name”]; $developers=$row[“developers”]; $description=$row[“description”]; $category=$row[“category”]; $logo=$row[“logo”]; $officialLink=$row[“link”]; ////////////////////// $sql=“从文件中选择*,其中软件_id='$id'; $query=mysqli\u query($db\u conx,$sql); while($row=mysqli\u fetch\u数组($query,mysqli\u ASSOC)){ $version=$row[“version”]; $file=$row[“file”]; $link=$row[“link”]; $created=$row[“created”]; $versions.=''; $logos=“”; } ////////////////////// $solfList.=' “.$name。” '; }
此代码仅显示一个值。我想显示表中存储的所有值。我有这个密码。但是我不明白我在哪里犯了错误。就像我说的,运行内部查询会丢失所有外部查询结果集。因此,您的代码应该如下所示:Php 显示数据库中的值列表 $sql=“从主题中选择*”; $query=mysqli\u query($db\u conx,$sql); while($row=mysqli\u fetch\u数组($query,mysqli\u ASSOC)){ $id=$row[“id”]; $name=$row[“name”]; $developers=$row[“developers”]; $description=$row[“description”]; $category=$row[“category”]; $logo=$row[“logo”]; $officialLink=$row[“link”]; ////////////////////// $sql=“从文件中选择*,其中软件_id='$id'; $query=mysqli\u query($db\u conx,$sql); while($row=mysqli\u fetch\u数组($query,mysqli\u ASSOC)){ $version=$row[“version”]; $file=$row[“file”]; $link=$row[“link”]; $created=$row[“created”]; $versions.=''; $logos=“”; } ////////////////////// $solfList.=' “.$name。” '; },php,mysqli,Php,Mysqli,此代码仅显示一个值。我想显示表中存储的所有值。我有这个密码。但是我不明白我在哪里犯了错误。就像我说的,运行内部查询会丢失所有外部查询结果集。因此,您的代码应该如下所示: $sql = "SELECT * FROM themes"; $query = mysqli_query($db_conx, $sql); while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { $id = $row["id"];
$sql = "SELECT * FROM themes";
$query = mysqli_query($db_conx, $sql);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$id = $row["id"];
$name = $row["name"];
$developers = $row["developers"];
$description = $row["description"];
$category = $row["category"];
$logo = $row["logo"];
$officialLink = $row["link"];
//////////////////////
$sql = "SELECT * FROM file WHERE software_id = '$id'";
$query = mysqli_query($db_conx, $sql);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$version = $row["version"];
$file = $row["file"];
$link = $row["link"];
$created = $row["created"];
$versions .= '<li><a href="../files/' . $file . '" target="_blank">
<i class="fa fa-mail-forward">
</i> ' . $version . '</a></li>';
$logos = "<img src ='../img/logos/{$logo}' >";
}
//////////////////////
$solfList .= '
<li>
<h3>' . $name . '</h3>
</li>
';
}
由于在
sql
和中使用相同的变量,您将丢失第一个循环的值。因此,对两个查询及其结果使用两个不同的变量
$sql = "SELECT * FROM themes";
$query = mysqli_query($db_conx, $sql);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row["id"];
// your code
$sql = "SELECT * FROM file WHERE software_id = '$id'";
$result = mysqli_query($db_conx, $sql);
while ($r = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$version = $r["version"];
// your code
}
// your code
}
$sql=“从主题中选择*”;
$query=mysqli\u query($db\u conx,$sql);
而($row_outer=mysqli_fetch_数组($query,mysqli_ASSOC)){
$id=$row_outer[“id”];
$name=$row_outer[“name”];
$developers=$row_outer[“developers”];
$description=$row_outer[“description”];
$category=$row_outer[“category”];
$logo=$row_outer[“logo”];
$officialLink=$row_outer[“link”];
//////////////////////
$solfList=“”;
$sql\u internal=“从文件中选择*,其中软件\u id='$id';
$query\u inner=mysqli\u query($db\u conx,$sql\u inner);
而($row_inner=mysqli_fetch_array($query_inner,mysqli_ASSOC)){
$version=$row_inner[“version”];
$file=$row_inner[“file”];
$link=$row_inner[“link”];
$created=$row_inner[“created”];
$versions.='';
$logos=“”;
}
//////////////////////
$solfList.='
“.$name。”
';
}
查看这两条查询语句。运行内部查询将丢失所有外部查询结果集;在while循环之前。。当我想象你可能还想要$logos[]=…
或$logos.=…
@urfusion时,这不是变量$sql
,而是外部结果集被内部结果集破坏。变量$sql
可以再次使用。
$sql = "SELECT * FROM themes";
$query = mysqli_query($db_conx, $sql);
while ($row_outer = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row_outer["id"];
$name = $row_outer["name"];
$developers = $row_outer["developers"];
$description = $row_outer["description"];
$category = $row_outer["category"];
$logo = $row_outer["logo"];
$officialLink = $row_outer["link"];
//////////////////////
$solfList = "";
$sql_inner = "SELECT * FROM file WHERE software_id = '$id'";
$query_inner = mysqli_query($db_conx, $sql_inner);
while ($row_inner = mysqli_fetch_array($query_inner, MYSQLI_ASSOC)){
$version = $row_inner["version"];
$file = $row_inner["file"];
$link = $row_inner["link"];
$created = $row_inner["created"];
$versions .='<li><a href="../files/' .$file. '" target="_blank">
<i class="fa fa-mail-forward">
</i> ' .$version. '</a></li>';
$logos = "<img src ='../img/logos/{$logo}' >";
}
//////////////////////
$solfList .='
<li>
<h3>' .$name. '</h3>
</li>
';
}