Mysql到数组不起作用

时间:2014-01-28 15:56:22

标签: php mysql arrays

嘿大家我有点问题!我知道它的一些简单但由于某种原因我无法弄明白(阵列正在踢我的屁股!)

我希望结果显示如下......

title 1 | title 2 | title 3 | title 4 |
Title 5 | title 6 | title 7 | title 8 |

但由于某些原因,当代码运行时,它显示如下......

t | i |

它为表格的每个单元格拼出标题1而不是整个单词。 我做错了什么?

$result = mysqli_query($con,"SELECT title FROM donuts"); 
$rows = 2; 
$cols = ceil(count($result)/$rows); 
$row = mysqli_fetch_array($result); 
echo $result=$row['title']; 
echo "<table border='1'>"; 
$i=0; 
for($tr=1;$tr<=$rows;$tr++) {
   echo "<tr>"; 
   for($td=1;$td<=$cols;$td++) {  
       if (isset($result[$i])) {
           echo "<td>".$result[$i]."</td>"; $i++;
       } 
   }
   echo "</tr>";
} 
echo "</table>"; 

请注意,该表对行数的列数没有限制。

  

链接到工作示例http://lakeside.donavonscreativeinnovations.com/

3 个答案:

答案 0 :(得分:2)

你必须遍历结果。像这样:

// $numrows = mysqli_num_rows($result); // Count rows if you want to know

while( $row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) { // Loop through rows
    echo "<tr>";
    foreach($row as $key => $value) { // Loop through columns
        echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
}

此时你循环遍历列的每个字符。

答案 1 :(得分:0)

你可能想这样试试:

$result = mysqli_query($con, "SELECT title FROM donuts");

echo '<table>';

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{

  echo '<tr>';

  foreach ($row as $cell)
  {
    echo '<td>' . $cell . '</td>';
  }

  echo '</tr>';

}

echo '</table>';

答案 2 :(得分:0)

这是你的问题:

echo $result=$row['title']; 

然后使用代码循环显示:

$i=0; for($tr=1;$tr<=$rows;$tr++)
              { echo "<tr>"; 
                    for($td=1;$td<=$cols;$td++)
                       {  
                   if (isset($result[$i])) {
                     **echo "<td>".$result[$i]."</td>"; $i++;**

因此,您循环输出该字符串中每个字符的字符串。