从Mysqli获取id

时间:2015-04-10 02:44:12

标签: php mysql mysqli

每当我点击一个按钮来更新我存储在数据库中的记录但我无法获取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>  

我有什么办法可以解决它吗?

2 个答案:

答案 0 :(得分:1)

您尝试在其定义的 while 循环之外调用$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索引键。更改此项以匹配您希望从结果中获得的值。

答案 1 :(得分:-1)

您实际上遇到了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>';