2016-05-22 9 views
0

に1つの結果を返します:それは私にこのクエリ構築MySQLは唯一の私は、このPHPコードを持っているPHP

$queryGO = "SELECT * from (SELECT g.go as GO, a.gen as Gen, g.descr as Description 
          FROM geneOntology g, $tabla a where g.go=a.go) resultado 
          WHERE resultado.go = '$go'"; 

$result = mysql_query($queryGO, $db); 
$items = mysql_affected_rows($db); 
$row = mysql_fetch_array($result); 

:PHPで

SELECT * from (SELECT g.go as GO, a.gen as Gen, g.descr as Description 
FROM geneOntology g, goHuman a where g.go=a.go) resultado 
WHERE resultado.go = 'GO:0000012' 

を、それだけで1つのアイテム(および行)を返します。しかし、私が直接端末でクエリを実行すると、15個のレジスタがスローされます。

+------------+--------+----------------------------+ 
| GO   | Gen | Description    | 
+------------+--------+----------------------------+ 
| GO:0000012 | APLF | single strand break repair | 
| GO:0000012 | APTX | single strand break repair | 
| GO:0000012 | E9PIP4 | single strand break repair | 
| GO:0000012 | E9PJ82 | single strand break repair | 
| GO:0000012 | E9PLZ0 | single strand break repair | 
| GO:0000012 | E9PP57 | single strand break repair | 
| GO:0000012 | E9PQ18 | single strand break repair | 
| GO:0000012 | H0YEW9 | single strand break repair | 
| GO:0000012 | LIG4 | single strand break repair | 
| GO:0000012 | M0R2N6 | single strand break repair | 
| GO:0000012 | Q6ZNB5 | single strand break repair | 
| GO:0000012 | SIRT1 | single strand break repair | 
| GO:0000012 | TDP1 | single strand break repair | 
| GO:0000012 | TNP1 | single strand break repair | 
| GO:0000012 | XRCC1 | single strand break repair | 
+------------+--------+----------------------------+ 
15 rows in set (0,04 sec) 

私は何が起こっているのか分かりません。確かに、私は他のPHPアクションで同様のコードを持っており、それはクエリを実行します。ok ...あなたは私を助けることができますか?

ありがとうございます!よろしく。 mysql_ *関数を使用して停止してください

while($row = mysql_fetch_array($result)){ 
    print_r($row); 
} 

答えて

3

ループwhileループを使用してリターンを通じて、あなただけの1行を返します。これらの拡張機能はPHP 7で削除されました。PDOとMySQLiのプリペアドステートメントについて学び、PDOの使用を検討してください。これはとても簡単です。

+0

@ user3118279 PDOに切り替えると、 'fetchAll()'を使って、現在サポートしていないAPIを使って現在達成しようとしていることを達成することができます。 –

+0

さて、私はそれを試してみるつもりです。とにかく、$ items = mysql_affected_rows($ db)、代わりに15を返すべきではありませんか? – user3118279

+0

SELECTクエリでmysql_affected_rowsが機能しない場合は、ドキュメントを確認してください。 –

関連する問題