【问题标题】:How to convert Mysqli results into an array in OO Php如何在 OO Php 中将 Mysqli 结果转换为数组
【发布时间】:2012-08-09 09:24:52
【问题描述】:

我想从数据库中的一个表中检索数据,并将结果显示在一个数组中,如下表所示。

array("1"=>​​"值 1", "2"=>"值2") 这是我尝试使用的函数,但是当我尝试显示数组时出现错误。请我在这方面需要帮助。我是 OO Php 的新手。

<?php
class query {

public function listfields (){
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
    $this->fields[$row["id"]] = $row["name"];
    }
    $result->free();

}

public function fields(){
return $this->fields;   
}
        }


$list = new query;
$list->listfields();
$field1 = $list->fields();

echo $field1;
?>

【问题讨论】:

  • 发布您遇到的错误通常非常有用。
  • @muhammad-zeeshan 感谢您的回复。 print_r($field1) 现在以这种形式返回数组: Array ( [1] => Engineering [6] => Physical Sciences [2] => Technology );有没有办法将其转换为以这种形式显示 array("1"=>​​"Engineering", "6"=>"Physical Sciences")
  • [2] => 技术怎么样?
  • @Muhammad-Zeeshan 很抱歉它也会被包含在内 array("1"=>​​"Engineering", "6"=>"Physical Sciences", "2"=>"Technology")跨度>
  • @andychukse:已经是数组了,convert是什么意思?

标签: php mysql arrays oop mysqli


【解决方案1】:

试试这个。

<?php

class query {

public function listfields (){

 $fields = array();
 $rowcnt =1;
 $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
      $this->fields[$row["id"]] = $row["name"];
     //$this->fields[$rowcnt] = $row["name"];   // if you want different indexing.
      $rowcnt++;
 }
 $result->free();
}

public function fields(){
    return $this->fields;   
}
}
$list = new query();
$list->listfields();
$field1 = $list->fields();
var_dump($field1);
?>

【讨论】:

  • @MuhammadZeeshan 我进行了更改。我进入了 javascript+php 模式。 :)
【解决方案2】:

您需要一个可以访问的属性字段,而不是您的函数字段。 此外,我建议使用 getter 和 setter 而不是公共属性,我相信你会发现如何。

这将返回表单数组("1"=>​​"Value 1", "2"=>"value2") 中的数据。

class query {

public $fields;

public function fillfields ()
{
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
         $this->fields[] = $row["name"];
    }
    $result->free();
}

$list = new query;
$list->fillfields();
$field1 = $list->fields[1];

echo $field1;

【讨论】:

    猜你喜欢
    • 2017-05-03
    • 2011-03-22
    • 2012-01-20
    • 1970-01-01
    • 2011-12-14
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多