Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库表创建多维数组_Php_Mysql_Arrays - Fatal编程技术网

Php 从数据库表创建多维数组

Php 从数据库表创建多维数组,php,mysql,arrays,Php,Mysql,Arrays,我有一个mysql表,其中包含: folder_id (int(11), auto increment) folder_name (varchar) folder_class(varchar) folder_link (varchar) 我想做的是以某种方式在表中循环并存储每一行,如下所示: $packs = array( array( 'Name' => 'DarkUIPack', 'Class' => 'ui',

我有一个mysql表,其中包含:

folder_id (int(11), auto increment) 
folder_name (varchar) 
folder_class(varchar) 
folder_link (varchar)
我想做的是以某种方式在表中循环并存储每一行,如下所示:

$packs = array( array(  'Name'  => 'DarkUIPack', 
                    'Class' => 'ui',
                    'Link'  => 'http://graphicriver.net/item/dark-minimalist-ui-pack/662762' 
                ),
            array(  'Name'  => 'MinimalistIcons', 
                    'Class' => 'min',
                    'Link'  => 'http://graphicriver.net/item/small-minimalist-icons-pack/670469'
                ),
            array(  'Name'  => 'BlueMediaIcons', 
                    'Class' => 'blue',
                    'Link'  => 'http://graphicriver.net/item/blue-media-icons-set/705319'
                ),
            array(  'Name'  => 'MediaIcons', 
                    'Class' => 'med',
                    'Link'  => 'http://graphicriver.net/item/media-icons-set/679835'
                ),
            array(  'Name'  => 'ToTheTopButtons', 
                    'Class' => 'top',
                    'Link'  => 'http://graphicriver.net/item/to-the-top-buttons/673221'
                ),
            array(  'Name'  => 'Sunglasses', 
                    'Class' => 'sun',
                    'Link'  => ''
                ),
            array(  'Name'  => 'RealEstate', 
                    'Class' => 'est',
                    'Link'  => 'http://graphicriver.net/item/simple-real-estate-logo/724697'
                ),
            array(  'Name'  => 'PhotoStudio', 
                    'Class' => 'std',
                    'Link'  => 'http://graphicriver.net/item/photo-studio-logo/724694'
                ),
            array(  'Name'  => 'PayDayCity', 
                    'Class' => 'std',
                    'Link'  => ''
                ),
            array(  'Name'  => 'MoleculeCorp', 
                    'Class' => 'mol',
                    'Link'  => 'http://graphicriver.net/item/molecule-corp-logo/719307'
                ),
            array(  'Name'  => 'ClubbGX', 
                    'Class' => 'gx',
                    'Link'  => ''
                ),
            array(  'Name'  => 'AerialVision', 
                    'Class' => 'aer',
                    'Link'  => ''
                ),
            array(  'Name'  => 'ServiceCompany', 
                    'Class' => 'ser',
                    'Link'  => 'http://graphicriver.net/item/service-company-logo/727091'
                ),
            array(  'Name'  => 'ElectroTech', 
                    'Class' => 'ele',
                    'Link'  => 'http://graphicriver.net/item/electro-tech-logo/720904'
                ),
            array(  'Name'  => 'CreativeStudio', 
                    'Class' => 'cre',
                    'Link'  => 'http://graphicriver.net/item/creative-studio-logo/719494'
                ),
            array(  'Name'  => 'NanoCorp', 
                    'Class' => 'nan',
                    'Link'  => 'http://graphicriver.net/item/nano-corp-logo/719098'
                ),
            array(  'Name'  => 'RehabPlace', 
                    'Class' => 'reh',
                    'Link'  => ''
                ),
            array(  'Name'  => 'MyLocalMix', 
                    'Class' => 'mix',
                    'Link'  => ''
                ),
            array(  'Name'  => 'SevenBySeven', 
                    'Class' => 'sev',
                    'Link'  => ''
                ),
            array(  'Name'  => 'ComingSoon', 
                    'Class' => 'com',
                    'Link'  => ''
                ),
            array(  'Name'  => 'AlienIcons', 
                    'Class' => 'aln',
                    'Link'  => 'http://graphicriver.net/item/alien-icons-set/698515'
                ),
            array(  'Name'  => 'PreloaderPortfolio', 
                    'Class' => 'pre',
                    'Link'  => ''
                ),
            array(  'Name'  => 'BioTech', 
                    'Class' => 'bio',
                    'Link'  => ''
                ),
            array(  'Name'  => 'ConstructionCompany', 
                    'Class' => 'con',
                    'Link'  => ''
                ),
            array(  'Name'  => 'EagleMedia', 
                    'Class' => 'egl',
                    'Link'  => ''
                ),
            array(  'Name'  => 'ElectronicWays', 
                    'Class' => 'elw',
                    'Link'  => ''
                ),
            array(  'Name'  => 'EnvironmentalCompany', 
                    'Class' => 'env',
                    'Link'  => ''
                ),
            array(  'Name'  => 'SecureData', 
                    'Class' => 'sec',
                    'Link'  => 'http://graphicriver.net/item/secure-data-company-logo/907334'
                ),
            array(  'Name'  => 'ConstructSimple', 
                    'Class' => 'cns',
                    'Link'  => 'http://graphicriver.net/item/simple-construction-company-logo/907538'
                ),
            array(  'Name'  => 'ConstructRoof', 
                    'Class' => 'cnr',
                    'Link'  => 'http://graphicriver.net/item/construction-company-logo/907549'
                )
        );  
其中“名称”对应文件夹名称,“类”对应文件夹类,“链接”对应文件夹链接

我在一个类中使用这个,到目前为止,这个类看起来是这样的:

class folder
{
private $connect;

public function __construct() {

    $this->connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

    if (mysqli_connect_errno()) {
        $error = true;
        $message['error'] = true;
        $message['message'] = mysqli_connect_error();
        return json_encode($message);
    }
        else {
            return true;    
        }

}

    public function crtFolder($fldName,$fldClass,$fldLink,$fldPath) {

    $fldName = preg_replace('/\s+/', '', $fldName);

    $fldPN = $fldPath."\\".$fldName;

    $modArray = array(array('1'));

    if ((!is_dir($fldPN))) {
        if(mkdir($fldPN,0777,true)) {

            $sql = "INSERT INTO folders (folder_name,folder_class,folder_link) VALUES (?, ?, ?)";

            if($stmt = $this->connect->prepare($sql)) {
                $stmt->bind_param("sss", $fldName, $fldClass, $fldLink);
                $stmt->execute();
                $stmt->close();
                $error = false;
                $message['error'] = false;
                $message['message'] = "Folder Created | Data Successfuly Inserted";
                return json_encode($message);
            }
                else {
                    $error = true;
                    $message['error'] = true;
                    $message['message'] = "Folder Created | Data Failed To Insert";
                    return json_encode($message);
                }
        }
            else { 
                $error = true;
                $message['error'] = true;
                $message['message'] = "Folder Failed To Create";
                return json_encode($message); 
            }
    }
        else {
            $error = true;
            $message['error'] = true;
            $message['message'] = "Folder Already Exists";
            return json_encode($message);   
        }
}

public function __destruct() {

    $closeConnection = $this->connect->close();

    if($closeConnection) {
        return true;
    }
}
}


我之所以显示这个类,是因为我想在创建数组时保留与创建其他方法相同的方法。因为我在谷歌上找到了一些东西,但它是从多个表中生成一个数组。我只有一张桌子。

试试这样:

$result = SOMETHING_FROM_QUERY;
$packs  = new array();
while ($row = mysql_fetch_assoc($result)) {
    array_push($packs,array('Name'  => $row['folder_name'], 'Class' => $row['folder_class'], 'Link'  => $row['folder_link']));
}
按照您的格式:

if($stmt = $this->connect->prepare($sql)) {
    $stmt->bind_param("sss", $fldName, $fldClass, $fldLink);
    $stmt->execute();

    $result = array();

    while ($stmt->fetch()) {
        $result[] = array('Name' => $fldName, 'Class' => $fldClass, 'Link' => $fldLink);
    }

    print_r($result);
}

它应该可以工作。

将下面给定的函数写到您的类中。希望这会有所帮助

public function getTableData(){

 $sql = "SELECT * FROM folders";
 if($stmt = $this->connect->prepare($sql)) {

     $stmt->execute();
     $stmt->close();
     $arrFinalArray = array();
     while ($arrFolder = $stmt->fetch()){

        $arrFinalArray[] = array(
                    'Name'  => $arrFolder['folder_name'], 
                    'Class' => $arrFolder['folder_class'],
                    'Link'  => $arrFolder['folder_link']
        );


     }
  }
}

很抱歉,你想通过MySQL响应创建多个数组?所以我找到了一种方法,我不确定它是否正确。。。下面是代码
$sql=“从文件夹中选择文件夹名称、文件夹类、文件夹链接”;如果($stmt=$this->connect->prepare($sql)){$stmt->bind_result($fldName,$fldClass,$fldLink);$stmt->execute();$final=array();而($row=$stmt->fetch()){$stmt->bind_result($fldName,$fldClass,$fldLink);$final[]=array('Name'=>$fldName,'Class'=>$fldClass,'Link'=>$fldLink);}$stmt->close();print_r($final);}
让我知道我是否在这样做wright:DDoS它能工作吗?从我的立场来看,它看起来很好。不,数据库已经填充了大约30行。现在我想从表中获取所有数据,并将其放入一个数组中,就像我有$packs一样。这应该可以尝试。
$pack
是一个关联数组数组,我从您的c中复制粘贴ode.因此,如果您的代码尊重您的规范,那么这个代码也应该。编辑代码以从
$行中获取值
不再硬编码,foreach不应该在其中包含'as',因为如果我将其粘贴到dreamweaver中,它会告诉我有语法错误?哦,这是我的错误…我更新了我的帖子..然后忘记将循环更改为w现在……请再次查看我的帖子$value未定义。您的意思是$arrFolder。现在我得到了这个错误:
警告:mysqli_stmt::fetch()需要0个参数,1个参数在第99行的C:\xampp\htdocs\xworkflow\test.php中给出,
而($arrFolder=$stmt->->fetch($arresult)){
…我稍微更改了代码…从fetch()中删除参数。请立即尝试此操作不起作用,我尝试了
$sql='SELECT*FROM folders'
,但它告诉我,我没有准备好的语句中的字段数…尝试
选择文件夹名称、文件夹类、文件夹链接FROM folders
相同的事情,如果我这样做,它将告诉我相同的事情,如果我添加文件夹名称=?…否事情发生了。。。