maderman has asked for the wisdom of the Perl Monks concerning the following question:
Hi all, I have a perl CGI form like thus: X | Call No | Call No textfield X | Problem | Problem textfield The X's represent checkboxes. In the backend, I have two arrays: @fields: checked fields @entries: text fields with entries. my code for generating the SQL is below. My problem occurs when one enters text into more than one text field. For example, say I check "Call No" and "Problem" and enter "111" and "seating" into their respective text fields. The SQL becomes: SELECT call_no, problem FROM HELP WHERE ( call_no LIKE 111 problem LIKE seating ) There needs to be an "AND" in the WHERE clause. The SQL should read: SELECT call_no, problem FROM HELP WHERE ( call_no LIKE 111 AND problem LIKE seating ) I'll be stuffed if I know how to do it. Can the monks help me??? Thanks, Stacy. *********** $nfields = @fields; foreach $i (@entries) { if ($i ne '') { push @full_entries, $i; } } $sql = sprintf "SELECT %s FROM HELP WHERE (", join(", ", @fields); for ($j = 0; $j < $nfields; $j++) { if ($full_entries[$j] ne '') { $sql .= sprintf " %s LIKE %s ", $fields[$j], $full_entries[$j]; } } $sql .= ")";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Composing a SQL statement
by snowcrash (Friar) on Apr 04, 2001 at 10:10 UTC | |
|
(ar0n) Re: Composing a SQL statement
by ar0n (Priest) on Apr 04, 2001 at 17:09 UTC | |
|
Re: Composing a SQL statement
by busunsl (Vicar) on Apr 04, 2001 at 09:44 UTC |