2017-01-26 5 views
0

こんにちは私は2つのcriteriasを使用して、私のデータベースとテーブルのレコードのリストを取得しようとしていますし、私が書いた1つの複数のselect文

最初の文であるとしてデータを組み合わせる必要があります

FROM `transactions` WHERE `Start_Date` = '$_POST[start]' AND `Company` = '$_POST[star]' and Status = '' 

この文の空のようにその列を持つすべてのレコード、

は今、私はまた、成功した

と一緒に、このデータとステータスを持つすべての列をキャプチャしたいです
FROM `transactions` WHERE `Start_Date` = '$_POST[start]' AND `Company` = '$_POST[star]' and Status = 'successful' 

私はこれを組み合わせてくださいどのように、私は当初、この

transactions FROM WHERE Start_Date = '$ _POST [スタート]' AND Company = '$ _POST [スター]' とステータス= '' と(ステータスを試してください。 )=「成功」

私はそれが動作するはずと思ったが、それは動作するようですdosent、あなたのテーブルでの正しい方法上の任意のヘルプしてください

+0

だけ$ _POST'変数を直接SQLクエリに入れることで、データベース上で必要とするSQLクエリを誰でも実行できるようになります。 – Santi

+0

ヘッドアップ、病気のために必要な調整のためにありがとう –

答えて

1

各行は、それが中で定義された基準を満たしているかどうかを確認するために、個別に評価されますWHERE句。同じ列で2つの値を確認する必要があり、1つの行に同じ列に対して2つの異なる値を設定することはできないため、ANDの代わりにORを使用する必要があります。

WHERE 
    `Start_Date` = '$_POST[start]' 
    AND `Company` = '$_POST[star]' 
    AND (`Status` = '' OR `Status` = 'successful') 

この効果は、2つのクエリを組み合わせるようなものになります。 Start_dateCompanyの基準を満たし、の値を持つ行はすべてまたはStatus = 'successful'のいずれかになります。

+0

しかし、私は状態が空で成功したすべてのレコードが必要です、可能なことはありません –

+0

@TeeFamakinなぜあなたはORを必要とするかを説明しようとする答えを編集しました。それは理にかなっていますか? –

+0

非常に正解ありがとう –

0

これを実現するには、 "IN"演算子を使用できます。

から '取引' WHERE 'START_DATE' = '$ _POST [スタート]' AND '会社' = '$ _POST [スター]' とIn ステータス( ''、 '成功')