Miles is correct, this the standard way (without knowing your application and if I could figure out another trick).
But if you absolutely don't want to use two SQL blocks you can set your SQL block to something like this: $sql = " DELETE FROM $table_name WHERE our_serv = \"$our_serv\" INSERT INTO $table_name (our_serv) VALUES (\"$our_serv\")"; This works because if the value in question is not there the DELETE statement is perfectly valid - but it won't delete anything. What you're looking for is an "INSERT OR UPDATE" statement and there is no such thing in SQL (no doubt there ought to be one - but there isn't). As for using a DELETE and then an INSERT statement - that's just about as much work for the DBMS as an UPDATE. Good Luck, Frank On 2/4/02 6:30 PM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > From: Miles Thompson <[EMAIL PROTECTED]> > Date: Mon, 04 Feb 2002 14:20:29 -0400 > To: "jas" <[EMAIL PROTECTED]>,[EMAIL PROTECTED] > Subject: Re: [PHP-DB] Combined sql statement > > This just showed up, where was it stuck? > > Essentially you do a SELECT into your target table, if the target key > exists, which you determine from row count, then you do an UPDATE, > otherwise an INSERT. > > I don't know what else you have wrapped around this, in terms of control > structure, so here's the guts: > // determine whether or not a record exists > // you will have to tell us what the WHERE condition is > $strCondition = " db_field_name = 'some_value' "; > $sql = " select * from $table_name where $strCondition; > $result = mysql_query( $sql ); > if( mysql_num_rows( $result ) > 0 ) > { > // a record was returned, thus an UPDATE, using the same where condition > $sql = "UPDATE $table_name SET our_serv='$our_serv' where $str_condition"; > } > else > { > // no record was returned, so an INSERT > $sql = "INSERT INTO $table_name SET our_serv='$our_serv'"; > } > $result = mysql_query( $sql ); > //and here you can test for the affected rows to determine success or failure. > > This is sort of a hybrid, in that the table name is stored in a variable, > whereas the field name isn't. One would assume that there is some variation > of field names among table so this will need some cleaning up. > There should also be some testing as to whether or not the $result is valid. > > > If this has already been answered, well I guess I shouldn't reply to stale > posts. Shame on me! > > Regards - Miles > > At 10:07 PM 1/29/2002 -0700, jas wrote: >> I would like to know how to have a php script loop through two different sql >> statements and use one according to a yes or no answer. I am still kinda >> new to php and I already have my sql statements, but I dont know how to use >> php to tell it to use one of the other. My sql statements are as follows... >> >> $sql = "INSERT INTO $table_name >> (our_serv) >> VALUES >> (\"$our_serv\") >> "; >> >> $sql = "UPDATE $table_name SET our_serv=\"$our_serv\""; >> >> How can I get it to pick one of these... for instance if there is no entry >> in the unique table to enter one using the first sql statement, or if there >> is already an entry to simply update and overwrite the current table entry. >> Any help would be appriciated and if you could please document it so I >> understand and dont have to ask again. Thanks, >> jas >> >> >> >> >> >> >> >> >> >> >> >> >> >> WOW, your neat.... >> >> >> >> >> -- >> PHP Database Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php