Seite 1 von 1
Ich seh den Wald vor lauter Bäumen nicht mehr....
Verfasst: 11.09.2004 14:07
von BrahmA
Sitze gerade an einem kleine Script, nix großes, aber irgendwie komm ich nicht weiter! Ich bekomme immer folgende Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/sde/zeige.php on line 24
Und zwar geht es um folgendes Script:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DE-Ressis</title>
</head>
<body>
<?PHP
include "connect.php";
$result = mysql_db_query($dbname,"SELECT * FROM ressources ORDER BY id");
//$daten = mysql_db_query($db_name,"SELECT * FROM ressourcen");
//$menge = mysql_fetch_row(array($daten));
echo $result;
//echo $menge;
?>
<table border=1 align="center">
<tr><!--td>h_id</td-->
<td>name</td>
<td>M</td>
<td>D</td>
<td>I</td>
</tr>
<?PHP
while($row = mysql_num_rows($result)) {
//while ($row = mysql_fetch_array($daten)) {
?>
<tr>
<!--td><?=$row[id]?> </td-->
<td><?=$row[name]?></td>
<td><?=$row[m]?></td>
<td><?=$row[d]?></td>
<td><?=$row[i]?></td>
</tr>
<? }
?>
</table>
</body>
</html>
Zeile 24 ist diese:
Wo liegt da der Fehler? Hab das schon mit diversen anderen Funktionen getestet, aber es ist immer das gleiche....

Verfasst: 11.09.2004 14:11
von DaniM
Wieso machst du nicht gleich mysql_fetch_array($daten); das geht doch viel einfacher.
Außerdem machste das so $row['name'] also das Attribut als String reinschreiben das ist erstes schöner und zweitens funktioniert das auch überall.
Mit freundlichen Grüßen,
Dani
EDIT: So meinte ich das:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DE-Ressis</title>
</head>
<body>
<?php
include "connect.php";
$result = mysql_db_query($dbname,"SELECT * FROM ressources ORDER BY id");
?>
<table border=1 align="center">
<tr><!--td>h_id</td-->
<td>name</td>
<td>M</td>
<td>D</td>
<td>I</td>
</tr>
<?PHP
while($row = mysql_fetch_array($result)) {
//while ($row = mysql_fetch_array($daten)) {
?>
<tr>
<!--td><?=$row['id']?> </td-->
<td><?=$row['name']?></td>
<td><?=$row['m']?></td>
<td><?=$row['d']?></td>
<td><?=$row['i']?></td>
</tr>
<? }
?>
</table>
</body>
</html>
Verfasst: 11.09.2004 14:16
von BrahmA
Also mit Deinem Script bekomme ich folgenden Fehler:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/sde/zeige2.php on line 20
Verfasst: 11.09.2004 14:25
von Blutgerinsel
Mir stellt sich die Frage was du versuchst?
mysql_num_rows....Ermittelt die Zeilenanzahl...du treibst mit ner Schleife dein Spielchen? Warum? lediglich ein Wert erhälst du
-> selbstklärend
http://de2.php.net/manual/de/function.m ... m-rows.php
Im übrigen würde ich dir nahelegenen die Verbindung zur DB zu optimieren. Denn wenn ein Connect zur DB scheitert ist es nutzlos wenn man noch die DB auswählt und versucht ein SQL Statement abzusetzen.
Macht keinen Sinn. Abgesehen davon werden Fehler vorgebeugt.
Ansonsten bleiben bloss Fehler beim Verbinden zur DB...
Anmerkung: Ich glaube nicht da du PHP 4.0.x noch einsetzst. Oder?
mysql_db_query ist nämlich seit dieser Version veraltet und wurde durch mysql_query(); abgelöst.....
2. Anmerkung:
Dies funktioniert zwar ist aber nicht gut. Bei neuen Konstanten durch das PHP Team u.A. könnte ein reserviertes Wort draus werden mit der Folge das dies in einen Fehler läuft.
daher bitte
verwenden.
Sorry für meine Kritik
P.S.: Linuxer helfe ich gerne

Verfasst: 11.09.2004 14:28
von PhilippK
Ersetze mal
Code: Alles auswählen
$result = mysql_db_query($dbname,"SELECT * FROM ressources ORDER BY id");
durch
Code: Alles auswählen
$result = mysql_db_query($dbname,"SELECT * FROM ressources ORDER BY id") OR die(mysql_error());
Gruß, Philipp
Verfasst: 11.09.2004 14:30
von Blutgerinsel
gute Idee Philipp jedoch würde ich vorher mysql_db_query durch mysql_query ersetzen.
Sie wird als veraltet eingestuft und daher möglichweise an gewissen Punkten Fehler anfällig
Verfasst: 11.09.2004 14:41
von BrahmA
Hey, super! Fehler ist weg, stattdessen kommt
No Database Selected
und damit komm ich schon mal weiter.....
Auchja, hab PHP-Version 4.3.4, müsste mal updaten, eilt aber nicht, ist der lokale Testserver, also kein Problem mit Sicherheitslücken.....
Verfasst: 11.09.2004 16:01
von r4bbIt
zum DB connecten
Code: Alles auswählen
$connection = mysql_connect ("HOST", "USERNAME", "PASSWORT");
if(!mysql_select_db("DATENBANKNAME", $connection))
{
die ("Keine Verbindung zur Datenbank");
}
HOST
USERNAME
PASSWORT
DATENBANKNAME
musst du noch ersetzen
Verfasst: 12.09.2004 13:21
von BrahmA
Danke für die Antworten, jetzt gehts!
@r4bbIt:
Hatte zwar schon ein connect, war ja nicht das Problem, aber Deins sieht eleganter aus, deswegen klau ich mir das mal eben....
