2016-10-01 7 views
0

こんにちはphpとmysqlの初心者。降順で私のSQLテーブルのループ内の最初または最後の値をスキップする方法を検索しようとしている?私は最近追加された行を最初に表示したいが最後に追加された行は表示しない。sqlから行をスキップする方法は?

<tr> 
<?php 
    $page=$_GET['pages']; /* created in index.php(pages.php?pages=m_$title) */ 
    $nage="z_".$page; 
    $query="SELECT * FROM `$nage` ORDER BY a_id DESC LIMIT 0, 1" ; 
    $run=mysqli_query($conn,$query); 
    while($row=mysqli_fetch_array($run)) { 
     $page_title=$row['title']; 
     $img_src=$row['img_src']; 

     // $page_desc=$row['story']; 

     echo "<tr bgcolor='pink'> 
        <td style='width:40%'> 
         <div class='titleDivX'> 
          <img class='imgFrame'src='$img_src' alt='tasvir'/> 
          <h5> $page_title</h5> 
         </div> 
        </td> 
        <td bgcolor='yellow'> 
         <div class='titleDivX'> </div> 
        </td> 
       </tr>"; 
    } 
?> 
+0

開始する前にカウントを取得し、 'while'ブロック内に' if'ブロックを入れますか? – Drew

+0

mysqli_fetch_arrayはポインタを進めるので、whileループの前にmysqli_fetch_array($ run)を一度呼び出すことができます。 – Devon

+0

あなたは 'LIMIT 0、1'の行を1つ返すだけです。では、何をスキップしようとしていますか?最初の行と最後の行がONLY行です。 **時間を節約してスクリプトを捨ててください** – RiggsFolly

答えて

1

hereの機能を使用することができます。あなたが最初か最後の行を見つけたいなら、あなたは、あなたがIF文の$isFirst$isLast変数を使用することができ、この

$run=mysqli_query($conn,$query); 
$rowsCount=mysqli_num_rows($run); 
$count = 0; 
while($row=mysqli_fetch_array($run)) { 
    $count++;  
    $isFirst = ($count == 1) ? true : false; 
    $isLast = ($count == $rowsCount) ? true : false; 

でコード

$run=mysqli_query($conn,$query); 
while($row=mysqli_fetch_array($run)) { 

のこの部分を置き換えることができます。たとえば、最後の行をスキップしたい場合は、次のようなコードを使用できます。

<?php 
    $page=$_GET['pages']; /* created in index.php(pages.php?pages=m_$title) */ 
    $nage="z_".$page; 
    $query="SELECT * FROM `$nage` ORDER BY a_id DESC LIMIT 0, 1" ; 
    $run=mysqli_query($conn,$query); 
    $rowsCount=mysqli_num_rows($run); 
    $count = 0; 
    while($row=mysqli_fetch_array($run)) { 
     $count++;  
     $isFirst = ($count == 1) ? true : false; 
     $isLast = ($count == $rowsCount) ? true : false; 

     if (!$isLast) { 
      $page_title=$row['title']; 
      $img_src=$row['img_src']; 

      // $page_desc=$row['story']; 

      echo "<tr bgcolor='pink'> 
         <td style='width:40%'> 
          <div class='titleDivX'> 
           <img class='imgFrame'src='$img_src' alt='tasvir'/> 
           <h5> $page_title</h5> 
          </div> 
         </td> 
         <td bgcolor='yellow'> 
          <div class='titleDivX'> </div> 
         </td> 
        </tr>"; 
     } 
    } 
?> 
+0

'$ isFirst = ...'と '$ isLast = ...'の代わりに、 'if($ count == 1 || $ count == $ rowsCount)continue;を実行するだけでコードを最適化することができますさらに。 –

+0

また、あなたの現在のコードでは、 'if(!$ isLast){...' 'if(!$ isFirst &&!$ isLast){...' –

+0

@RajdeepPaulはい、あなたは正しいですが、何が最初で、最後に何が教育目的のために名前を使用しているかを示します。 – zajonc

関連する問題