<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.ingres-fetch-array" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>ingres_fetch_array</refname>
  <refpurpose>Fetch a row of result into an array</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>array</type><methodname>ingres_fetch_array</methodname>
   <methodparam><type>resource</type><parameter>result</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>result_type</parameter></methodparam>
  </methodsynopsis>
  <para>
   This function is an extended version of
   <function>ingres_fetch_row</function>.  In addition to storing
   the data in the numeric indices of the result array, it also
   stores the data in associative indices, using the field names as
   keys.
  </para>
  <para>
   If two or more columns of the result have the same field names,
   the last column will take precedence. To access the another
   column or columns of the same name, you must use the numeric index of the
   column or make an alias for the column. For example:
   <informalexample>
    <programlisting role="php">
<![CDATA[
<?php

$result = ingres_query($link, "select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'"); 
$result = ingres_fetch_array($result);
$foo = $result["city"];
$bar = $result["country"];

?>
]]>
    </programlisting>
   </informalexample>
  </para>
  <para>
   With regard to speed, the function is identical to
   <function>ingres_fetch_object</function>, and almost as quick as
   <function>ingres_fetch_row</function> (the difference is
   insignificant).
  </para>
  <para>
   By default, arrays created by <function>ingres_fetch_array</function> start
   from position 1 and not 0 as with other DBMS extensions. The starting position
   can be adjusted to 0 using the configuration parameter <link
   linkend="ini.ingres.array-index-start">ingres.array_index_start</link>.
  </para>
  <note>
   <title>Related Configurations</title>
   <para>
    See also the <link
    linkend="ini.ingres.array-index-start">ingres.array_index_start</link>, <link
    linkend="ini.ingres.fetch-buffer-size">ingres.fetch_buffer_size</link>
    and <link linkend="ini.ingres.utf8">ingres.utf8</link>
    directives in <link linkend="ingres.configuration">Runtime
    Configuration</link>.
   </para>
  </note>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>result</parameter></term>
     <listitem>
      <para>
       The query result identifier
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>result_type</parameter></term>
     <listitem>
      <para>
       The result type. This <parameter>result_type</parameter> can be <constant>INGRES_NUM</constant> for
       enumerated array, <constant>INGRES_ASSOC</constant> for associative array, or
       <constant>INGRES_BOTH</constant> (default).
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns an array that corresponds to the fetched row,
   or &false; if there are no more rows
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Fetch a row of result into an array</title>
    <programlisting role="php">
<![CDATA[
<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_array($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>ingres_query</function></member>
    <member><function>ingres_num_fields</function></member>
    <member><function>ingres_field_name</function></member>
    <member><function>ingres_fetch_assoc</function></member>
    <member><function>ingres_fetch_object</function></member>
    <member><function>ingres_fetch_row</function></member>
   </simplelist>
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->