PHP不会在不同的div

时间:2017-02-23 08:48:52

标签: php html echo

这部分代码工作正常:

    <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;
}

5 个答案:

答案 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>

我希望,这将解决您的问题。