PHP Doku:: Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus - function.odbc-result-all.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAbstraktionsebenenODBC (Unified)ODBC Funktionenodbc_result_all

Ein Service von Reinhard Neidl - Webprogrammierung.

ODBC Funktionen

<<odbc_procedures

odbc_result>>

odbc_result_all

(PHP 4, PHP 5)

odbc_result_all Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus

Beschreibung

int odbc_result_all ( int $result_id [, string $ format ] )

Liefert die Anzahl Reihen im Abfrageergebnis result_id zurück, wenn ein Fehler auftritt FALSE.

odbc_result_all() gibt alle Reihen eines SQL-Abfrageergebnisses result_id aus einem odbc_exec()-Aufruf als HTML-Tabelle aus. Mit dem optionalen String format kann ein allgemeines Tabellenformat angegeben werden.


11 BenutzerBeiträge:
- Beiträge aktualisieren...
vaibhav
8.06.2010 9:49
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
30.04.2009 11:26
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
10.08.2006 9:22
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
9.12.2005 18:41
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
2.05.2004 11:12
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>&nbsp;</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
24.06.2003 19:21
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
2.04.2003 20:31
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
4.12.2002 12:47
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>&nbsp;</td>";
                }
                else
                {
                    $strTable .= "<td $sRow>". odbc_result($res, $n) . "</td>";
                }

            }
        $strTable .= "</tr>";
    }
       
    $strTable .= "</table>";
   
    Print $strTable;
   
}
rabbott at calstatela dot edu
16.08.2000 2:46
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
25.03.2000 22:49
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.
Cwhite1000 at yahoo dot com
23.04.1999 2:39
Here is an example of how to use the form argument :
<?php
odbc_result_all
($res1, "BGCOLOR='#AAFFAA' border='3' width=30% bordercolordark='#FF0000'");
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)