2013-07-10 2 views
0

그래서 내 목표는 테이블에 몇 가지 mysql 정보를 출력하는 것입니다. 18 번째 레코드마다 새 열을 시작하고 싶습니다. 다음은 현재 코드입니다.Mysqli 테이블에 출력

$hostname = "localhost"; //SET SERVER/HOSTNAME 
    $dbusername = "username"; //SET DATABASE USERNAME 
    $dbname = "database"; //SET DATABASE NAME 
    $dbpassword = "password"; //SET DATABASE USERNAME 
    $link = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname); 

    if (!$link) 
    { 
     die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); 
    } 

    $continent='Africa'; 

    //GET AFRICA Countries 
    $sql = "SELECT country FROM countries WHERE continent = '$continent';"; 
    $result = mysqli_query($link, $sql, MYSQLI_USE_RESULT); 
    if (!result) 
    { 
     echo 'Error: ', $mysqli->error; 
    } 
     while($row = $result->fetch_assoc()){ 
     $country = $row['country']; 
     echo "$country<br>"; 
    } 

지금 바로 목록을 직선으로 출력하지만 x 번 후에는 새 열을 시작하고 싶습니다. 그렇게 할 수 있습니까?

+0

할 수는 있지만 x 시간이 지나면 새 행을 시작하는 것이 더 쉽습니다. –

+0

좋아, 어떻게 할 수 있니? – dkeeper09

답변

-1

주석에서 설명한대로 수행 할 수 있지만 x 시간이 지나면 새 행을 시작하는 것이 더 쉽습니다. 필요한 행함으로써 테이블을 이용

  • 디스플레이 필요한 열의 전체 행을 분할함으로써 $result->num_rows
  • 계산 열을 사용

    1. 카운트 합계 행
    2. 사용 modulus operator 새로운 행을 생성하는 경우 $i % $columns ==0

    TRY

    $requiredRows= 18; 
    $rows = $result->num_rows ; 
    $columns = ceil($rows/$requiredRows); 
    $i = 0; 
    while($row = $result->fetch_assoc()) 
        { 
        if ($i == 0) { 
         echo "<table><tr><td>"; 
        } 
        elseif ($i % $columns) {// <> 0 
         echo "</td>\n"; 
         echo "<td>\n"; 
        }else{//$i % $columns == 0 
         echo "</td>\n"; 
         echo "</tr>\n"; 
         echo "<tr>\n"; 
         echo "<td>\n"; 
        } 
        echo $row['country']; 
        $i++; 
    } 
    

    필요하면 열 번호를 하드 코드 할 수도 있습니다.