从数据库到可编辑形式的数组

时间:2018-04-25 08:28:54

标签: php sql database mariadb

我想创建一个表单,我可以从我从数据库中获取的数组中编辑信息。然后将它们放在带有字符串的表单中,以便我可以从数据库中编辑每个类别的值,然后将更改的信息发送到数据库。当我使用此命令时

$db = new PDO('mysql:host=mariadb.spectrogon.local;dbname=gitter;charset=utf8', 'gitter_in', 'gitter_in');
$sql = "call hämta_artikel_info('715.702.930')";
$result = $db->query($sql);
$printable = $result->fetchAll();
print_r($printable);

我得到以下数组

     (
        [artikel_nr] => 715.702.930
        [0] => 715.702.930
        [points] => 50x50 5 
        [1] => 50x50 5 
        [points2] => 50x50 5 
        [2] => 50x50 5 
        [scale] => 1 + 0.75
        [3] => 1 + 0.75
        [energy] => 70
        [4] => 70
        [value] => 5.000
        [5] => 5.000
        [nollan] =>
        [6] =>
        [approved_from] =>
        [7] =>
        [approved_to] =>
        [8] =>
    )

现在我想把我从这个数组中得到的所有信息都放在一个表格中。然后我就可以编辑那些信息了

以下SQL:" call hämta_artikel_info(715.702.930)"据我所知,应该是select程序

我的完整代码atm。

    <?php

echo "test";

error_reporting(E_All);
error_reporting(E_ERROR | E_WARNING | E_PARSE);



$db = mysqli_connect('mysql:host=mariadb.spectrogon.local;dbname=gitter;charset=utf8', 'gitter_in', 'gitter_in');
$connection = new Connection;
$db = $connection->openConnection();

$stmt = $db->prepare("call hämta_artikel_info('715.702.930')");
$stmt->execute();
print_r($stmt);



echo "
    while($results = $stmt->fetch()){  
    <form name='form' method='post' action=''>
    <tbody>
    <tr>
    <td><input type='text' name='id' readonly class='form-control-plaintext' value=" . $results['artikel_nr'] ."></td>
<td><input type='submit' name='update' value='Update' class='form-control'></td>";



 if(isset($_POST['update']))
{    
    $var= $_POST['var'];
    if(empty($var){
   echo"variable is empty ";
}

    else {    
        $stmt = $db->prepare("UPDATE table_name SET col_name='" .$var. "'");
}
 $stmt->execute();
        @header("Location: stackoverflow.php");
    }
}


?> 

请记住,我对编程非常陌生,所以非常感谢详细解释。

3 个答案:

答案 0 :(得分:2)

通过while循环,您可以从DATABASE获取数据,但是必须在括号内传递fetch_assoc()参数,如下所示:

while ($row = $result->fetch_assoc()) {?>    
        <td>
            <input type='text'value="<?php echo $row['artikel_nr'];?>">
        </td>

    <?php}

谢谢!

答案 1 :(得分:0)

将foreach循环视为

foreach($printable as $data) {
 echo $printabel->username;

}

单独定义每件事 $printable->your database fields here;

答案 2 :(得分:0)

$result = $stmt->get_result();
echo "<form name='form' method='post' action =''>
         <tbody>";
     while ($row = $result->fetch_assoc()) {?>    
        <td>
            <input type='text' name='id' readonly class='form-control-plaintext' value="<?php echo $row['artikel_nr'];?>">
        </td>

    <?php}
    echo "<td>
            <input type='submit' name='update' value='Update' class='form-control'>
        </td>
    </tbody>
</form>";