Ich seh den Wald vor lauter Bäumen nicht mehr....

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Ich seh den Wald vor lauter Bäumen nicht mehr....

Beitrag 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]?>&nbsp;</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:

Code: Alles auswählen

while($row = mysql_num_rows($result)) { 
Wo liegt da der Fehler? Hab das schon mit diversen anderen Funktionen getestet, aber es ist immer das gleiche.... :(
Benutzeravatar
DaniM
Mitglied
Beiträge: 687
Registriert: 28.04.2003 19:22
Wohnort: Ulm
Kontaktdaten:

Beitrag 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']?>&nbsp;</td--> 
   <td><?=$row['name']?></td> 
   <td><?=$row['m']?></td> 
   <td><?=$row['d']?></td> 
   <td><?=$row['i']?></td> 
  </tr> 
  
<? } 
?> 

</table> 
</body> 
</html>
Ihr wohnt im Süd-Westen Deutschlands?
|- Nehmt an der Schwäbischen phpBB Usergroup teil!
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag 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
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

$menge=mysql_num_rows($result);
-> 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:

Code: Alles auswählen

$row[name]
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

Code: Alles auswählen

$row['name']
verwenden.

Sorry für meine Kritik :wink:

P.S.: Linuxer helfe ich gerne :wink:
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag von BrahmA »

Hey, super! Fehler ist weg, stattdessen kommt No Database Selected
und damit komm ich schon mal weiter..... :D


Auchja, hab PHP-Version 4.3.4, müsste mal updaten, eilt aber nicht, ist der lokale Testserver, also kein Problem mit Sicherheitslücken.....
Benutzeravatar
r4bbIt
Mitglied
Beiträge: 99
Registriert: 07.10.2003 17:32
Wohnort: Neuenkirchen City
Kontaktdaten:

Beitrag 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
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag von BrahmA »

Danke für die Antworten, jetzt gehts! :D

@r4bbIt:
Hatte zwar schon ein connect, war ja nicht das Problem, aber Deins sieht eleganter aus, deswegen klau ich mir das mal eben.... :wink:
Antworten

Zurück zu „Coding & Technik“