Re: Re: Database Problems
| From: | tamouse mailing lists | Date: | Mon, 18 Jun 2012 01:22:08 +0000 |
| Subject: | Re: Re: Database Problems | ||
| References: | 1 2 3 4 5 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-48320@lists.php.net to get a copy of this message | ||
On Sun, Jun 17, 2012 at 5:55 PM, Ethan Rosenberg <ethros@earthlink.net> wrote:
> At 04:21 PM 6/17/2012, Jim Giner wrote:
>
>> "Ethan Rosenberg" <ethros@earthlink.net> wrote in message
>> news:0M5S00MGD2BH7C60@mta1.srv.hcvlny.cv.net...
>> > At 03:30 PM 6/17/2012, Jim Giner wrote:
>> >>"Ethan Rosenberg" <ethros@earthlink.net> wrote in message
>> >>news:0M5R005QYZRNMC40@mta6.srv.hcvlny.cv.net...
>> >> > Dear List -
>> >> >
>> >>
>> >> >
>> >> > The same query in a PHP program will only give me results for MedRec
>> >> > 10003
>> >> >
>> >>
>> >>why the "where 1" clause? Do you know what that is for?
>> > =================
>> > Dear Jim
>> >
>> > Thanks
>> >
>> > As I understand, to enable me to concatenate phases to construct a
>> > query.
>> >
>> > The query does work in MySQL fro the terminal.
>> >
>> > Ethan
>> >
>>
>> I don't think so. All it does is return one record. The where clause
>> defines what you want returned. A '1' returns one record, the first one.
>> #10003
>>
>> I wonder why you think "where 1" enables concatenation?? A query (IN
>> SIMPLE
>> TERMS PEOPLE) is simply a SELECT ion of fields from a group of tables,with
>> a
>> WHERE clause to define the criteria to limit the rows, and an ORDER BY to
>> sort the result set. More complex queries can include GROUP BY when you
>> are
>> including summary operators such as SUM(fldname) or MAX(fldname), or a
>> JOIN
>> clause, or a host of other clauses that make sql so powerful. In your
>> case
>> I think you copied a sample query that (they always seem to be displayed
>> with a 'where 1' clause) and left the "1" on it. To summarzie:
>>
>> SELECT a.fld1, a.fld2,b.fld1 from table1 as a, table2 as b WHERE a.key
>> >100
>> and a.key = b.key ORDER BY a.fld1
>>
>> I"m no expert, but hopefully this makes it a little less complex for you..
>
> ================
>
> This is a suggestion I received from this list -
> +++++++++++++++++++++
>>>
>>> $query = "select * from Intake3 where ";
>>
>>
>> Maybe I missed it, but you need to have a 1 after the where part in your
>> select. So...
>>
>> $query = "SELECT * FROM Intake3 WHERE 1 ";
>
> ++++++++++++++++++++++++++++
>
> I must stress that the query works from the terminal, and fails in the PHP
> code.
>
> My question is why?????
>
> Ethan
First off, all "where 1" does is make the statement always true. If
you don't believe that, try this query:
SELECT * FROM Intake3 WHERE 1;
in mysql and contrast with:
SELECT * FROM Intake3;
you should see identical results.
Secondly, you need to look at where you are gathering the return from
the query. You show:
$result = mysqli_query($cxn,$query);
but you aren't showing us what you do with $result, as in where you
fetch the rows and process them. I'm dubious that the query is in fact
only returning one record. But you can check by echoing
mysqli_num_rows($result). (I think; I never use the procedural
version, opting to use the object version instead.)