2010-06-14 72 views
0

這應該是簡單的,但因此在本例檢測有我無法弄清楚PHP detmine號碼,然後查詢

 

<?php 
$testid = 240; 
$curid = 251; 

$cal = $curid - $testid; 
echo $cal; 

?> 

我想,以確定兩者之間的其他數字號碼$ testid和$ curid之間有11個數字,但我不需要它來這樣做。

我需要它字面上的數字在$ curid - $ testid之間,在這個例子中是241,242,243 ...一路251,然後我需要創建一個循環與這些數字,並做以下查詢每一個

 
$cal = $curid - $testid; 
mysql_query("SELECT * FROM wall WHERE id='".$cal."'") 

// and for each number mysql should out put each data field with those numbers. 

再次感謝,愛你們。

回答

3

這假定$testid小於$curid

$testid = 240; 
$curid = 251; 
$numbers = range(($testid + 1), ($curid)); 
$query = 'SELECT * FROM wall WHERE id IN (' . implode(', ', $numbers). ')'; 

如果我print $query;我得到:

SELECT * FROM wall WHERE id IN 
    (241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251) 

所以只是你的查詢:

mysql_query($query); 

更多range()implode()

+0

感謝您的答覆試試這個感謝的快速反應=),即時通訊可能要結束了梳理這兩個答案,因爲我忘了說我需要在加之間的所有數字目前在這個例子中是251,你的是 – kr1zmo 2010-06-14 06:51:10

+0

更新了包含'$ curid'的答案 – artlung 2010-06-14 06:58:21

+0

沒有做目標,抱歉。 – artlung 2010-06-14 07:04:41

-1
foreach (range(240, 251) as $n) { 
    mysql_query("SELECT * FROM wall WHERE id='".$n."'") 
} 

此外,您還可以使用一個查詢,使其..

+0

我要去再次 – kr1zmo 2010-06-14 06:45:28

4

你可以做數字列表與range()爲@artlung建議,但它可能是名單很長,這不會是一個高效的查詢。

爲什麼不使用BETWEEN

$testid = 240; 
$curid = 251; 

$query = "SELECT * FROM wall WHERE id BETWEEN {$testid}+1 AND {$curid}";