2011-03-23 92 views
0

我的表由100個不同的名字,所有的獨特和所有主鍵是1-100之間的一個數。只使用一點整一次

如何從第一個開始,並呼籲每個名稱確保其只使用一次,一次使用每個名稱的功能它開始回過在一個和循環5次。

我該如何做到這一點?

+0

所以,你要叫上表中的每個項目的功能,以五次? – sarnold 2011-03-23 06:57:46

+0

您可以在表格中添加一列,告訴您在該行調用了多少次函數? – edmz 2011-03-23 06:58:48

+0

是的,那正是我想要做的 – joe 2011-03-23 06:58:55

回答

3

如果所有的名稱本身是獨特的,那麼你不應該擔心檢查,如果該名稱已被調用,因爲它只會在您的記錄,一旦存在。

如果你所需要的是你的函數的名字和id,並且你的名字總數不會太大(就像你提到的〜100),那麼最簡單的辦法就是把它們全部存入內存中,這樣你就不用處理DB遊標或重新查詢。

PDO實例:

$db = new PDO($dsn, $username, $password); 

// fetch all records returning an array like: 
// array($id => $name) 
$names = $db->query('SELECT id, name FROM tablename')->fetchAll(PDO::FETCH_KEY_PAIR); 

for($i = 0; $i < 5; $i++) 
{ 
    foreach($names as $id => $name) 
    { 
    myfunction($id, $name); // call your function 
    } 
} 

mysqli的例子:

$db = new Mysqli($host, $username, $password, $dbname); 
$result = $db->query('SELECT id, name FROM tablename'); 

if($result) 
{ 
    $names = $result->fetch_all(MYSQLI_ASSOC); 
    $result->free(); 

    for($i = 0; $i < 5; $i++) 
    { 
    foreach($names as $j => $row) 
    { 
     myfunction($row['id'], $row['name']); // call your function 
    } 
    } 
} 
0

http://codeigniter.com/user_guide/database/index.html

$this->db->select('id, name'); 
$query = $this->db->get('mytable'); 
for($i =0; i<5; i++){ 
foreach ($query->result_array() as $row) 
{ 
    /* you can use $row['id'] and $row['name'] 
    and pass them as arguments your function 
    */ 
} 

} 
+0

你可能想提一下在那裏使用的數據庫擴展或庫,所以沒有混淆......看起來像CodeIgniter,也許? – prodigitalson 2011-03-23 23:44:14

+0

我已經添加了由CodeIgniter提供的數據庫類的鏈接。 - 問候。 – Vamsi 2011-03-25 10:22:46