I have a mysql table which contains is:
我有一个mysql表,包含:
folder_id (int(11), auto increment)
folder_name (varchar)
folder_class(varchar)
folder_link (varchar)
What I want to do is somehow loop through the table and store each row like this:
我想做的是循环遍历表并像这样存储每一行:
$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'
)
);
where 'Name' corresponds to folder_name, 'Class' to folder_class and 'Link' to folder_link.
其中“Name”对应folder_name,“Class”对应folder_class,“Link”对应folder_link。
I'm using this within a class and the class looks like this till now:
我在一个类中使用这个,这个类现在看起来是这样的:
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;
}
}
}
}
I'm showing the class because I want to keep the same method for the creating the array as the other methods are created. Because I found something on Google, but it was making an array from multiple tables. I only have one table.
我正在显示类,因为我希望为创建数组保留与创建其他方法相同的方法。因为我在谷歌上找到了一些东西,但它是从多个表组成数组的。我只有一张桌子。
3 个解决方案
#1
3
Write below given function in to your class. Hope this will help things.
把给定的函数写在你的类下面。希望这能有所帮助。
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']
);
}
}
}
#2
1
Following your format:
你的格式:
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);
}
It should work.
它应该工作。
#3
1
Try something like this :
试试这样的方法:
$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']));
}
#1
3
Write below given function in to your class. Hope this will help things.
把给定的函数写在你的类下面。希望这能有所帮助。
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']
);
}
}
}
#2
1
Following your format:
你的格式:
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);
}
It should work.
它应该工作。
#3
1
Try something like this :
试试这样的方法:
$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']));
}