捕获返回的值

时间:2014-03-20 20:07:27

标签: php oop return

这可能是一个愚蠢的问题,但网络上的每个来源似乎都无法完全解释我的复杂大脑的逻辑

有一个编辑页面从链接获得$ _GET [' id']。 我在我的类上有一个函数,详细说明了这个函数,从数据库创建一个值数组,必须填写表单字段来编辑数据。这段代码的简短部分:

public function prel() {
    $this->id= $_GET['id'];
}




public function EditDb () {

    $connetti = new connessionedb();
    $dbc = $connetti->Connessione();

    $query = "SELECT * from anammi.anagrafica WHERE id = '$this->id'";

    $mysqli = mysqli_query($dbc, $query);
    if ($mysqli) {
        $fetch = mysqli_fetch_assoc($mysqli);
        return $fetch;

    }
}

这个阵列(我试图打印)完全可以做我喜欢的事情。 当我需要将它传递给同一个类中的以下函数时,我的痛苦就开始了,这可能会调用父方法来打印表单:

public function Associa() {
    $a = $this->EditDb();

    $this->old_id = $a['old_id'];
    $this->cognome = $a['cognome'];
    $this->nome = $a['nome'];
    $this->sesso = $a['sesso'];
    $this->tipo_socio_id = $a['tipo_socio_id'];
    $this->titolo = $a['titolo']; }


public function Body() {
      parent::Body();
 }

如何通过此$ fetch?

我的实施:

<?php
    require_once '/classes/class.ConnessioneDb.php';
    require_once '/classes/class.editForm';

    $edit = new EditForm();
    $edit->prel();
    if ($edit->EditDb()) {
      $edit->Associa();
      $edit->Body();

2 个答案:

答案 0 :(得分:0)

if (if ($edit->EditDb()) {
  $edit->Associa();
  $edit->Body();) {
      $edit->Associa();
      $edit->Body();

你的Editdb方法返回一个字符串,你正在if语句中检查一个布尔条件。这是一个问题。 使用fetch-

$fetch=$edit->EditDb();
      $edit->Associa();
      $edit->Body($fetch);

答案 1 :(得分:0)

发布完整代码:

public function prel() {
    $this->id= $_GET['id'];
}

public function EditDb () {

    $connetti = new connessionedb();
    $dbc = $connetti->Connessione();

    $query = "SELECT * from table WHERE id = '$this->id'";

    $mysqli = mysqli_query($dbc, $query);
    if ($mysqli) {
        $fetch = mysqli_fetch_assoc($mysqli);
        return $fetch;


    }
}

public function Associa($fetch) {


    $this->old_id = $fetch['old_id'];
    $this->cognome = $fetch['cognome'];
    $this->nome = $fetch['nome'];
    $this->sesso = $fetch['sesso']; //it goes on from there with many similar lines
}

public function Body() {
    $body = form::Body();
    return $body;
}

实施

$edit = new EditForm();
    $edit->prel();
    $fetch=$edit->EditDb();
    $edit->Associa($fetch);
    $print = $edit->Body();
    echo $print;

作为基于父插入表单的编辑表单,我在父表单中添加了一个if,其中查看是否设置了$ _GET [&#39; id]并使用正确的表单操作打印正确的表单标题。这很棘手,但真的令人满意。