2013-02-22 3 views
0

Я хочу показать результат извлечения mysql в 2 coloumns. У меня есть записи в базе данных Name, Description и Price. Он возвращается какрезультат выборки в 2 столбцах

Name 
Des 
Price 

Name 
Des 
Price 

Но то, что я хотел бы в качестве макета заключается в следующем:

Name  Name 
Des  Des 
Price Price 

Name  Name 
Des  Des 
Price Price 

Мой код выглядит следующим образом:

<?php 
while($row=mysql_fetch_array($result)) 
{ 
?> 
    <tr> 
     <td><img src="<?php echo $row['picture']?>" /><br /> 
     <b><?php echo $row['name']?></b><br /> 
       <?php echo $row['description']?><br/> 
        Price:<big style="color:green"> 
        Rs.<?php echo$row['price']?></big><br /><br /> 
       <input type="button" value="Add /> 
     </td> 
    </tr> 
    <tr><td colspan="2"><hr size="1" /></td> 
<?php } ?> 
+0

'ext/mysql' устарел и больше не поддерживается. Используйте 'PDO_MYSQL' или' MySQLi'. http://php.net/en/mysql-connect – KingCrunch

+0

где второй tr заканчивается. ?? –

+0

Считаете ли вы использование css для форматирования? –

ответ

0

Вы можете использовать эту функцию

/** 
*@param array your array data 
*@param integer if 1 will wertical if > 1 will horizontal 
*@param integer count columns 
*@param integer amount of indentation 
function drawTable($data, $type=1, $columns=10, $tabs=0) 
{ 
    $tbl = null; 

    if($tabs === false) 
    { 
     $tr = $td = null; 
    } 
    else 
    { 
     $tr = "\n".str_repeat("\t", $tabs); 
     $td = $tr."\t"; 
    } 

    if($type == 1) 
    { 
     $all_columns = array_chunk($data, ceil(count($data)/$columns)); 
     for($i = 0, $c = count($all_columns[0]); $i < $c; $i++) 
     { 
      $tbl .= $tr.'<tr>'; 

      for($si = 0; $si < $columns; $si++) 
      { 
       $tbl .= $td.'<td>'.(isset($all_columns[$si][$i]) ? $all_columns[$si][$i] : '&nbsp;').'</td>'; 
      } 

      $tbl .= $tr.'</tr>'; 
     } 
    } 
    else 
    { 
     for($i = 0, $n = 1, $d = ceil(count($data)/$columns) * $columns; $i < $d; $i++, $n++) 
     { 
      if($n == 1) 
       $tbl .= $tr.'<tr>'; 

      $tbl .= $td.'<td>'.(isset($data[$i]) ? $data[$i] : '&nbsp;').'</td>'; 

      if($n == $columns) 
      { 
       $n = 0; 
       $tbl .= $tr.'</tr>'; 
      } 
     } 
    } 

    if($tabs !== false) 
     $tbl .= "\n"; 

    return $tbl; 
} 

Как использовать

$data = array(); 
$query = mysql_query('Your sql query'); 
while($row = mysql_fetch_row($query)) 
{ 
    $data = array_merge($data, $row); 
} 

echo '<table>'.drawTable($data, 1, 2, 0).'</table>'; // Vertical output 
Смежные вопросы