2016-05-17 6 views
2

ここで、スタックオーバーフローに関する私の最初の質問です。mysqlクエリが1つのカラムを選択します。ここでは1つの結果しか返しません。

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $sql = "SELECT nodeurl FROM ownership where userid = 'jgm'"; 

$stmt = $conn->prepare($sql); 
$stmt->execute(); 
     $config = $stmt->fetch(); 
$xx = sizeof($config); 

echo var_dump($config); 

MySQLのテーブルは、このようなものです:

id - nodeurl - userid 
----------------------- 
1 - url_a - jgm 
2 - url_b - jgm 
3 - url_c - seb 
4 - url_d - jgm 

私は、クエリを行う場合:"SELECT nodeurl FROM ownership where userid = 'jgm'"を私は、配列url_aで取得するには、結果を期待url_bとurl_d

とI場合てります'seb'のためにしてください私は戻ってくださいurl_c

私は私のmysqlクライアントコンソール経由でクエリを実行しています、それはうまく動作します。私は私のPHPを介してコードを実行しているとき、私は最初の結果(1行のみ)を受信します。

私は完全にそれに固執しています。

+0

['PDOStatement :: fetch()'](http://php.net/manual/en/pdostatement.fetch.php)は結果のいずれかを返します。すべての結果を得るには、['PDOStatement :: fetchAll()'](http://php.net/manual/en/pdostatement.fetchall.php)を使うことができます。 –

答えて

1

ステートメントが複数の行を返す場合は、すべてのデータを配列に戻す関数を使用する必要があります。 my tables

Actualy:私のために私は 1は、「ノード」、他の は

ノードはこのようなものです「ノードの設定」である私のデシベルで2つのテーブルを持っているFETCH_ASSOCに

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $sql = "SELECT nodeurl FROM ownership where userid = 'jgm'"; 

$stmt = $conn->prepare($sql); 
$result = $stmt->execute(); 
while($config = $result->fetch_assoc()){ 
$xx = sizeof($config); 

echo var_dump($config); 
} 
+0

これは非常にうまくいきました。 – JohnyGab

+0

私の答えがあなたを助けたら、投票して、受け入れられた答えとして自由に選んでください:) – Ponilz

1

を使用したいですこれは私のコードです

$sql = "SELECT nodeurl FROM ownership where userid = 'jgm'"; 

$stmt = $conn->prepare($sql); 
$stmt->execute(); 
echo "<select>"; 
while($config = $stmt->fetch(PDO::FETCH_ASSOC)){  
    echo "<option value='".$config['nodeurl']."'>".$config['nodeurl']."</option>"; 
} 
echo "</select>"; 

} 

これは、すべてのURLのドロップリストを作成します'jgm'が所有しています(私はもちろんそれを変数で置き換えます)。各オプション値がURL自体であることはOKですが、各オプションのラベルは、URLに対応するテーブル「ノード名」の名前にすることをお勧めします。選択します。

関連する問題