2014-04-04 43 views
0

我有一個表格顯示來自數據庫的信息。根據顯示的行號,我添加了一個要顯示消息的列。基於php中的行號的回覆消息

<form name="afisare1" method="POST" > 
    <input type="submit" name="opt1" value="OK"/> 
    <?php 
    if (isset($_POST['opt1'])) { 
     $loc=mysql_query("SELECT loc FROM program WHERE den='Option'"); 
     //$loc result is a number 

     $sql=mysql_query("SELECT Col1, Col2 
          FROM date WHERE Opt_1='Option' OR Opt_2='Option' 
          ORDER BY Col2 DESC"); 
    ?> 
    <table> 
     <thead> 
      <tr> 
       <th>Col1</th> <th>Col2</th> <th>OK/NOT OK</th> 
      </tr> 
     </thead> 
     <?php 
     $num_rows = 0; 
     while ($row = mysql_fetch_assoc($sql)) { 
      $num_rows++; 
      if ($num_rows <= $loc) { 
       echo"<tr> 
         <td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>OK</td> 
        </tr>"; 
       break; 
      } 
      if ($num_rows > $locuri_buget) { 

       //here i have a problem because i don't know how to display something like this : 
       //echo"<tr><td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>NOT OK</td></tr>"; 
      } 
     } 
    } ?> 
    </table>  
</form> 

例如,如果= 2我想呼應的第2行確定,額外的行$祿的結果,我想呼應NOT OK

回答

0

檢索從MySQL loc,你原來的代碼做這樣的:

$loc = mysql_query("SELECT loc FROM program WHERE den='Option'"); 

但你可能要改變這樣的:

$loc = 0; # default value in case of error in a query 
$result = mysql_query("SELECT loc FROM program WHERE den='Option'"); 
while($row = mysql_fetch_assoc($result)){ 
    $loc = $row['loc']; 
} 

或者,如果你想只需從數據庫中檢索一條記錄,您也可以使用以下代碼編寫一條SQL語句LIMIT

$loc = 0; # default value in case of error in a query 
$result = mysql_query("SELECT loc FROM program WHERE den='Option' LIMIT 1"); 
if($row = mysql_fetch_assoc($result)){ 
    $loc = $row['loc']; 
} 

希望這會有所幫助。

+0

非常感謝,非常完美! – user3080279

0

你可以用while循環

以下內嘗試
if($num_rows<=$loc){ 
echo"<tr><td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>OK</td></tr>"; 
}else{ 
echo"<tr><td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>NOT OK</td></tr>"; 
} 
+0

這將回顯所有行OK。 – user3080279

+0

對於$ num_rows <= $ loc和'Not OK',只會爲$ num_rows> $ loc回顯'OK'。$ loc – user3470953

+0

謝謝,但問題不在這裏。問題是檢索$ loc的方式。 – user3080279

0
$num_rows = 0; 
    while($row = mysql_fetch_assoc($sql)){ 
    $num_rows++; 
    if($num_rows<=$loc){ 
      echo"<tr><td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>OK</td></tr>"; 
     }else { 
      echo"<tr><td>".$row['Col1']."</td><td >".$row['Col2']."</td><td>OK</td></tr>"; 
     } 
} 

我覺得你的問題是與休息,

break結束當前執行,foreach,while,do-while或switch結構。 Break

+0

如果我不使用break,那麼會對所有行回顯OK – user3080279