Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
PHP und MSSQL [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
PHP und MSSQL


 
brainstocker
07-10-2003, 12:02 
 
Hallo,

habe ein Problem bei dem folgenden Script das Daten aus einem Microsoft SQL Server holen soll:

echo("<p>Hier ein Auszug aus der Tabelle Gruppen_Sprachen:</p>");

$result = mssql_query("SELECT * FROM dbo.Gruppen_Sprachen");
if (!$result) {
echo("<p>Fehler beim Ausführen der Abfrage!</p>");
exit();
}

while ( $row = mssql_fetch_array($result) ) {
$grg_nummer = $row[1];
$sprache = $row[2];
$bez = $row[3];
echo("<p>" . $bez . "</p>");
}

Es wird nur das hier ausgegeben:

<p>Hier ein Auszug aus der Tabelle Gruppen_Sprachen:</p>
<p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p>

Die Anzahl der <p></p> entsprechen der Anzahl der Datensätze.

Die Datensätze werden allerdings nicht angedruckt.

Wer kennt die Lösung?

Hoffe ich bin in diesem Forum richtig...

Gruss

brainstocker

 
XGremliN
07-10-2003, 12:04 
 
probiers mal so:
echo("<p>$bez</p>");

 
brainstocker
07-10-2003, 12:05 
 
Original geschrieben von XGremliN
probiers mal so:
echo("<p>$bez</p>");

Hab ich schon...
gleicher Effekt.

 
XGremliN
07-10-2003, 12:06 
 
Klammern weglassen

 
brainstocker
07-10-2003, 12:08 
 
Original geschrieben von XGremliN
Klammern weglassen

Hilft auch nicht...

 
brainstocker
07-10-2003, 12:10 
 
Hab schon mal überlegt ob es an der Zeile:

$bez = $row[3];

liegt. . (vielleicht wird da ein Wert zugewiesen der leer ist...

PS: In dem Table im SQL Server stehen in dieser Spalte ganz sicher Werte!

 
XGremliN
07-10-2003, 12:12 
 
Dann sieh Dir doch mal deine DB an, dann weißt Du doch ob die Spalte leer ist oder nicht.

 
brainstocker
07-10-2003, 12:13 
 
Original geschrieben von XGremliN
Dann sieh Dir doch mal deine DB an, dann weißt Du doch ob die Spalte leer ist oder nicht.

Verweis auf den Eintrag oben .. hab nochmal geändert...

 
XGremliN
07-10-2003, 12:17 
 
Ich nehm normalerweise MySQL und da mach ich es so:

$num = mysql_num_rows($res); // Anzahl der erhaltenen Zeilen zählen
for ($i=0; $i<$num; $i++)
{
$varname1 = mysql_result($res, $i, "spaltenname1"); // Werte zuweisen
...
$varnameN = mysql_result($res, $i, "spaltennameN");
}

Hab nur keine Ahnung ob es so eine Funktion wie mysql_num_rows() auch bei MSSQL gibt.

 
brainstocker
07-10-2003, 14:10 
 
Hallo und danke...

habe das ganze auf meine Bedürfnisse umgebaut und es geht...

LÖSUNG:

$num = mssql_num_rows($result);

for ($i=0; $i<$num; $i++)

{

$grp_nummer = mssql_result($result, $i, "Gruppen_Nr");
$sprache = mssql_result($result, $i, "Sprache");
$Bezeichnung = mssql_result($result, $i, "Bezeichnung");
echo "<p>$Bezeichnung</p>";

Danke an XGremliN.

Mich würde aber trotzdem interessieren wieso es mit der While Schleife nicht geklappt hat (mit MySQL gings bei mir auch mit der While Schleife)

Gruss

brainstocker

 
XGremliN
07-10-2003, 14:12 
 
Der Array-Index fängt bei 0 an zu zählen und nicht wie in deinem Script bei 1.
Soll heißen, dass Du eine Spalte zu weit gerutscht bist. :teach:

 
brainstocker
07-10-2003, 14:14 
 
Original geschrieben von XGremliN
Der Array-Index fängt bei 0 an zu zählen und nicht wie in deinem Script bei 1.

Stimmt...
Danke

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:53 Uhr.