大家好。我目前正在开发一个处理用户登录的登录类。我通过使用以下代码将其作为对象创建,从数据库中获取我的数组列表:
$dBquery = new Selection();
$dBquery->setUpSelection($sqlConstructor);
$sqllogin = $dBquery->sQLResults();
print_r($sqllogin);
来自print_r
,这就是回归:
Array (
[0] => Array (
[0] => 1
[uSID] => 1
[1] => 0
[level] => 0
[2] => a
[Username] => > a
[3] => a
[password] => a
[4] => a
[email] => a
[5] => 0
[lockedID] => 0
)
)
现在,从它的外观来看,它是一个数组中的数组,这有点令人困惑,因为创建这个数组的代码没有发起(我可能是错的,不幸的是,我需要指针) 。设置数组的代码是:
private function selectAndQuery() {
//Select query with AND
$sql2 ="SELECT * FROM ".$this->table." WHERE ".$this->column."='".$this->where."' AND ".$this->andColumn."='".$this->sqlAnd."' ";
$a = mysql_query($sql2) or die(mysql_error());
//get number of rows to determine if there are any results
if (mysql_num_rows($a) < 1) {
//TO DO no results returned.
$this->sQLResults();
} else {
//if there's a result store it into an array.
while ($row = mysql_fetch_array($a)) {
$this->sqlResultsArray[] = $row;
}
$this->sQLResults();
}
}
所以我向你们提出的问题是,是什么导致阵列变得尺寸化,我该怎么办才能阻止它呢?我知道我可以从多维数组中提取信息,但我试图让事情变得尽可能简单。
非常感谢任何帮助。 非常感谢。
答案 0 :(得分:1)
$this->sqlResultsArray[] = $row; //This is causing you to get multidimensional array
since mysql_fetch_array returns an array.So if you are sure that you will get only one
row.you can use below given mehod instead
if(mysql_num_rows() = 1){$this->sqlResultsArray = mysql_fetch_array($a);}
答案 1 :(得分:0)
您正在使用mysql_fetch function_array()函数,该函数将数据行作为数组返回。然后将此数组插入到结果数组中,所以......是的...多维因为你以这种方式获取/构建它。
答案 2 :(得分:0)
while ($row = mysql_fetch_array($a)) {
$this->sqlResultsArray[] = $row;
$ row是一个数组。您将此添加到sqlResultsArray。
答案 3 :(得分:0)
您的选择只是返回与查询参数匹配的所有行的数组,因此在索引0处您将拥有第一行,索引1处于第二行,依此类推。
如果你知道最多会有一个结果,你可以这样做:
$sqllogin = $dBquery->sQLResults();
$sqllogin = $sqllogin[0];