Thread: Re: how to determine where a select statement fails
other than putting an if statement and doing 3 more queries, I can't think of anything something like: if(pg_numrows == 0) { select * from table where streetname = streetname if(pg_numrows == 0) { you found your error } else { do another query......... } } Tim. Timothy P. Maguire Web Developer II Harte-Hanks 978 436 3325 "Heather Johnson" <hjohnson@nypost.com To: <pgsql-php@postgresql.org> > cc: Sent by: Subject: how to determine where a select statement pgsql-php-owner@post fails gresql.org 07/26/01 11:15 AM I am using php to do a select query which returns rows on the condition that a conjunction is true in the WHERE clause. This is the SELECT statement: SELECT low_range, high_range, st_name, city, zip FROM router WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; In the event that the query fails to return any rows, I'd like to be able to determine which conjunct caused it to fail. So, for example, if the user-entered $st_name isn't in the router table, I'd like to know that st_name = '$st_name' is what made the conjunction false and caused the query to fail. $pg_errormsg isn't this specific about query failures though. Does anyone know how I might be able to get this information? Thanks! Heather Johnson ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly
Thanks for the suggestion! I don't really want to do that though b/c the table that I'm searching is pretty large. I was hoping to do only one query on the table and then put some indexes on the fields to improve performance. But I can't think of a way to structure my code so that I can do just one query AND get info about which user-entered values don't find a match. (Brent Matzelle suggested that this isn't really a "failure" of the query, and I guess he's right, so hopefully this describes what I'm talking about a little better). Heather ----- Original Message ----- From: <Timothy_Maguire@hartehanks.com> To: "Heather Johnson" <hjohnson@nypost.com> Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> Sent: Thursday, July 26, 2001 11:35 AM Subject: [PHP] Re: how to determine where a select statement fails > > other than putting an if statement and doing 3 more queries, I can't think > of anything > > something like: > if(pg_numrows == 0) > { > select * from table where streetname = streetname > if(pg_numrows == 0) > { > you found your error > } > else > { > do another query......... > } > } > > Tim. > > Timothy P. Maguire > Web Developer II > Harte-Hanks > 978 436 3325 > > > > > "Heather Johnson" > <hjohnson@nypost.com To: <pgsql-php@postgresql.org> > > cc: > Sent by: Subject: how to determine where a select statement > pgsql-php-owner@post fails > gresql.org > > > 07/26/01 11:15 AM > > > > > > > I am using php to do a select query which returns rows on the condition > that > a conjunction is true in the WHERE clause. This is the SELECT statement: > > SELECT low_range, high_range, st_name, city, zip FROM router > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > In the event that the query fails to return any rows, I'd like to be able > to > determine which conjunct caused it to fail. So, for example, if the > user-entered $st_name isn't in the router table, I'd like to know that > st_name = '$st_name' is what made the conjunction false and caused the > query > to fail. $pg_errormsg isn't this specific about query failures though. Does > anyone know how I might be able to get this information? > > Thanks! > Heather Johnson > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html
What you also have to keep in mind is that one clause is not necessarily keeping you from getting zero rows. For example. You have st_name and city. Say you hve 5 entries for a street named "main" and 5 entries for a city named "plainfield". But you have NO entries for a street named "main" in the city of "plainfield". The fact you are looking for both is what returns zero rows. Individually they exist. What you are trying to do is nto easy at all. You can't just do if statements to see which column has zero rows. You have to also check to see what combo of clauses return ero. Adam Lang Systems Engineer Rutgers Casualty Insurance Company http://www.rutgersinsurance.com ----- Original Message ----- From: "Heather Johnson" <hjohnson@nypost.com> To: <Timothy_Maguire@hartehanks.com> Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> Sent: Thursday, July 26, 2001 2:30 PM Subject: Re: [PHP] Re: how to determine where a select statement fails > Thanks for the suggestion! I don't really want to do that though b/c the > table that I'm searching is pretty large. I was hoping to do only one query > on the table and then put some indexes on the fields to improve performance. > But I can't think of a way to structure my code so that I can do just one > query AND get info about which user-entered values don't find a match. > (Brent Matzelle suggested that this isn't really a "failure" of the query, > and I guess he's right, so hopefully this describes what I'm talking about a > little better). > > Heather > > "Heather Johnson" > > <hjohnson@nypost.com To: > <pgsql-php@postgresql.org> > > > cc: > > Sent by: Subject: how to > determine where a select statement > > pgsql-php-owner@post fails > > gresql.org > > > > > > 07/26/01 11:15 AM > > > > > > > > > > > > > > I am using php to do a select query which returns rows on the condition > > that > > a conjunction is true in the WHERE clause. This is the SELECT statement: > > > > SELECT low_range, high_range, st_name, city, zip FROM router > > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > > > In the event that the query fails to return any rows, I'd like to be able > > to > > determine which conjunct caused it to fail. So, for example, if the > > user-entered $st_name isn't in the router table, I'd like to know that > > st_name = '$st_name' is what made the conjunction false and caused the > > query > > to fail. $pg_errormsg isn't this specific about query failures though. > Does > > anyone know how I might be able to get this information? > > > > Thanks! > > Heather Johnson ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
Hi, Your user could enter data freely or from popup menu by example ? By my few knowledge, maybe, there no low cost ( number of queries ) solution ... Tell ( of force ) your user to add condition step by step if there is too many results, no why?
Yes, you're right--I'd have to consider combo cases too. Thanks to everybody that made suggestions. I guess it's not a really big deal if I can't do this---was just hoping to add some bells and whistles to a script that basically works fine as it is. ;) ----- Original Message ----- From: "Adam Lang" <aalang@rutgersinsurance.com> Cc: <pgsql-php@postgresql.org> Sent: Thursday, July 26, 2001 2:56 PM Subject: Re: [PHP] Re: how to determine where a select statement fails > What you also have to keep in mind is that one clause is not necessarily > keeping you from getting zero rows. > > For example. > > You have st_name and city. > > Say you hve 5 entries for a street named "main" and 5 entries for a city > named "plainfield". But you have NO entries for a street named "main" in > the city of "plainfield". The fact you are looking for both is what returns > zero rows. Individually they exist. > > What you are trying to do is nto easy at all. You can't just do if > statements to see which column has zero rows. You have to also check to see > what combo of clauses return ero. > > Adam Lang > Systems Engineer > Rutgers Casualty Insurance Company > http://www.rutgersinsurance.com > ----- Original Message ----- > From: "Heather Johnson" <hjohnson@nypost.com> > To: <Timothy_Maguire@hartehanks.com> > Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> > Sent: Thursday, July 26, 2001 2:30 PM > Subject: Re: [PHP] Re: how to determine where a select statement fails > > > > Thanks for the suggestion! I don't really want to do that though b/c the > > table that I'm searching is pretty large. I was hoping to do only one > query > > on the table and then put some indexes on the fields to improve > performance. > > But I can't think of a way to structure my code so that I can do just one > > query AND get info about which user-entered values don't find a match. > > (Brent Matzelle suggested that this isn't really a "failure" of the query, > > and I guess he's right, so hopefully this describes what I'm talking about > a > > little better). > > > > Heather > > > "Heather Johnson" > > > <hjohnson@nypost.com To: > > <pgsql-php@postgresql.org> > > > > cc: > > > Sent by: Subject: how to > > determine where a select statement > > > pgsql-php-owner@post fails > > > gresql.org > > > > > > > > > 07/26/01 11:15 AM > > > > > > > > > > > > > > > > > > > > > I am using php to do a select query which returns rows on the condition > > > that > > > a conjunction is true in the WHERE clause. This is the SELECT statement: > > > > > > SELECT low_range, high_range, st_name, city, zip FROM router > > > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > > > > > In the event that the query fails to return any rows, I'd like to be > able > > > to > > > determine which conjunct caused it to fail. So, for example, if the > > > user-entered $st_name isn't in the router table, I'd like to know that > > > st_name = '$st_name' is what made the conjunction false and caused the > > > query > > > to fail. $pg_errormsg isn't this specific about query failures though. > > Does > > > anyone know how I might be able to get this information? > > > > > > Thanks! > > > Heather Johnson > > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
Yes, you're right--I'd have to consider combo cases too. Thanks to everybody that made suggestions. I guess it's not a really big deal if I can't do this---was just hoping to add some bells and whistles to a script that basically works fine as it is. ;) ----- Original Message ----- From: "Adam Lang" <aalang@rutgersinsurance.com> Cc: <pgsql-php@postgresql.org> Sent: Thursday, July 26, 2001 2:56 PM Subject: Re: [PHP] Re: how to determine where a select statement fails > What you also have to keep in mind is that one clause is not necessarily > keeping you from getting zero rows. > > For example. > > You have st_name and city. > > Say you hve 5 entries for a street named "main" and 5 entries for a city > named "plainfield". But you have NO entries for a street named "main" in > the city of "plainfield". The fact you are looking for both is what returns > zero rows. Individually they exist. > > What you are trying to do is nto easy at all. You can't just do if > statements to see which column has zero rows. You have to also check to see > what combo of clauses return ero. > > Adam Lang > Systems Engineer > Rutgers Casualty Insurance Company > http://www.rutgersinsurance.com > ----- Original Message ----- > From: "Heather Johnson" <hjohnson@nypost.com> > To: <Timothy_Maguire@hartehanks.com> > Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> > Sent: Thursday, July 26, 2001 2:30 PM > Subject: Re: [PHP] Re: how to determine where a select statement fails > > > > Thanks for the suggestion! I don't really want to do that though b/c the > > table that I'm searching is pretty large. I was hoping to do only one > query > > on the table and then put some indexes on the fields to improve > performance. > > But I can't think of a way to structure my code so that I can do just one > > query AND get info about which user-entered values don't find a match. > > (Brent Matzelle suggested that this isn't really a "failure" of the query, > > and I guess he's right, so hopefully this describes what I'm talking about > a > > little better). > > > > Heather > > > "Heather Johnson" > > > <hjohnson@nypost.com To: > > <pgsql-php@postgresql.org> > > > > cc: > > > Sent by: Subject: how to > > determine where a select statement > > > pgsql-php-owner@post fails > > > gresql.org > > > > > > > > > 07/26/01 11:15 AM > > > > > > > > > > > > > > > > > > > > > I am using php to do a select query which returns rows on the condition > > > that > > > a conjunction is true in the WHERE clause. This is the SELECT statement: > > > > > > SELECT low_range, high_range, st_name, city, zip FROM router > > > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > > > > > In the event that the query fails to return any rows, I'd like to be > able > > > to > > > determine which conjunct caused it to fail. So, for example, if the > > > user-entered $st_name isn't in the router table, I'd like to know that > > > st_name = '$st_name' is what made the conjunction false and caused the > > > query > > > to fail. $pg_errormsg isn't this specific about query failures though. > > Does > > > anyone know how I might be able to get this information? > > > > > > Thanks! > > > Heather Johnson > > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
What you also have to keep in mind is that one clause is not necessarily keeping you from getting zero rows. For example. You have st_name and city. Say you hve 5 entries for a street named "main" and 5 entries for a city named "plainfield". But you have NO entries for a street named "main" in the city of "plainfield". The fact you are looking for both is what returns zero rows. Individually they exist. What you are trying to do is nto easy at all. You can't just do if statements to see which column has zero rows. You have to also check to see what combo of clauses return ero. Adam Lang Systems Engineer Rutgers Casualty Insurance Company http://www.rutgersinsurance.com ----- Original Message ----- From: "Heather Johnson" <hjohnson@nypost.com> To: <Timothy_Maguire@hartehanks.com> Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> Sent: Thursday, July 26, 2001 2:30 PM Subject: Re: [PHP] Re: how to determine where a select statement fails > Thanks for the suggestion! I don't really want to do that though b/c the > table that I'm searching is pretty large. I was hoping to do only one query > on the table and then put some indexes on the fields to improve performance. > But I can't think of a way to structure my code so that I can do just one > query AND get info about which user-entered values don't find a match. > (Brent Matzelle suggested that this isn't really a "failure" of the query, > and I guess he's right, so hopefully this describes what I'm talking about a > little better). > > Heather > > "Heather Johnson" > > <hjohnson@nypost.com To: > <pgsql-php@postgresql.org> > > > cc: > > Sent by: Subject: how to > determine where a select statement > > pgsql-php-owner@post fails > > gresql.org > > > > > > 07/26/01 11:15 AM > > > > > > > > > > > > > > I am using php to do a select query which returns rows on the condition > > that > > a conjunction is true in the WHERE clause. This is the SELECT statement: > > > > SELECT low_range, high_range, st_name, city, zip FROM router > > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > > > In the event that the query fails to return any rows, I'd like to be able > > to > > determine which conjunct caused it to fail. So, for example, if the > > user-entered $st_name isn't in the router table, I'd like to know that > > st_name = '$st_name' is what made the conjunction false and caused the > > query > > to fail. $pg_errormsg isn't this specific about query failures though. > Does > > anyone know how I might be able to get this information? > > > > Thanks! > > Heather Johnson ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
Thanks for the suggestion! I don't really want to do that though b/c the table that I'm searching is pretty large. I was hoping to do only one query on the table and then put some indexes on the fields to improve performance. But I can't think of a way to structure my code so that I can do just one query AND get info about which user-entered values don't find a match. (Brent Matzelle suggested that this isn't really a "failure" of the query, and I guess he's right, so hopefully this describes what I'm talking about a little better). Heather ----- Original Message ----- From: <Timothy_Maguire@hartehanks.com> To: "Heather Johnson" <hjohnson@nypost.com> Cc: <pgsql-php@postgresql.org>; <pgsql-php-owner@postgresql.org> Sent: Thursday, July 26, 2001 11:35 AM Subject: [PHP] Re: how to determine where a select statement fails > > other than putting an if statement and doing 3 more queries, I can't think > of anything > > something like: > if(pg_numrows == 0) > { > select * from table where streetname = streetname > if(pg_numrows == 0) > { > you found your error > } > else > { > do another query......... > } > } > > Tim. > > Timothy P. Maguire > Web Developer II > Harte-Hanks > 978 436 3325 > > > > > "Heather Johnson" > <hjohnson@nypost.com To: <pgsql-php@postgresql.org> > > cc: > Sent by: Subject: how to determine where a select statement > pgsql-php-owner@post fails > gresql.org > > > 07/26/01 11:15 AM > > > > > > > I am using php to do a select query which returns rows on the condition > that > a conjunction is true in the WHERE clause. This is the SELECT statement: > > SELECT low_range, high_range, st_name, city, zip FROM router > WHERE st_name = '$st_name' AND city = '$city' AND zip = '$zip'; > > In the event that the query fails to return any rows, I'd like to be able > to > determine which conjunct caused it to fail. So, for example, if the > user-entered $st_name isn't in the router table, I'd like to know that > st_name = '$st_name' is what made the conjunction false and caused the > query > to fail. $pg_errormsg isn't this specific about query failures though. Does > anyone know how I might be able to get this information? > > Thanks! > Heather Johnson > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html