1

フォームの選択したオプションに依存するクエリを作成しようとしています。私はこれを乗り越えたと思いますが、私が思っているほど効率的だとは思いません (台本を見せたら、聖書を読むのにそれほど時間はかからないと思うでしょう)。より効率的にするためのアイデアを提案してくれる親切な方がいるかどうかを知りたいです。

ユーザーは次の 2 つを選択する必要があります。

まず、どのような請求書 (albaran) を見せたいか (payed (pagado), open (pte), without issue (sin factura), all they (todos))。次に、請求書 (albaran) が参照されているクライアント (特定の 1 つまたはすべて (todos))。Invoices と client は、ref_cliente 列を共有する 2 つの異なる mysql テーブルです。

これはすべて、たとえば page1.php で選択され、フォームが入力されて post メソッドで送信されると、ページが再読み込みされ、配列 $_POST が読み込まれるスクリプトが「アクティブ化」されます。

お時間と関心をお寄せいただきありがとうございます。

OPのテーブルスキーマを追加するための質問の編集

TABLE clientes (columns: ref_cliente, nombre, nif) TABLE facturas (columns: ref_factura, ref_cliente, estado)

estado請求書が支払われたか、支払われていないか、または発行されていないかを示す varchar 列です。(ブール効果)

4

2 に答える 2

0

bonCodigoさんのおっしゃる通り、テーブルのスキーマを見せていただけると助かるかもしれませんが… やってみます。

これを「status」と「client」の 2 つのパラメーターで設定すると、それらのパラメーターの値に従って SQL を作成する必要があります。PDOを使用しています

お気に入り:

$sql="SELECT * from invoices i, clients c where c.ref_cliente=i.ref_cliente";
$params=array();
if($_POST['status']!='todos'){
   $sql.=' and i.status=?';
   $params[]=$_POST['status'];
}
if($_POST['clients']!='todos'){
   $sql.=' and c.ref_cliente=?';
   $params[]=$_POST['clients'];
}
$sqlh=$dbh->prepare($sql); // $dbh must be set up, see the PDO-documentation
$sqlh->execute($params);
于 2012-11-28T12:26:49.830 に答える