【问题标题】:Using OOP with PDO将 OOP 与 PDO 一起使用
【发布时间】:2018-08-14 08:15:45
【问题描述】:

我正在使用一个从数据库中获取信息并在表格中显示该信息的类,以及一个编辑和删除按钮。当我单击编辑或删除按钮时,我想将$_GET['id'] 添加到链接中,但我对如何完成此操作感到困惑。

public function select($tName,$from,$where=1){
    $key=[];

    $con=$this->con;
    $sql="SELECT $tName FROM $from WHERE $where";
    $data = $con->query($sql);

    $fullRec=[];
    foreach($data as $k=>$rows){
    $fullRec[]=$rows;
    }
    foreach($rows as $k=>$v){
       $key[] = $k;
    }
    //create table
    echo "<table border='1'>";
    //create one row with col name selected!!
    echo "<tr>";
    for($z=0;$z<count($key);$z+=2){
        echo "<td>".$key[$z]."</td>";
    }
    echo "<td>actions</td>";
    echo "</tr>";

    //create one row for each record comes!!
    for($i=0;$i<count($fullRec);$i++){
        echo "<tr>";
        //create one table data for each record comes!!
        for($j=0;$j<count($fullRec[$i])/2;$j++){
            echo "<td>".$fullRec[$i][$j]."</td>";

        }
        echo "<td><a href=\"\">Edit</a><a href=\"?del=".$rows['id']."\">Delete</a></td>";

        echo "</tr>";
    }
    echo "</table>";
}

【问题讨论】:

  • 从 OOP 编程风格来看,这段代码并不是特别好,您将数据库访问和表示层混合到一个类的一个方法中。
  • 数据库访问在其他方法中,但我想在选择方法中捕获信息并显示在表格中,我希望在每一行中删除和编辑
  • @MahdiPartovi 你应该阅读MVC。您应该有一个控制器,它可以准确地告诉浏览器您要加载什么并与模型交互。模型是所有数据库访问的地方,但不是任何类型的 HTML 生成,用户也看不到任何东西。模型将从数据库中提取信息,然后控制器将与这些数据交互以显示视图。视图是用户看到的实际页面。基本上,任何与数据库相关的东西都应该是模型的一部分,而不是别的。

标签: php oop pdo


【解决方案1】:

这样使用在get参数中传递记录的id

echo "<a href='your_route?del=".$rows['id']."'>DELETE</a>";

【讨论】:

  • 好的,但是当我点击删除链接时,在数据库中创建另一个记录为空索引
  • 您必须在后端检查您的删除代码功能
  • 发送到 $_GET 的 id 是 $rows 中的最后一个 id,当我删除 id=1 的行时,将表中的最后一个 id 发送到 $_GET
猜你喜欢
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多