2016-03-04 22 views
1

这是我的第一篇文章在这里,在空闲时间IM目前学习PHP,即时通讯试图开发一种aplication我得到了我与我不能找到解决办法的错误。在代码我张贴,当条件达到此部分:PHP mysqli的查询检索更多的价值比它应该

elseif ($result2['ODT'] == '0'){ 
          $query3 = mysqli_query($dbconfig, "SELECT po.texto, po.nextp FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and po.id != '10' and po.id != '7' and p.np=u.uap and po.np = p.np"); 
          $row1 =mysqli_fetch_assoc($query3); 
          echo '<option value="'.$row1['nextp'].'">'.$row1['texto'].'</option>';} 

它给了我2个值,2个选择选项,但如果我直接在phpmyadmin的运行它,它会检索我只有1行。我在那里做错了什么? 正确的是1行,而不是2,我认为它必须是关于时间的东西。在此先感谢

function Select1() { 
    header("Content-Type: text/html; charset=ISO-8859-1",true); 

    include 'dbconfig.php'; 

    $query = mysqli_query($dbconfig, "SELECT p.textop, p.np, p.ap, po.texto, po.nextp, u.uap FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and p.np=u.uap and po.np = p.np"); 
    $row_cnt = mysqli_num_rows($query); 

    if($row_cnt > 0){ 
       while($row =mysqli_fetch_assoc($query)){ 
        $query1 = mysqli_query($dbconfig, "SELECT uap FROM usergame WHERE userGID = '".$_SESSION['login_user']."'"); 
        $result = mysqli_fetch_assoc($query1); 
        if(($result['uap'] !== '230')and($result['uap'] !== '20')){ 
        echo "<option value='".$row['nextp']."'>".$row['texto']."</option>";} 

        elseif(($result['uap'] == '230')or($result['uap'] == '20')){ 
        $query2 = mysqli_query($dbconfig, "SELECT ODT FROM userencantos WHERE userEID = '".$_SESSION['login_user']."'"); 
        $result2 = mysqli_fetch_assoc($query2); 
         if ($result2['ODT'] > '0'){echo '<option value="'.$row['nextp'].'">'.$row['texto'].'</option>';} 
         elseif ($result2['ODT'] == '0'){ 
          $query3 = mysqli_query($dbconfig, "SELECT po.texto, po.nextp FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and po.id != '10' and po.id != '7' and p.np=u.uap and po.np = p.np"); 
          $row1 =mysqli_fetch_assoc($query3); 
          echo '<option value="'.$row1['nextp'].'">'.$row1['texto'].'</option>';} 
         } 
       } 
      }else{ 
       echo '<option value="">Nada foi encontrado na BD</option>'; 
      } 
}; 
+0

请重新格式化你的问题。 –

+0

raveenanigan reformatted,thx mate ...对不起格式的问题 –

+0

'$ row_cnt'的值是什么? –

回答

0

对不起你们,但我解决它自己:)我改变了代码,它现在的作品完美。

function Select1() { 
header("Content-Type: text/html; charset=ISO-8859-1",true); 

include 'dbconfig.php'; 

$query = mysqli_query($dbconfig, "SELECT uap FROM usergame WHERE userGID  = '".$_SESSION['login_user']."'"); 
$result = mysqli_fetch_assoc($query); 

if(($result['uap'] !== '230')and($result['uap'] !== '20')){ 
$query1 = mysqli_query($dbconfig, "SELECT p.textop, p.np, p.ap, po.texto, po.nextp, u.uap FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and p.np=u.uap and po.np = p.np"); 
$row_cnt = mysqli_num_rows($query1); 
      while($row =mysqli_fetch_assoc($query1)){ 
       echo "<option value='".$row['nextp']."'>".$row['texto']."</option>";} 
} 

elseif(($result['uap'] == '230')or($result['uap'] == '20')){ 
$query2 = mysqli_query($dbconfig, "SELECT ODT FROM userencantos WHERE userEID = '".$_SESSION['login_user']."'"); 
$result2 = mysqli_fetch_assoc($query2); 
    if ($result2['ODT'] > '0'){ 
     $query3 = mysqli_query($dbconfig, "SELECT p.textop, p.np, p.ap, po.texto, po.nextp, u.uap FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and p.np=u.uap and po.np = p.np"); 
     $row_cnt1 = mysqli_num_rows($query3); 
      while($row1 =mysqli_fetch_assoc($query3)){ 
       echo "<option value='".$row1['nextp']."'>".$row1['texto']."</option>";} 
     } 
    elseif ($result2['ODT'] == '0'){ 
     $query4 = mysqli_query($dbconfig, "SELECT po.texto, po.nextp FROM paginas p, pagsop po, usergame u WHERE u.userGID = '".$_SESSION['login_user']."' and po.id != '10' and po.id != '7' and p.np=u.uap and po.np = p.np"); 
     $row_cnt2 = mysqli_num_rows($query4); 
      while($row2 =mysqli_fetch_assoc($query4)){ 
       echo "<option value='".$row2['nextp']."'>".$row2['texto']."</option>";} 
     } 
} 

}; 
0

您是否尝试将此部分从“或”更改为“和”?

elseif(($result['uap'] == '230')or($result['uap'] == '20')){ 

elseif(($result['uap'] == '230')and($result['uap'] == '20')){ 
+0

是的,但是有一个和那里我有2个空的选择,但是再一次,2个选择 –