这部分代码工作正常:
<div id="Vraag">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["vraag"];
}
?>
</div>
但这部分不起作用:
<div id="antAA">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["AntwA"];
}
?>
<!-- <a href="#" id="antAA">Antwoord A</a> -->
</div>
我不知道它为什么不起作用。它是相同的代码。数据库运行正常,因为如果我在代码的顶部一直运行这段代码,它会很好地回应所有这些:
while($row = mysqli_fetch_assoc($rows))
{
echo $row["id"];
echo $row["vraag"];
echo $row["AntwA"];
echo $row["AntwB"];
echo $row["AntwC"];
echo $row["AntwD"];
}
但在div中它只是不起作用。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="se.css">
<title>Lotto</title>
</head>
<body>
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "lotto";
$db = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT id, vraag, AntwA, AntwB, AntwC, AntwD,id FROM vraag1";
$rows = mysqli_query($db, $query);
// while($row = mysqli_fetch_assoc($rows))
// {
// echo $row["id"];
// echo $row["vraag"];
// echo $row["AntwA"];
// echo $row["AntwB"];
// echo $row["AntwC"];
// echo $row["AntwD"];
// }
?>
<div id="headerbg"></div>
<center>
<h1>Vraag 1</h1>
</center>
<center>
<div>
<img src="antw.png" id="img6">
</div>
<div id="Vraag">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["vraag"];
}
?>
</div>
<div id="plaatje">
<img id="img1" src="wip.jpg">
</div>
<div id="BGantA">
<img id="img2" src="antw.png">
</div>
<div id="antAA">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["vraag"];
}
?>
<!-- <a href="#" id="antAA">Antwoord A</a> -->
</div>
<div>
<img src="antw.png" id="img3">
</div>
<div>
<a href="#" id="antBB">Antwoord B</a>
</div>
<div>
<img src="antw.png" id="img4">
</div>
<div>
<a href="#" id="antCC">Antwoord C</a>
</div>
<div>
<img src="antw.png" id="img5">
</div>
<div>
<a href="#" id="antDD">Antwoord D</a>
</div>
</center>
</body>
</html>
CSS代码(如果需要):
body{
background-color: white;
overflow: hidden;
/*#ECECEC;*/
}
#headerbg{
display: block;
margin-top:-10px;
margin-left: -10px;
margin-right: -10px;
width: 102%;
height: 118px;
background-color: #333333;
/*#232323;*/
}
h1{
font-family: times;
display: block;
margin-left: -800px;
margin-top:-76px;
color: #979797;
}
#img2, #img3, #img4, #img5{
width:300px;
height:100px;
display: block;
}
img{
border:1px solid lightgray;
padding: 5px;
}
#img1{
margin-top: 50px;
}
#img2{
margin-top: -370px;
margin-left: -800px;
}
#img3{
margin-top:-67px;
margin-left:800px;
}
#img4{
margin-left:-800px;
margin-top: 150px;
}
#img5{
margin-left: 800px;
margin-top: -67px;
}
#img6{
display: block;
width: 800px;
height: 60px;
margin-top: 55px;
margin-left: ;
}
#antAA, #antBB, #antCC, #antDD{
display: block;
/*color: #979797;*/
color:red;
text-decoration:none;
}
#antAA, #antCC{
margin-top: -65px;
margin-right: 800px;
}
#antBB{
margin-top: -65px;
margin-left: 800px;
}
#antDD{
margin-left: 800px;
margin-top:-65px;
}
#Vraag{
display:block;
color: red;
margin-top: -44px;
}
#antAA:hover, #antBB:hover, #antCC:hover, #antDD:hover{
color:white;
}
答案 0 :(得分:2)
执行mysqli_fetch_assoc
后,它会在获取最后一个值时返回false,并且没有其他值。
如果要多次使用它,可以将其值保存在数组中,然后使用此数组
<?php
$vraag_array=array();
while($row = mysqli_fetch_assoc($rows))
{
$vraag_array[] = $row["vraag"];
}
//to echo
// close
?>
<div id="Vraag">
<?php
foreach ($vraag_array as $vraag_value) {
echo vraag_value;
}
?>
</div>
<div id="plaatje">
<img id="img1" src="wip.jpg">
</div>
<div id="BGantA">
<img id="img2" src="antw.png">
</div>
<div id="antAA">
<?php
foreach ($vraag_array as $vraag_value) {
echo vraag_value;
}
?>
<!-- <a href="#" id="antAA">Antwoord A</a> -->
</div>
答案 1 :(得分:1)
使用:
mysqli_data_seek($ rows,0);
每次循环后。 这将计数器设置回0
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="se.css">
<title>Lotto</title>
</head>
<body>
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "lotto";
$db = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT id, vraag, AntwA, AntwB, AntwC, AntwD,id FROM vraag1";
$rows = mysqli_query($db, $query);
// while($row = mysqli_fetch_assoc($rows))
// {
// echo $row["id"];
// echo $row["vraag"];
// echo $row["AntwA"];
// echo $row["AntwB"];
// echo $row["AntwC"];
// echo $row["AntwD"];
// }
?>
<div id="headerbg"></div>
<center>
<h1>Vraag 1</h1>
</center>
<center>
<div>
<img src="antw.png" id="img6">
</div>
<div id="Vraag">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["vraag"];
}
mysqli_data_seek($rows, 0);
?>
</div>
<div id="plaatje">
<img id="img1" src="wip.jpg">
</div>
<div id="BGantA">
<img id="img2" src="antw.png">
</div>
<div id="antAA">
<?php
while($row = mysqli_fetch_assoc($rows))
{
echo $row["vraag"];
}
mysqli_data_seek($rows, 0);
?>
<!-- <a href="#" id="antAA">Antwoord A</a> -->
</div>
<div>
<img src="antw.png" id="img3">
</div>
<div>
<a href="#" id="antBB">Antwoord B</a>
</div>
<div>
<img src="antw.png" id="img4">
</div>
<div>
<a href="#" id="antCC">Antwoord C</a>
</div>
<div>
<img src="antw.png" id="img5">
</div>
<div>
<a href="#" id="antDD">Antwoord D</a>
</div>
</center>
</body>
</html>
答案 2 :(得分:0)
我不完全确定。但我认为这是因为在第一个while循环中它取出了“vraag”。
所以在第二个while循环中,它可能认为它是相同的循环,所以没有更多的数据可以在那里显示。尝试在第二个循环上方再次输入查询。使用其他变量名称
$query2 = "SELECT id, vraag, AntwA, AntwB, AntwC, AntwD,id FROM vraag1";
$rows2 = mysqli_query($db, $query2);
while($row2 = mysqli_fetch_assoc($rows2))
答案 3 :(得分:0)
看起来你正在迭代并获取所有行,但只读出匹配“vraag”的行。当你第二次执行时,你已经遍历并耗尽了所有的行。
这就是为什么这个工作原理:
while($row = mysqli_fetch_assoc($rows))
{
echo $row["id"];
echo $row["vraag"];
echo $row["AntwA"];
echo $row["AntwB"];
echo $row["AntwC"];
echo $row["AntwD"];
}
因为您在处理时正在使用每一行。
我无法理解你为什么要执行这样的代码,它会遍历整个集合并每次读出相同的奇异值,但是如果你想要第二次尝试工作,你将不得不再次执行这一行:
$rows = mysqli_query($db, $query);
绝对考虑重新考虑整个结构。
答案 4 :(得分:-1)
请尝试对不同的variables
使用不同的values
。请在下一个无效的代码中尝试不同的variable name
,就像这样:
<div id="antAA">
<?php
while($row_new = mysqli_fetch_assoc($rows))
{
echo $row_new["AntwA"];
}
?>
<!-- <a href="#" id="antAA">Antwoord A</a> -->
</div>
我希望,这将解决您的问题。