2012-05-22 91 views
0

最新的號碼,我怎樣才能閱讀最新的數字從下面的代碼閱讀從環

<table width="100" border="1" > 
    <tr align="center" bgcolor="#999999" > 
    <td >NO</td> 
    <td >Name</td> 
    <td >PBSID</td> 
    </tr> 

$query ="select * from stock "; 
$hasil = mysql_query($query); 
$no=0; 

while ($row = mysql_fetch_array($hasil)) 
{ 
    $no++; 
    if($x != $row[pbsid]) 
    { 
     $no=1; 
     echo "<tr bgcolor=#CCCCCC> 
        <td colspan=4 ><b> GROUP $row[pbsid]</b></td> 
       </tr>"; 
    } 

    $mo=count($no); 
    echo "<tr><td>$no </td><td> $row[bnama]</td><td>$row[pbsid] </td></tr>"; 
    $x = $row["pbsid"]; 
} 

結果:


=========== 
NO | NAME | GROUP 
--------------------------------------- 
=========== 
GROUP 1 
--------------------------------------- 
=========== 
1 | A | 1  
2 | B | 1  
3 | C | 1  
4 | D | 1 
--------------------------------------- 
=========== 
GROUP 2 
--------------------------------------- 
=========== 
1 | A | 2  
2 | B | 2  
3 | C | 2 


我想展示最新的GROUP號碼,組1 = 4和組2 = 3,誰能幫我解決這個問題?

+0

僅是最後一個沒有即3或4個和3個? – Suleman

+0

你只想要組1和組2的最後一行嗎? –

+0

我想只爲每組的最後一行號碼 –

回答

0

嘗試此查詢:

SELECT s.*, c.count 
FROM stock AS s 
LEFT JOIN (SELECT pbsid, COUNT(1) AS `count` FROM stock GROUP BY pbsid) AS c 
    ON s.pbsid = c.pbsid 

現在你將有每個組,這是什麼,似乎你真的想計數。

如果你寧願做在PHP中所有的工作由於某種原因,你可以做這樣的:

<table width="100" border="1" > 
    <tr align="center" bgcolor="#999999" > 
    <td >NO</td> 
    <td >Name</td> 
    <td >PBSID</td> 
    </tr> 

$query ="select * from stock "; 
$hasil = mysql_query($query); 
$no=0; 

$counts = array(); // make an array of counts for each group, keyed by pbsid 
$rows = array(); // put all the data from SQL into an array 
while ($row = mysql_fetch_array($hasil)) 
{ 
    $rows[] = $row; 
    if (!isset($counts[$row[pbsid]])) 
    { 
     $counts[$row[pbsid]] = 0; // initialize it to 0 
    } 
    $counts[$row[pbsid]]++; // increment for each occurrence of a pbsid 
} 

foreach ($rows as $row) 
{ 
    $no++; 
    if($x != $row[pbsid]) 
    { 
     $no=1; 
     echo "<tr bgcolor=#CCCCCC> 
        <td colspan=4 ><b> GROUP $row[pbsid]</b> Count = " . $counts[$row[pbsid]] . " </td> 
       </tr>"; 
    } 

    $mo=count($no); 
    echo "<tr><td>$no </td><td> $row[bnama]</td><td>$row[pbsid] </td></tr>"; 
    $x = $row["pbsid"]; 
} 

雖然,我認爲這是更簡單,只是在你的查詢計算此信息。

+0

嗨elijah ...我想從PHP代碼查詢而不是從SQL查詢。 –

+1

我真的認爲從SQL獲取這個信息是一個更好的方法,但如果你堅持使用php,請參閱上面的編輯。 – Okonomiyaki3000

+0

感謝您的幫助.. –

0

這會工作

$query ="select * from stock "; 
$hasil = mysql_query($query); 
$no=0; 
$latest = array(); 
while ($row = mysql_fetch_array($hasil)) 
{ 
$no++; 
if($x != $row[pbsid]){ 
$no=1; 
echo "<tr bgcolor=#CCCCCC> 
    <td colspan=4 ><b> GROUP $row[pbsid]</b></td> 
</tr>"; 
} 
$mo=count($no); 
echo "<tr><td>$no </td><td> $row[bnama]</td><td>$row[pbsid] </td></tr>"; 
$x = $row["pbsid"]; 
$key = 'Group'.$row['pbsid']; 
$latest[$key] = $no; 
} 
print_r($latest); 
+0

這是行不通的...我想顯示從組 –

+0

的lates號碼我只需要從組的最新號碼。 –

0
<table width="100" border="1" > 
<tr align="center" bgcolor="#999999" > 
<td >NO</td> 
<td >Name</td> 
<td >PBSID</td> 
</tr> 
$last_no = array(); 
$query ="select * from stock "; 
$hasil = mysql_query($query); 
$no=0; 

while ($row = mysql_fetch_array($hasil)) 
{ 
$no++; 
if($x != $row[pbsid]){ 
$no=1; 
echo "<tr bgcolor=#CCCCCC> 
    <td colspan=4 ><b> GROUP $row[pbsid]</b></td> 
</tr>"; 
} 
$mo=count($no); 
echo "<tr><td>$no </td><td> $row[bnama]</td><td>$row[pbsid] </td></tr>"; 
$x = $row["pbsid"]; 
$last_no[] = $no; 
} 
print_r($last_no); 
+0

我認爲這不是他想要的嗎? –

+0

@RohitKumarChoudhary我要求只有最後一個需要或每個沒有 – Suleman

+0

我只需要每個組的最新號碼 –

0

更改查詢$query ="select MAX(沒有),bnama, pbsid from yourtablename GROUP BY pbsid ";

+0

我不想使用sql查詢我可以使用php查詢嗎? –

+0

你的意思是由PHP查詢? –

+0

我有另一個SQL查詢與完整代碼,我想實現這個解決方案,如果任何打破我的問題。只是在PHP查詢或功能操縱。 –