--Apple-Mail-6-229959795
Content-Type: text/plain;
charset=US-ASCII;
format=flowed;
delsp=yes
Content-Transfer-Encoding: 7bit
>
> From: Carol Walter <walterc [at] indiana.edu>
> Date: May 18, 2009 4:12:16 PM GMT-04:00
> To: danaketh <danaketh [at] gmail.com>
> Subject: Re: [PHP-DB] Assigning the current value of a sequence to a
> variable - Postgres 8.3.6
>
> Hello,
>
> Oh, of course. Sorry for the silly question.
>
> Thanks for your help.
>
> Carol
>
> On May 18, 2009, at 3:45 PM, danaketh wrote:
>
>> Hello,
>>
>> you're not fetching the query results.
>>
>> $query = "SELECT currval('\"tblPeople_peopleId_seq\"')";
>> $result = pg_query($query) or die("Can't execute 4th query");
>> if ($result != false) {
>> $row = pg_fetch_row($result);
>> echo "person id is " . $row[0] . "
";
>> }
>> else {
>> // no curval() found or something bad happened...
>> }
>>
>> This should work for you. If you run SELECT query, you have to
>> fetch the results before you can access the data. If you expect
>> more than one row, you can use
>> while($row = pg_fetch_row($result)) {
>> // code to process data from database
>> }
>>
>> Hope this will help you :)
>>
>>
>> Carol Walter napsal(a):
>>>
>>> Hello,
>>>
>>> I have a program that looks for a name in a database. If the name
>>> is found the id of the record is assigned to a variable. Later in
>>> the program that value is used to insert records associated with
>>> the name into the database using a variable called person_id. If
>>> the name is not found, then a new record is build from data
>>> entered into a form. There is a name record and a contact
>>> information record and a bridge table record to create the
>>> relationship between them. After that, the program may create
>>> additional records related to the new person record in the same
>>> way it creates records related to the person records that might
>>> already exist in the database. It would make this process lots
>>> easier if I can assign currval of the new person record to the
>>> same variable that I use when I already have a record in the
>>> database. Can I assign currval to a variable?
>>>
>>> Below is the code that I'm using. The value that displays for
>>> person id which I'm trying to capture at the bottom of this code
>>> is "person id is Resource id #6".
>>>
>>> if (($submit_db_name == "Submit") && ($submit_new_name == "Submit"))
>>> {
>>> echo"<p> Contact Locator: $cont_loc</p>";
>>> echo"<p> Contact Type Rank: $cont_rank</
>>> p>";
>>> echo"<p> Contact Info Type:
>>> $contact_type</p>";
>>> echo"<p> New name string: $f_name_new</p>";
>>> echo"<p> New name string: $m_name_new</p>";
>>> echo"<p> New name string: $l_name_new</p>";
>>> echo"<p> New ivl web string:
>>> $ivl_web_peop</p>";
>>> echo"<p> New cns_web string:
>>> $cns_web_peop</p>";
>>> echo"<p> New contact rank string:
>>> $cont_rank</p>";
>>> echo"<p> New contact locator string:
>>> $cont_loc</p>";
>>> echo"<p> New contact item string:
>>> $contact_info1</p>";
>>> echo"<p> New contact type string:
>>> $contact_type</p>";
>>> begin;
>>>
>>> $query = "INSERT INTO \"tblPeople
>>> \"(\"fName\",\"mName\",\"lName\", ivlweb, cnsweb)
>>> VALUES ('$f_name_new',
>>> '$m_name_new','$l_name_new', '$ivl_web_peop', '$cns_web_peop')";
>>>
>>> /* echo "First query: " . $query . "
";
>>> */
>>> $pg_peop_ins = pg_query($query) or
>>> die("Can't execute first query");
>>>
>>> $query = "INSERT INTO
>>> \"tblContactInformation\"(\"contactItem\",\"contactType\") VALUES
>>> ('$contact_info1','$contact_type')";
>>> /* echo "Second query: " . $query . "<br /
>>> >"; */
>>> $pg_contact_ins = pg_query($query) or
>>> die("Can't execute 2nd query");
>>> $query = "INSERT INTO
>>> \"brdgPeopleContactInformation\" (\"peopleId\",
>>> \"contactInformationId\",rank, type) VALUES
>>> (currval('\"tblPeople_peopleId_seq
>>> \"'),currval('\"tblContactInformation_contactInformationId_s eq
>>> \"'), '$cont_rank', '$cont_loc')";
>>> /* echo "Third query: " . $query . "<br /
>>> >"; */
>>> $pg_peop_cont_ins = pg_query($query) or
>>> die("Can't execute 3rd query");
>>> $query = "SELECT
>>> currval('\"tblPeople_peopleId_seq\"')";
>>> $person_id = pg_query($query) or
>>> die("Can't execute 4th query");
>>> echo "person id is " . $person_id .
>>> "
";
>>> commit;
>>>
>>> This is PostgreSQL 8.3.6, PHP 5, on Solaris 10.
>>>
>>> Thanks for your time.
>>>
>>> Carol
>>>
>>>
>>
>> --
>>
>> S pozdravem
>>
>> Daniel Tlach
>> Freelance webdeveloper
>>
>> Email: mail [at] danaketh.com
>> ICQ: 160914875
>> MSN: danaketh [at] hotmail.com
>> Jabber: danaketh [at] jabbim.cz
>
--Apple-Mail-6-229959795--
