File: sesam-fetch-array.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (139 lines) | stat: -rw-r--r-- 4,980 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- splitted from ./en/functions/sesam.xml, last change in rev 1.1 -->
  <refentry id="function.sesam-fetch-array">
   <refnamediv>
    <refname>sesam_fetch_array</refname>
    <refpurpose>Fetch one row as an associative array</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>array</type><methodname>sesam_fetch_array</methodname>
      <methodparam><type>string</type><parameter>result_id</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>whence</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>offset</parameter></methodparam>
     </methodsynopsis>
    <para>
     Returns an array that corresponds to the fetched row, or
     &false; if there are no more rows.
    </para>
    <para>
     <function>sesam_fetch_array</function> is an alternative version
     of <function>sesam_fetch_row</function>.  Instead of storing the
     data in the numeric indices of the result array, it stores the
     data in associative indices, using the field names as keys.
    </para>
    <para>
     <parameter>result_id</parameter> is a valid result id returned by
     <function>sesam_query</function> (select type queries only!).
    </para>
    <para>
     For the valid values of the optional
     <parameter>whence</parameter>and
     <parameter>offset</parameter> parameters,
     see the <function>sesam_fetch_row</function> function for
     details.
    </para>
    <para>
     <function>sesam_fetch_array</function> fetches one row of data
     from the result associated with the specified result identifier.
     The row is returned as an associative array.  Each result column
     is stored with an associative index equal to its column
     (aka. field) name. The column names are converted to lower case.
    </para>
    <para>
     Columns without a field name (e.g., results of arithmetic
     operations) and empty fields are not stored in the array.  Also,
     if two or more columns of the result have the same column names,
     the later column will take precedence.  In this situation, either
     call <function>sesam_fetch_row</function> or make an alias for
     the column.
     <informalexample>
      <programlisting role="sesam">
<![CDATA[
SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     A special handling allows fetching "multiple field" columns
     (which would otherwise all have the same column names).  For each
     column of a "multiple field", the index name is constructed by
     appending the string "(n)" where n is the sub-index of the
     multiple field column, ranging from 1 to its declared repetition
     factor. The indices are NOT zero based, in order to match the
     nomenclature used in the respective query syntax.  For a column
     declared as:
     <informalexample>
      <programlisting role="sesam">
<![CDATA[
CREATE TABLE ... ( ... MULTI(3) INT )
]]>
      </programlisting>
     </informalexample>
     the associative indices used for the individual "multiple field"
     columns would be <literal>"multi(1)"</literal>,
     <literal>"multi(2)"</literal>, and <literal>"multi(3)"</literal>
     respectively.
    </para>
    <para>
     Subsequent calls to <function>sesam_fetch_array</function> would
     return the next (or prior, or n'th next/prior, depending on the
     scroll attributes) row in the result set, or
     &false; if there are no more rows.
    </para>
    <example>
     <title>SESAM fetch array</title>
     <programlisting role="php">
<![CDATA[
<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table:
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
    echo "<tr>\n";
    echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
    echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>
]]>
     </programlisting>
    </example>
    <para>
     See also: <function>sesam_fetch_row</function> which returns an
     indexed array.
    </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:"../../../../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
-->