gpt4 book ai didi

php - 当我在数组中获取时,每列仅显示一个元素

转载 作者:行者123 更新时间:2023-11-29 12:04:37 24 4
gpt4 key购买 nike

当我从数组中的数据库中获取数据时,它只显示每一列的一个元素。我正在使用以下查询:

 $stmt = $conn_obj->select(' user ',' * ',' status = "updated" ', $order=NULL, $group=null, $fromRecordNum.','.$recordsPerPage);

选择功能如下:

private function tableExists($table) {
//$this->con = $this->createconnection();
$query = 'SHOW TABLES FROM ' . $this->db . ' LIKE "'.trim($table).'"';
//echo ''.$query;
$tablesInDb = mysqli_query($this->con, $query);
if ($tablesInDb) {
if (mysqli_num_rows($tablesInDb) == 1) {
//echo ''.mysqli_num_rows($tablesInDb);
return true;
}
else {
return false;
}
}
}
public function select($table, $row = '*', $where= null,$order=null,$group=null, $limit=null, $join=null){
//$this->con = $this->createconnection();
//echo $join;
$q = 'select'.$row.' from '.$table;
//print_r($q);
if($join != null){
$q .= ' join '.$join;

}
if($where != null){
$q .= ' where '.$where;
print_r($q);
}
if($group != null){
$q .= 'group by'.$group;
//print_r($q);
}
if($order != null){
$q .= 'order by'.$order;

}
if($limit != null){
$q .= 'limit '.$limit;
print_r($q);
}

if ($this->tableExists($table)) {
$query = mysqli_query($this->con, $q) or die(mysql_error());
//print_r($query);
if ($query) {
$this->numResults = mysqli_num_rows($query);
//echo $this->numResults;
for ($i = 0; $i < $this->numResults; $i++) {
$r = mysqli_fetch_array($query);
$key = array_keys($r);

for ($x = 0; $x < count($key); $x++) {
// Sanitizes keys so only alphavalues are allowed
if (!is_int($key[$x])) {
if (mysqli_num_rows($query) > 1)
$this->result[$i][$key[$x]] = $r[$key[$x]];
else if (mysqli_num_rows($query) < 1)
$this->result = null;
else
$this->result[$key[$x]] = $r[$key[$x]];
}
}
}
//print_r($this->result);
return $this->result;
} else {

return false;
}
} else{

return false;
}
}

我使用 foreach 循环获取它,如下所示:

foreach($stmt as $row)
{
echo $row['user_Id'];
}

输出= 7 t : 2 2 2 u W u 2
如果我用 print_r($row) 打印整个数组,那么
输出是= test::1 2015-07-30 11:42:09am 2015-07-29 12:42:09pm 2015-07-30 12:28:57pm 更新call_activated uninstall 2015-07-30 12:31:07pm .

如果数据库只有一行具有指定的查询,则出现上述问题。
但在具有指定查询的两行的情况下,它可以正常工作,如我所愿。

最佳答案

对于多个结果,您将获得一个元素数组的数组。
对于单个结果,您将获得一个元素数组。因此,对于单个元素,一个 foreach 循环太多了。如果在你的例子中:

foreach($stmt as $row) {  
echo $row['user_Id'];
}

假设 $stmt 包含查询的返回值:

foreach($stmt as $row) {
if (isset($row['user_Id'])) {
// do something with one single result record
} else {
foreach ($row AS $innerRow) {
// do something with each result record
}
}
}

关于php - 当我在数组中获取时,每列仅显示一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com