2011-03-23 4 views
0

내 테이블은 100 개의 다른 이름으로 구성되며 모두 고유하며 모든 기본 키는 1-100 사이의 숫자입니다.한 번만 전체 사용

처음 이름부터 시작하여 각 이름에 대해 한 번만 사용하고 각 이름을 사용하면 한 번에 다시 시작되고 5 번 반복되는 각 이름에 대해 함수를 호출 할 수 있습니다.

어떻게하면됩니까?

+0

그래서, 당신은, 다섯 테이블의 모든 항목에 함수를 호출 위해 할 타임스? – sarnold

+0

테이블에 해당 행에 함수를 호출 한 시간을 알려주는 열을 추가 할 수 있습니까? – edmz

+0

예, 정확하게하고 싶습니다. – joe

답변

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

+0

CodeIgniter에서 제공하는 데이터베이스 클래스에 대한 링크를 추가했습니다. --문안 인사. – Vamsi