2011-12-28 4 views
2

를 초과하는 경우 추가 DIV 추가 I MySQL의 테이블에서 사용자를 나열하고 당신이 볼 수있는 HTML 코드를 인쇄 할 다음과 같은 PHP 함수가 지금PHP 및 MySql | 는 SQL 행의 수는 주어진 수

//List All Users From The Database Table In An Array 
public function listUsersInArray() { 
    $sql = "SELECT username FROM user"; 
    $users = array(); 
    if($stmt = $this->conn->prepare($sql)) { 
     $stmt->bind_result($usrn); 
     $stmt->execute(); 

     while ($row = $stmt->fetch()) { 
      $stmt->bind_result($usrn); 
      $users[] = $usrn; 
     } 
     $stmt->close(); 
     return $users; 
    } 
     else { 
      $error = true; 
      $message['error'] = true; 
      $message['message'] = "The Users Could Not Stored In Array"; 
      return json_encode($message);  
     } 
} 

//Build A Form In Order To Print Out The Users For Deleting 
private function createForm($id) { 
    $form = array( '<form name="delete-user" id="'.$id.'" class="delete-user" method="post" action="#">', 
         '<input type="hidden" name="user_id" value="'.$id.'" />', 
         '<fieldset class="user-wrapper">', 
          '<label for="user" class="user-label">User</label>', 
          '<input type="text" name="user" class="user" value="'.$id.'" autocomplete="off" readonly="readonly" />', 
         '</fieldset>', 
         '<fieldset class="delete-wrapper">', 
          '<button type="submit" name="delete" class="delete">Delete</button>', 
         '</fieldset>', 
        '</form>' 
      ); 
    $form = implode("",$form); 
    return $form;     
} 

//List All Users From Array As Forms For Deleting 
public function listUsersForDelete() { 
    $users = $this->listUsersInArray();  
    for ($i = 0; $i < sizeof($users) ; $i++) { 
     while((sizeof($users) <= ($i % 7 == 0 || $i == 0))) { 
     echo $this->createForm($users[$i]); 
     $i++; 
    } 
    } 
} 

과 양식이 7 개 이상이면 div의 모든 양식을 감싸는 방법을 알아 내야합니다.

예를 들어 양식이 9 개인 경우, div의 첫 번째 7 줄을 감싸고 다른 div의 나머지 줄을 감싸고 16 개의 줄이 있다면 div의 첫 번째 7, div의 다음 7, 다른 div의 나머지 2를 래핑합니다. ..

+0

예, * [모듈러스 연산자] (http://www.php.net/manual/en/language.operators.arithmetic.php) *를 조사하고 싶습니다. –

+0

확인. 나는 그것을 공부할 것이다. 나는 그것이 내가 묻는 것의 두 번째 부분 인 것 같다. 숫자의 배수이다. 그러나 위의 기능에 대해 내가 묻는 것을 어떻게 할 수 있습니까? – Roland

+0

이론 상으로는 7의 배수에 도달 할 때마다 '

'을 출력하면됩니다. 그러나 원하는대로 함수로 정렬 할 수 있습니다. –

답변

1

제안 된 코드는 괜찮아 보입니다. 내가 제안 할 수있는 유일한 방법은 코드를 복사하여 붙여 넣는 대신 먼저 변수에 <form> 코드를 저장하는 것입니다. 복사 및 붙여 넣기는 많은 오류가 발생하기 쉽습니다. 특히 나중에 코드를 업데이트해야하는 경우 특히 그렇습니다.

+0

음, 방금 다른 생각을했습니다. 나는 그것이 내가 원하는 것에 더 빨리 도착할 것이라고 생각한다. 질문에서 편집 한 새 코드를보고 어떻게 생각하십니까? 모든 사용자를 배열에 나열한 다음 배열 길이가 7보다 큰지 확인하고 원하는 것을 수행하는 것이 더 쉽지 않을까요? – Roland

+0

네, 그렇게하는 또 다른 방법입니다. 배열에 모든 사용자가있는 경우,'array_chunk'를 사용하여 청크로 분할 할 수 있기 때문에 더 쉽습니다. –

+0

그래서 나는 내가 원하는 논리를 찾으려고 계속 노력하고있다. 나는 이것에 관해 생각해 냈지만, 나는 틀렸다는 것을 확신하지 못한다. 실제로 나는 틀렸다는 것을 확신한다.'$ i = 0; \t \t 동안은 (($ 내가를 sizeof (||)를 sizeof ($ 사용자) <($ 사용자) <= (I $ % 7 == 0 || I $ == 0))) { \t \t \t 에코 $ this-> createForm ($ users [$ i]); \t \t \t $ i ++; \t \t} '내가 틀렸어? – Roland

-1

계수가 작동하지만 배열을 사용하여 div에 양식을 쉽게 묶을 수 있습니다. 결과가 7보다 큰 경우 div를 사용하십시오.

결과를 표 격자보기로 표시하므로이 스크립트를 수정하십시오.

<?php 
echo '<table>'; 
$number_of_thumbs_in_row = 2; 
$result = mysql_query(""); 
$nr = mysql_num_rows($result); 
if (empty($nr)) { 
    $result_final = "\t<tr><td></td></tr>\n"; 
} else { 
    while ($row = mysql_fetch_array($result)) { 
      $result_array[] = "<tr>your data</tr>";   
    } 
    $result_final = "<tr>\n"; 
    foreach ($result_array as $thumbnail_link) { 
     if ($counter == $number_of_thumbs_in_row) { 
      $counter = 1; 
      $result_final .= "\n</tr>\n<tr>\n"; 
     } else 
      $counter++; 
     $result_final .= "\t<td>" . $thumbnail_link . "</td>\n"; 
    } 
    if ($counter) { 
     if ($number_of_photos_in_row - $counter) 
      $result_final .= "\t<td colspan='" . ($number_of_photos_in_row - $counter) . 
       "'>&nbsp;</td>\n"; 
    } 
    $result_final .= "</tr>"; 
} 
echo $result_final; 
echo '</table>'; 
?> 
+0

-1 고대의'mysql_ *'함수 사용을 중단하고, 너무 어려울 경우 적어도 다른 사람들에게 추천하지 마시기 바랍니다. –

+0

글쎄, 그 이유 때문에 양식을 가지고 테이블을 사용하여 아무 의미가 없을 것입니다. 또한 테이블은 결코 사용하지 않는 무언가입니다. 어쨌든, 나는 그런 종류의 mysql_ 함수를 사용하지 않는다. 모든 코드는 내가 질문에 언급 한 함수로 수행된다. 그리고 나는 로그인 시스템을 위해 내 테이블에 사진이 없습니다. 사용자가 있습니다. 어쨌든 고맙습니다. @ xkrv – Roland