Fetch id from Mysqli


Fetch id from Mysqli

每当我点击按钮更新我存储在数据库中的记录时,我一直试图添加一个弹出的Modal,但我在获取id 时遇到了问题

    <?php
                                        //Open a new connection to the MySQL server
                                        $mysqli = new mysqli('localhost','root','','pizzeria');
                                        //Output any connection error
                                        if ($mysqli->connect_error) {
                                        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
                                        }
                                        //MySqli Select Query
                                        $results = $mysqli->query("SELECT id, navn, indeholder, pris FROM pizza");
                                        print '<tr>';
                                        while($row = $results->fetch_assoc()) {
                                            print '<td>'.$row["id"].'</td>';
                                            print '<td>'.$row["navn"].'</td>';
                                            print '<td>'.$row["indeholder"].'</td>';
                                            print '<td>'.$row["pris"].'</td>';
                                            print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';
                                            print '</tr>';                                          
                                            }
                                        // Frees the memory associated with a result
                                        $results->free();
                                        // close connection 
                                        $mysqli->close();
                                        ?>
                                    </tbody>
                                </table>
                            </div>
<div class="modal fade" id="delete-<?php echo $row['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Bekræft Venligst Sletning</h4>
      </div>
      <div class="modal-body">
        Er du sikker på at du vil slette <?php echo $rows['navn']; ?>?
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Luk</button>
        <a href="delete.php?id=<?php echo $rows['id']; ?>" class="btn btn-info btn-sm">Slet</a>
      </div>
    </div>
  </div>
</div>  

有什么我能做的吗?

您试图在中定义的循环之外调用$row变量。在循环中,您需要将$row的数组值分配给新变量。然后,您将能够引用脚本后半部分中的值。

$id_array = array();
$nav_array = array();
$indeholder_array = array();
$pris_array = array();
while($row = $results->fetch_assoc()) {
    // Save the results to our globally scoped arrays
    array_push($id_array, $row["id"]);
    array_push($nav_array, $row["navn"]);
    array_push($indeholder_array, $row["indeholder"]);
    array_push($pris_array, $row["pris"]);
    echo '<td>'.$row["id"].'</td>';
    echo '<td>'.$row["navn"].'</td>';
    echo '<td>'.$row["indeholder"].'</td>';
    echo '<td>'.$row["pris"].'</td>';
    echo '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';
    echo '</tr>';                                          
}

在上面的文章中,我在全局范围中创建了四个新数组,用于存储SELECT查询返回的每个值。

我还将print的实例更改为echo。在生成HTML标记时,您需要使用echo来代替printprint将评估您传递给它的变量,如果您使用它来生成HTML,您可能会看到不稳定的结果。

现在,当您想在脚本的后半部分获取这些值时,您可以使用以下内容:

  <div class="modal-body">
      Er du sikker på at du vil slette <?php echo $nav_array[0]; ?>?
  </div>

请注意,在使用数组时,我所引用的0索引键。更改此项以匹配您希望从结果中获得的值。

您实际上得到了一个PHP语法错误。在while循环内的第5次打印:

print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';

将其更改为

print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#'.$row['id'].'">Redigere</button></td>';