PHP と MySQLI を使用して、配列にせずに DB から 1 つの詳細 (誰かの ID) を選択する方法があるかどうかを知りたいです。
質問する
8997 次
5 に答える
3
結果をオブジェクトに入れてから、列を選択できます。たとえばname
、クエリから列を選択するには、次を使用できます
$query = $mysqli->query("SELECT * FROM `table` WHERE `id` = '1'");
echo $query->fetch_object()->name;
より一般的なものを使用する代わりに
$query = $mysqli->query("SELECT * FROM `table` WHERE `id` = '1'");
$data = $query->fetch_array();
echo $data['name'];
クエリが複数の行を返す場合は、結果の配列セットと同様に、これを while クエリに入れることができます。
于 2012-12-13T21:20:37.150 に答える
1
group_concat() を使用します。
$query = 'SELECT GROUP_CONCAT(name SEPARATOR ", ") FROM tblUser';
if($result = $mysqli->query($query)) {
$row = $result->fetch_object();
echo $row['name'];
}
これにより、1 つの値 (テーブル内の各ユーザー ID のカンマ区切りのリスト/文字列) を含む 1 つの列 (名前) が返されます。
表の例:
tblUser
+--------+-----------+
| userid | name |
+--------+-----------+
| 3 | Joe |
| 4 | Mike |
| 5 | Sharon |
+--------+-----------+
上記のクエリを使用すると、以下が返されます。
+----------------------+
| name |
+----------------------+
| `Joe, Mike, Sharon` |
+----------------------+
于 2012-12-13T21:19:23.200 に答える
0
function getColumn($field,$table){
$db=new mysqli("server","user","pass","db");
$rs=$db->query("select $field from $table");
return $rs;
}
//then call it as follows:
$r=getColumn("fieldName","tableName");
while($col=$r->fetch_array()){
echo "$col[0]";
}
于 2012-12-13T21:27:44.880 に答える
0
function getColumn($field,$table){
$db=new mysqli("server","user","pass","db");
$rs=$db->query("select $field from $table");
$str="";
while($row=fetch_array()){
$str.=$row[0]."<br/>";
}
return $str;
}
//then call it as follows:
$col=getColumn("fieldName","tableName");
echo $col;
}
于 2012-12-13T22:12:48.170 に答える
0
それは可能ではありません。データベースは列と行を扱うため、ほぼすべての API は少なくともリスト (配列) を使用した表現を持っています。
ただし、単一の結果を比較的迅速に簡単に取得できます。
// Query results a single result
$result = $mysqli->query("SELECT somecolumns FROM table WHERE somecondition");
$row = $result->fetch_row();
echo $row[0]; // The desired field
于 2012-12-13T21:23:52.287 に答える