(PHP 4, PHP 5)
odbc_result_all — Print result as HTML table
$result_id
[, string $format
] )Prints all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format.
result_id
The result identifier.
format
Additional overall table formatting.
Returns the number of rows in the result or FALSE
on error.
vaibhav (2010-06-08 00:49:28)
code for php mssql odbc connection and executing an stored procedure
<?php
$package_code = 'AUS03B';
$client_id = 499;
$conn = odbc_connect(DSN,USER,PASS,SQL_CUR_USE_ODBC);
//SQL_CUR_USE_IF_NEEDED,SQL_CUR_USE_ODBC ,SQL_CUR_USE_DRIVER SQL_CUR_DEFAULT
$sql_result = odbc_prepare($conn, "EXEC usp_packagesearch_xml '$package_code','$client_id'");
$result = odbc_execute($sql_result);
//$string = odbc_result($sql_result,1);
$string = odbc_result_all($sql_result,"border=1");
?>
alvaro at demogracia dot com (2009-04-30 02:26:59)
The $format parameter is an optional string that gets inserted in the <table> tag. The string is printed as-is. E.g.:
<?php
odbc_result_all($res, 'id="users" class="listing"');
?>
... prints:
<table id="users" class="listing" >...
result of odbc_result_all into an array (2006-08-10 00:22:26)
global $tableau;
function callback($buffer)
{
global $tableau;
$tableau=array();
$tab=explode("</tr>",$buffer);
array_pop($tab);
$entete=explode("</th>",substr($tab[0],11));
array_pop($entete);
foreach($entete as $numcol => $nomcol)
{ $entete[$numcol]=substr($nomcol,4); }
array_shift($tab);
foreach($tab as $numligne => $ligne)
{
$ligne=explode("</td>",substr($ligne,5));
array_pop($ligne);
foreach($ligne as $numcol => $cellule)
{
$tableau[$numligne][$entete[$numcol]]=
htmlentities(substr($cellule,4));
}
}
}
$req = "select * from table";
$res = odbc_do($id_conn, $req);
ob_start("callback");
odbc_result_all($res);
ob_end_flush();
ob_implicit_flush(0);
php dot net at jeffntom dot com (2005-12-09 09:41:28)
It is a bit easier and more powerful if you instead use CSS styles within the form argument"
odbc_result_all($res1, 'name="datatable" id="datatable"');
ZAPtheZAPs dot schulze dot zap at zap dot telstra dot com (2004-05-02 02:12:24)
a revised version marius' code that works with Memo fields. (also returns rather than prints strings)
function ODBCResourceToHTML($res, $sTable, $sRow)
{$cFields = odbc_num_fields($res);
$strTable = "<table $sTable ><tr>";
for ($n=1; $n<=$cFields; $n++)
{$strTable .= "<td $sRow><b>". str_replace("_", " ", odbc_field_name($res, $n)) . "</b></td>";}
$strTable .= "</tr>";
while(odbc_fetch_row($res))
{ $strTable .= "<tr>";
for ($n=1; $n<=$cFields; $n++)
{$cell = odbc_result($res, $n);
if ($cell=='') {$strTable .= "<td $sRow> </td>";}
else {$strTable .= "<td $sRow>". $cell . "</td>";}}
$strTable .= "</tr>";}
$strTable .= "</table>";
Return $strTable;}
DEAR MODERATORS: you would save yourselve much much time by making this entire manual into a wiki (ie like http://en.wikipedia.org ) and within a year this would be the best manual on anything!!
best wishes, Erich
marius at stones dot com (2003-06-24 10:21:52)
I've written this little function that functions simirarly to odbc_result_all, but works with MySQL:
/**
* This function emulates the odbc_result_all function, which will return a HTML table cosisting of
* the results of an SQL query.
* Usage: pass a mysql result set to this function, and it will return (not output) a string containing
* an HTML table
* Parameters:
* - $result is your mysql result set (result of a mysql_query() function call)
* - $tableFeatures is a string containing any HTML TABLE features you would like in the table
* (eg. BORDER="0" etc.)
*/
function _mysql_result_all($result, $tableFeatures="") {
$table .= "<!--Debugging output for SQL query-->\n\n";
$table .= "<table $tableFeatures>\n\n";
$noFields = mysql_num_fields($result);
$table .= "<tr>\n";
for ($i = 0; $i < $noFields; $i++) {
$field = mysql_field_name($result, $i);
$table .= "\t<th>$field</th>\n";
}
while ($r = mysql_fetch_row($result)) {
$table .= "<tr>\n";
foreach ($r as $kolonne) {
$table .= "\t<td>$kolonne</td>\n";
}
$table .= "</tr>\n";
}
$table .= "</table>\n\n";
$table .= "<!--End debug from SQL query-->\n\n";
return $table;
}
Enjoy...
cchristianed at netzero dot net (2003-04-02 10:31:55)
About the $result reseting array instead of using:
1) odbc_fetch_row($result, 1);
use:
2) odbc_fetch_row($result, 0);
1) will fail because it will not show first record, arrays start with subscript 0.
sanjay dot ghimire at kpmg-infodesign dot com (2002-12-04 03:47:45)
I wrote a small function slightly similiar to odbc_record_all, but there you can use format for both table and rows separately, which is not by odbc_record_all. hope it will be useful some how.
--- Sanjay, Germany
Here is code:
odbc_result_all_ex($result, 'Border=0 cellspacing=0 cellpadding=5', "style='FONT-FAMILY:Tahoma; FONT-SIZE:8pt; BORDER-BOTTOM:solid 1pt gree'");
function odbc_result_all_ex($res, $sTable, $sRow)
{
$cFields = odbc_num_fields($res);
$strTable = "<table $sTable>";
$strTable .= "<tr>";
for ($n=1; $n<=$cFields; $n++)
{
$strTable .= "<td $sRow><b>". str_replace("_", " ", odbc_field_name($res, $n)) . "</b></td>";
}
$strTable .= "</tr>";
while(odbc_fetch_row($res))
{
$strTable .= "<tr>";
for ($n=1; $n<=$cFields; $n++)
{
if (odbc_result($res, $n)=='')
{
$strTable .= "<td $sRow> </td>";
}
else
{
$strTable .= "<td $sRow>". odbc_result($res, $n) . "</td>";
}
}
$strTable .= "</tr>";
}
$strTable .= "</table>";
Print $strTable;
}
rabbott at calstatela dot edu (2000-08-15 17:46:00)
odbc_result_all($result) cycles through
$result. So a subsequent call to odbc_fetch_row($result) will fail.
You must use odbc_fetch_row($result, 1)
to reset $result. (But when I do that,
I get a crash!)
martin dot vgagern at gmx dot net (2000-03-25 13:49:14)
As some people stated in the ODBC overview, some buggy drivers always return the number of rows to be -1. AFAIK the only way to help this situation is to count the rows by calls to odbc_fetch_into or odbc_fetch_row and then build the table yourself.