Re: Select and order by question

From: <operationsengineer1(at)yahoo(dot)com>
To: "Sherwin M(dot) Harris" <Sherwin_Harris(at)byu(dot)edu>, pgsql-php(at)postgresql(dot)org
Subject: Re: Select and order by question
Date: 2006-05-03 16:12:43
Message-ID: 20060503161243.3545.qmail@web33314.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

off topic, but still relevant to php sql. i'll share
something that has made my life much easier wrt sql
statements - heredocs.

the format looks like this:

$sSql = <<<_ESQL

SELECT * FROM crm_events
WHERE crm_leads_id
IN (SELECT id FROM crm_leads)
AND follow_up_action!=''
ORDER BY follow_up_date asc limit 1

_ESQL

the benefits are that it is much more readable, you
don't have to worry about escaping the usual suspect
characters and you can easily copy and paste this code
into a sql tool to test the results of the sql. you
can also copy and paste from the sql tool back into
your code. this helps dramatically when you have
20-30 lines of sql with quotes throughout. ;-)

you can look up heredoc in the php for more
information.

good luck.

--- "Sherwin M. Harris" <Sherwin_Harris(at)byu(dot)edu>
wrote:

> Assuming you are using a version of a database that
> can support
> sub-queries (MySQL 4.1 and up, Postgresql (all
> reasonably current
> versions, any other robust RDBMS) you can do the
> query like this:
>
> $sSql = "SELECT * FROM crm_events WHERE crm_leads_id
> IN (SELECT id FROM
> crm_leads) AND follow_up_action!='' ORDER BY
> follow_up_date asc limit 1"
>
> Not sure what your follow_up_action !=" is suppose
> to be doing but if
> the rest works for you that should give you what you
> want.
>
>
>
>
>
> Sherwin Harris
>
> Web Developer
>
> Brigham Young University
>
>
>
> ________________________________
>
> From: pgsql-php-owner(at)postgresql(dot)org
> [mailto:pgsql-php-owner(at)postgresql(dot)org] On Behalf Of
> Andy Dunlop
> Sent: Wednesday, May 03, 2006 3:13 AM
> To: pgsql-php(at)postgresql(dot)org
> Subject: [PHP] Select and order by question
>
>
>
> Hi - I have the following code:
>
> //show table of current events needing action
> $sSql = "SELECT id FROM crm_leads ";
> $sLeads = pg_exec($conn,$sSql);
> for($e=0;$e<pg_numrows($sLeads);$e++){
> $sSql = "SELECT * FROM crm_events WHERE
> crm_leads_id =
> ".pg_result($sLeads,$e,"id")." AND
> follow_up_action!='' ORDER BY
> follow_up_date asc limit 1";
> $sRes = pg_exec($conn,$sSql);
> $sHits = pg_numrows($sRes);
> if($sHits!=0){
> for($i=0;$i<$sHits;$i++){
> // generate the display here
> }
> }
>
> crm_leads is a parent with many crm_events as it's
> children.
> This code gives me the correct set of rows.
> My problem is that I want only the last row from
> crm_events (as per
> limit 1) but I want those rows sorted by
> follow_up_date. I guess I need
> to have the whole query in one select statement? But
> how?
>
> Any help appreciated
> Thanks
>
> Andy Dunlop
>
> www.infocus.co.za
> +27 21 532 0335 office
> +27 82 770 8749 mobile
>
>
>
>

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
>From pgsql-php-owner(at)postgresql(dot)org Wed May 3 16:26:00 2006
X-Original-To: pgsql-php-postgresql(dot)org(at)localhost(dot)postgresql(dot)org
Received: from localhost (mx1.hub.org [200.46.208.251])
by postgresql.org (Postfix) with ESMTP id 88B7B9FA36E
for <pgsql-php-postgresql(dot)org(at)localhost(dot)postgresql(dot)org>; Wed, 3 May 2006 16:26:00 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024)
with ESMTP id 58161-02
for <pgsql-php-postgresql(dot)org(at)localhost(dot)postgresql(dot)org>;
Wed, 3 May 2006 16:25:47 -0300 (ADT)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from a2s5.a2hosting.com (host-209-124-50-10.a2webhosting.com [209.124.50.10])
by postgresql.org (Postfix) with ESMTP id 3F9C39F9C1D
for <pgsql-php(at)postgresql(dot)org>; Wed, 3 May 2006 16:25:46 -0300 (ADT)
Received: from adsl-153-96-23.tys.bellsouth.net ([70.153.96.23] helo=[192.168.1.10])
by a2s5.a2hosting.com with esmtpsa (TLSv1:RC4-SHA:128)
(Exim 4.52)
id 1FbMyl-0006l6-Db; Wed, 03 May 2006 15:25:43 -0400
In-Reply-To: <20060503161243(dot)3545(dot)qmail(at)web33314(dot)mail(dot)mud(dot)yahoo(dot)com>
References: <20060503161243(dot)3545(dot)qmail(at)web33314(dot)mail(dot)mud(dot)yahoo(dot)com>
Mime-Version: 1.0 (Apple Message framework v749.3)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <1AEFEEC2-CEA4-414F-876A-D805EAB55544(at)pgedit(dot)com>
Cc: "Sherwin M. Harris" <Sherwin_Harris(at)byu(dot)edu>,
pgsql-php(at)postgresql(dot)org
Content-Transfer-Encoding: 7bit
From: John DeSoi <desoi(at)pgedit(dot)com>
Subject: Re: Select and order by question
Date: Wed, 3 May 2006 15:25:24 -0400
To: <operationsengineer1(at)yahoo(dot)com> <operationsengineer1(at)yahoo(dot)com>
X-Mailer: Apple Mail (2.749.3)
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - a2s5.a2hosting.com
X-AntiAbuse: Original Domain - postgresql.org
X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12]
X-AntiAbuse: Sender Address Domain - pgedit.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Archive-Number: 200605/8
X-Sequence-Number: 3508

On May 3, 2006, at 12:12 PM, <operationsengineer1(at)yahoo(dot)com>
<operationsengineer1(at)yahoo(dot)com> wrote:

> off topic, but still relevant to php sql. i'll share
> something that has made my life much easier wrt sql
> statements - heredocs.
>
> the format looks like this:
>
> $sSql = <<<_ESQL
>
> SELECT * FROM crm_events
> WHERE crm_leads_id
> IN (SELECT id FROM crm_leads)
> AND follow_up_action!=''
> ORDER BY follow_up_date asc limit 1
>
> _ESQL

A little shameless promotion: pgEdit will even color the heredoc
string for SQL if you start your heredoc string with <<<sql. Works
for <<<html also.

I'll have a short article out soon that shows how you can pretty much
remove all SQL from your PHP code using a simple PHP class and
PostgreSQL functions.

John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Andy Dunlop 2006-05-10 07:58:14 Re: Select and order by question
Previous Message Sherwin M. Harris 2006-05-03 14:56:22 Re: Select and order by question