Daten aus der DB einlesen und in html ausgeben

Alles, was PHP betrifft, kann hier besprochen werden.

Daten aus der DB einlesen und in html ausgeben

Postby tiw » 12. February 2007 21:09

Hallo,

ich möchte Daten aus ne Oracle-DB einlsen und in HTML ausgeben.
kann mir jemend sagen was ich hier falsch mache
Code: Select all
<?php
require_once('connect.php');
$query = 'SELECT id, name FROM kunde';
$result = dbx_query($dbc, $query);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
   echo "<tr>\n";
   foreach ($row as $field) {
       echo "<td>$field</td>";
   }
   echo "</tr>\n";
}
echo "</table>\n";
?>
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby Wiedmann » 12. February 2007 21:29

Also laut dem PHP-Manual fehlr das DBX_RESULT_UNBUFFERED Flag.

Ansonsten: Was passiert / passiert nicht wenn du das Script ausführst (nach Korrektur)?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby tiw » 13. February 2007 00:06

danke für die schnelle Antwort.

ich bekomme folgende Fehlermeldung:

Warning: oci_fetch_array() [function.oci-fetch-array]: ORA-01002: fetch out of sequence...


kannst du mir villeicht sagen was das DBX_RESULT_UNBUFFERED Flag ist und wie schaut die optimal Lösung aus :?:

danke im voraus
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby Wiedmann » 13. February 2007 00:10

kannst du mir villeicht sagen was das DBX_RESULT_UNBUFFERED Flag ist und wie schaut die optimal Lösung aus

Könnte ich, aber:
Wiedmann wrote:Also laut dem PHP-Manual fehlt das DBX_RESULT_UNBUFFERED Flag.

Warum schaust du da nicht selbst nach? Bis auf dieses Flag, entspricht doch dein Script eh schon genau dem Beispiel im Manual.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby tiw » 13. February 2007 01:03

wenn ich das verstanden habe, hätte ich dich nicht gefragt.
ich habe das Beispiel gelesen und nicht verstanden. ich habe es genauso wie es steht übernohmen (klar name angepasst), dann habe ich folgende Fehlermeldungen bekommen
Warning: dbx_query() [function.dbx-query]: not a valid dbx_handle-object.
Warning: dbx_fetch_row() [function.dbx-fetch-row]: not a valid dbx_result-object.

ps. ich bin noch Anfänger .
Last edited by tiw on 13. February 2007 01:17, edited 1 time in total.
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby Wiedmann » 13. February 2007 01:07

wenn ich das verstanden habe,

s/habe/hätte/g

Das hast du hoffentlich nicht ernst gemeint... Das Beispiel im Manual ist zu 100% dein Script, mit nur einer Änderung. Und diese Änderung wirst du doch sehen?

(Du schaust doch auch im PHP-Manual nach, und nicht in einer anderen obskuren Quelle?)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby tiw » 13. February 2007 01:19

ich habe das Beispiel gelesen und nicht verstanden. ich habe es genauso wie es steht übernohmen (klar name angepasst), dann habe ich folgende Fehlermeldungen bekommen
Warning: dbx_query() [function.dbx-query]: not a valid dbx_handle-object.
Warning: dbx_fetch_row() [function.dbx-fetch-row]: not a valid dbx_result-object.


ps. ich bin noch Anfänger
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby Wiedmann » 13. February 2007 01:22

ich habe es genauso wie es steht übernohmen

Dann zeig mal, was du jetzt genau für ein Script hast.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby tiw » 13. February 2007 01:25

Code: Select all
$result = dbx_query($link, 'SELECT id, name FROM leitung', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
   echo "<tr>\n";
   foreach ($row as $field) {
       echo "<td>$field</td>";
   }
   echo "</tr>\n";
}
echo "</table>\n";
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby Wiedmann » 13. February 2007 01:39

OK, lernen wir logisch denken und Manual lesen ;-)

Das ist dein orginales Script:
tiw wrote:
Code: Select all
<?php
require_once('connect.php');
$query = 'SELECT id, name FROM kunde';
$result = dbx_query($dbc, $query);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
   echo "<tr>\n";
   foreach ($row as $field) {
       echo "<td>$field</td>";
   }
   echo "</tr>\n";
}
echo "</table>\n";
?>


Im PHP-Manual steht, dass man beim Benutzen von dbx_fetch_row() im dbx_query() das Flag DBX_RESULT_UNBUFFERED setzten muss (3. Parameter). Die entsprechende Zeile im PHP-Manual sieht so aus:
PHP-Manual wrote:
Code: Select all
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);


Übertragen auf dein ursprüngliches Script sieht das dann so aus:
Code: Select all
<?php
require_once('connect.php');
$query = 'SELECT id, name FROM kunde';
$result = dbx_query($dbc, $query, DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
   echo "<tr>\n";
   foreach ($row as $field) {
       echo "<td>$field</td>";
   }
   echo "</tr>\n";
}
echo "</table>\n";
?>


In dem Script was du gerade benutzt hast (das Demo aus dem Manual) fehlt natürlich das was du vorher in dieser Zeile gemacht hast:
tiw wrote:
Code: Select all
require_once('connect.php');

--> Man muss natürlich noch eine Verbindung zum Server mit dbx_connect() aufbauen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby tiw » 13. February 2007 15:12

SUPER !
danke dir :) .
Die Verbindung zum Server ist in connect.php und schaut so aus

Code: Select all
 putenv("ORACLE_HOME=/soft/oracle-10.1.0.3/");
                putenv("ORACLE_SID=ora10g");

                $instance = "ora10g";

                $dbc = dbx_connect(
                                DBX_OCI8,
                                "localhost",
                                $instance,
                                "tralalaa",       // Benutzer
                                "trililiii"          // Oracle-PW
                                );

das Script funktionniert nun richtig, ich muss schauen warum es doppelt Ergebnisse liefert.
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost

Postby tiw » 13. February 2007 17:29

es liegt an die foreach-Schleife, dass die Einträge doppelt angezeigt werden.
Lösung :
Code: Select all
while ($row = dbx_fetch_row($result)) {
   echo "<tr>";
       
       echo "<td>$row[0]</td>";
       echo "<td>$row[1]</td>";
     
   echo "</tr>";
}
tiw
 
Posts: 11
Joined: 03. January 2007 10:21
Location: localhost


Return to PHP

Who is online

Users browsing this forum: No registered users and 6 guests