Re: Using GET to build multiple sql queries

From: Date: Thu, 02 Jun 2005 20:15:09 +0000
Subject: Re: Using GET to build multiple sql queries
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-216268@lists.php.net to get a copy of this message
SORRY - one small correction below: <SNIP> If that were instead an $s then I would do:
<?php      //IF there is a valid query by subject, use $s to build the SQL
    $fields = "SELECT art.*,publisher.*,subject.*";
    $from = "FROM art,subject
        LEFT JOIN publisher
         ON publisher.publisher_id=art.publisher_id";
       $where = "WHERE publisher.publisher_id=art.publisher_id AND
         art.subject_id = '$s' AND
         art.subject_id=subject.subject_id";
?> </SNIP> I had accidentally put a number 1 in place of the $s in the above example. Apologies for the extra mail and thanks in advance. Greg Donald wrote:
On 6/2/05, Jack Jackson <jackson.linux@gmail.com> wrote:
I'd love some help with http://hashphp.org/pastebin?pid=3443 if anyone can... Basically I want to make it so that, if the get in the url specifies no query or a query to a nonexistent row, send to vanilla index. If url specifies c= then set $c=c and use the number to build the mysql query; same for p= and s= - if they're valid build the query, if not kick em out. Can anyone offer any help?
I'd iterate over the $_GET array to build the query elements. Then implode those elements. $array = array(); while( list( $k, $v ) = each( $_GET ) ) {
    if( $k == 'somekeynotindb' )
    {
        continue;
    }
    $array[] = $k . "='" . $v . "'";
} if( $array ) {
    $and = implode( ', ', $array );
} $sql = "
    SELECT *
    FROM table
    WHERE 1
    $and
"; $query = mysql_query( $sql );


« previous php.general (#216268) next »