2016-04-19 2 views
-1

データベースからデータを取得しようとしましたが、ID番号のみを与えています。私のデータベースには2つの列があり、最初はID、もう1つはイメージパスです。 ID = 3を渡すと、そのIDに対応するパスが返されます。IDを渡すことでデータベースからデータを取得します。

私はそれをやろうとしましたが、私は質問に固執しています。

mysql_query (conn, "SELECT * FROM table"); 
res = mysql_use_result(conn); 
row = mysql_fetch_row(res) 
ID = atoi(row[0]); 
path = row[1]; 
printf("ID: %i", ID); 

printf("Image Path: %s", path); 

あなたは基本的なコンピュータの概念を持ついくつかの問題を持っているように見える:)

+1

はなぜ代わりに 'WHERE'句でテーブルから選択していない(ただ公平を期すために^^)投稿何ビットを編集しました。特定のデータを取得する前にすべてを選択する必要がありますか? – jamiedanq

答えて

0

私は質問が本当に明確ではないと思います。最初のケースでは、行ごとに、あなたは、ID /パスを表示したい:あなたが探しているIDを知っているので

mysql_query (conn, "SELECT * FROM table"); 
res = mysql_use_result(conn); 
while (row = mysql_fetch_row(res)) { 
    ID = atoi(row[0]); 
    path = row[1]; 
    printf("ID: %i", ID); 
    printf("Image Path: %s", path); 
} 

他の可能性は、あなただけの1行をしたいです。次に、あなたのようなものを持つ唯一欠けている列取得することを決定することができますいくつかのより複雑なケースでは

mysql_query (conn, "SELECT path FROM table WHERE id=ID"); 

を、あなたが複数の行を有することができるWHEREで、あなたがで例えば最初のものだけを保つことができる場合であっても言うことができますクエリにTOP条件を追加します。どのような場合でも、実際に返されるものについて考える必要があります。私は私が書いたコードをテストしていない

は、ちょうどあなたが

+0

本当に 'where'節をどのようにパラメータ化しますか?現在のバージョンは何も役に立たないでしょう。 –

+0

あなたが現実的なケースを持っているなら、私は一見することができますが、元の質問はちょっと乱雑でした。私は以前に定義されたIDを列名であるIDと比較して使用しましたが、私はあなたの質問に答えるかどうかわかりません... – Mikitori

+0

私が言ったのは、 'where'節は何もしない完全な答えは、実際にはいくつかの変数からフィルタをかける方法を示します。 ;-) –

0

助けてください。例えば、1つのものとそれ以上のものがあるという概念です。 行をフェッチしますが、データベース表に複数の行があり、問合せですべての行が戻されます。 (No WHERE句)。

明白な解決策は、すべての行をフェッチするか、クエリを目的の行だけに制限することです。

関連する問題