2017-07-06 45 views
-2

最近,我决定来测试我真的老项目,我有PHP的新版本,所以,我必须改从mysql_fetch_assoc()mysqli_fetch_assoc()mysqli_fetch_assoc()返回的数据进行两次

但是,在我的本地主机上运行它的数据被返回两次。

这是代码片段。任何帮助将不胜感激。

感谢提前:)

<?php 
$query = 'SELECT people_id, people_fullname FROM people WHERE people_isactor = 1 ORDER BY people_fullname;'; 
$result = mysqli_query($con,$query) or die(mysqli_error($con)); 

//populate the select options with the result 
while($row = mysqli_fetch_assoc($result)){ 
    foreach($row as $value){ 
     if($row['people_id'] == $movie_leadactor){ 
      echo '<option value="'.$row['people_id'].'"selected="selected">'; 
     }else{ 
      echo '<option value="'.$row['people_id'].'">'; 
     } 
     echo $row['people_fullname'].'<option>'; 
    } 
} 
?> 
+3

你的每一行循环用'foreach'!是的,那将会输出与该行中的字段一样多的次数。 – deceze

+1

看起来很奇怪,在你更新它来使用mysqli之前,这不会做同样的事情。 –

+0

1.remove'foreach' only(not if-else inside it).2'echo $ row ['people_fullname']。''

回答

2

1.去除foreach()

2.Last <option>必须</option>

做象下面这样: -

<?php 
$query = 'SELECT people_id, people_fullname FROM people WHERE people_isactor = 1 ORDER BY people_fullname;'; 
$result = mysqli_query($con,$query) or die(mysqli_error($con)); 

//populate the select options with the result 
while($row = mysqli_fetch_assoc($result)){ 

    if($row['people_id'] == $movie_leadactor){ 
     echo '<option value="'.$row['people_id'].'"selected="selected">'.$row['people_fullname'].'</option>'; 
    }else{ 
     echo '<option value="'.$row['people_id'].'">'.$row['people_fullname'].'</option>'; 
    } 
} 
?> 
+0

耶,工作感谢! :) –

+0

@ArunKumar很乐意帮助你。 –