這裏有一個快速解釋:雖然在一個while循環導致陣列的一部分消失
我第一次從數據庫中拉四個電視節目。我的第二個發現是否當前用戶對他們中的任何一個進行了評分。 有趣的是,如果我的第二個while循環沒有找到從db中拉出的四個電視節目之一的分數,那麼未分級的電視節目根本不會顯示(所以如果用戶給出了三個分數的分數,第四個未分級的人消失了。)...爲什麼是這樣?
下面我有一個電臺表格,我想要預先檢查用戶給電視節目的分數(我會檢查分數是否存在並將「checked」添加到相應的HTML行)。
<?php
try {
$conn = new PDO('mysql:host=localhost;dbname=mytvbox', $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT * FROM shows WHERE id > (SELECT MAX(id) - 4 FROM shows)');
$stmt->execute(array('id' => $id));
while($row = $stmt->fetch()) {
$show_id = $row[0];
$requete = "SELECT * FROM show_score WHERE show_id = $show_id AND user_id = $user_id";
$score = $conn->prepare($requete);
$score->execute(array('show_id' => $show_id));
while($row_score = $score->fetch()) {
var_dump($row_score);
?>
<div id="index-last-shows" class="three columns">
<div class="tip">
<a href="<?php echo $row[0]; ?>"><img src="<?php echo $row[4]; ?>" /></a>
</div>
<div class="tip-content">
<div class="tip-container">
<div class="tip-header">
<h1> <?php echo $row[1]; ?> </h1>
</div>
<div class="row">
<div class="twelve columns">
<div id="flash"></div>
<form id="<?php echo $row[0]; ?>">
<div class="your-score">
<div class="">Your Score</div> <div id="flash"></div>
<input class="hover-star" type="radio" name="tvshowrating" value="1" title="1"/>
<input class="hover-star" type="radio" name="tvshowrating" value="2" title="2"/>
<input class="hover-star" type="radio" name="tvshowrating" value="3" title="3"/>
<input class="hover-star" type="radio" name="tvshowrating" value="4" title="4"/>
<input class="hover-star" type="radio" name="tvshowrating" value="5" title="5"/>
<input class="hover-star" type="radio" name="tvshowrating" value="6" title="6"/>
<input class="hover-star" type="radio" name="tvshowrating" value="7" title="7"/>
<input class="hover-star" type="radio" name="tvshowrating" value="8" title="8"/>
<input class="hover-star" type="radio" name="tvshowrating" value="9" title="9"/>
<input class="hover-star" type="radio" name="tvshowrating" value="10" title="10"/>
<input type="hidden" id="show_id-<?php echo $row[0]; ?>" value="<?php echo $row[0]; ?>" />
<input type="hidden" id="user_id-<?php echo $row[0]; ?>" value="<?php echo $user_id ?>" />
<span id="hover-test" style="margin:0 0 0 20px;"></span>
<input id="submitscore" type="submit" value="Submit scores!" onclick="addScore(<?php echo $row[0]; ?>);" />
</div>
</form>
</div>
</div>
</div>
</div>
編輯:語言更清晰一點。
編輯2:我會放一些屏幕截圖。如果我把右括號中的var_dump後,我得到這個:http://i.imgur.com/CrnsnIe.jpg,如果我把他們在最後就像我需要他們,我得到這個http://i.imgur.com/zVqMOiX.jpg
有丟失括號,不是? – 2013-05-10 16:54:12
唯一的輸出行是'var_dump'。有更多的代碼嗎? – andrewsi 2013-05-10 16:54:32
我已經添加了HTML。基本上,如果我在表單末尾的第二個while循環中放置右括號,我只能得到三個電視節目而不是四個。 – CharlieAus 2013-05-10 17:10:30