基于具有空单元格的数据库创建表

时间:2016-02-11 07:11:28

标签: php mysql mysqli

我有一个包含数据的数据库,该数据应该在哪个表列中,另一列应该为空

 =====================
|   data   |  column  |
 =====================
|  orange  |    1     |
|  apple   |    2     |
|  banana  |    6     |
 =====================

for($i = 1;$i <= 7;$i++) {  
$stmt->fetch(); 
echo ($i == $column ? '<td>' . $data . '</td>' : '<td></td>');
}

Output:
 =========================================================
|   1    |   2   |   3   |   4   |   5   |   6    |   7   |
=========================================================
| orange | apple |       |       |       | banana |       |
 =========================================================

到目前为止,如此好,并且填充了第1列的所有行都正常工作

BUT !!!

 =====================
|   data   |  column  |
 =====================
|  orange  |    3     |
|  apple   |    4     |
|  banana  |    5     |
 =====================

for($i = 1;$i <= 7;$i++) {  
$stmt->fetch(); 
echo ($i == $column ? '<td>' . $data . '</td>' : '<td></td>');
}

Output:
 ========================================================
|   1   |   2   |   3   |   4   |    5   |   6   |   7   |
=========================================================
|       |       |       |       | banana |       |       |
 ========================================================

并且第一列为空的所有行都无法正常工作!!!

我也想多次重复这次

 =============================================================
|   1    |    2   |   3    |   4   |    5   |    6   |  7     |
 =============================================================
| orange |  apple |        |       |        | banana |        |
 =============================================================
|        |        | orange | apple | banana |        |        |
 ============================================================= 
|        | orange |        | apple |        |        | banana |
 =============================================================

谢谢你的帮助

修改

完整的代码:

<?php

$query = "SELECT  column, data FROM fruits";

if ($stmt = $conn->prepare($query)) {

    $stmt->execute();
    $stmt->bind_result($column, $data);

?>

<table border="1" style="background-color:#FFFFFF;border-collapse:collapse;border:1px solid #000000;color:#000000;width:100%; text-align: center; vertical-align: center" cellpadding="3" cellspacing="3">
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
    </tr>
    <tr>

<?php   

for($i = 1;$i <= 7;$i++) {

    $stmt->fetch(); 
    echo ($i == $column ? '<td>' . $data . '</td>' : '<td></td>');
    }

    $stmt->close();

    } else {
        echo $conn->error;
    }

$conn->close();

?>

    </tr>
</table>

1 个答案:

答案 0 :(得分:1)

试试这个,

 /* prepare statement */
if ($stmt = $mysqli->prepare($query)) {
$stmt->execute();

/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);

/* fetch values */
while ($stmt->fetch()) {
   $myarray[$col1]=$col2;
}
for ($i=1; $i < 10; $i++) { 
    if(array_key_exists($i, $myarray)){
      echo '<td>'. $myarray[$i] .'</td>';
    }else{
      echo '<td></td>';
    }
}
/* close statement */
$stmt->close();
}