MySQLでselectした結果の配列がおかしい - PHPプロ!Q&A掲示板
結果をvar_dumpで出力してみましたが意図しない結果になり困っています。
ソースを載せますので皆さんアドバイスお願いします。
index.php
-----------------
require 'db.php';
$ra="";
$table="sample_tbl";
$columns = array(
'id' => "id",
'name' => "name",
);
$where="id = 1";
$opt = "order by date";
func_select(&$ra,$table,$columns,$where,$opt);
//結果の配列を表示
var_dump($ra);
db.php
-----------------
function func_select(&$ra,$table,$cols=array(),$where='',$opt=''){
global $C;
$a=array();
if(count($cols)>0){
$sql="SELECT ".implode(',',$cols);
if(strlen($table)>0){
$sql.=" FROM ".$table;
}
if(strlen($where)>0){
$sql.=" WHERE ".$where;
}
if(strlen($opt)>0){
$sql.=" ".$opt;
}
$sql.=";";
$rs=mysql_query($sql);
if(!$rs){
echo 'DB error.(u1)';
if($C['debug_mode']){
echo htmlspecialchars($sql);
}
return false;
}
$nors=mysql_num_rows($rs);
if($nors>0){
while($a[]=mysql_fetch_array($rs)){
}
$ra=$a;
}
return $nors;
}else{
return false;
}
}
結果の配列は以下です。今回は1件しか取得されていないので$norsには1が入ります。
array(2) { [0]=> array(4) { [0]=> string(1) "1" ["id"]=> string(1) "1" [1]=> string(11) "著者[性]" ["name"]=> string(11) "著者[性]" } [1]=> bool(false) }
添え字が違うだけの同じ値が格納されてしまっています。
二次元配列になってしまっているし。
なぜなんでしょうか?
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。