Fehlermeldung beim online stellen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Fehlermeldung beim online stellen

Postby jsb » 09. October 2004 15:23

Ich habe folgendes php-script in einer Seite eingesetzt.
Bei der Überprüfung unter XAMPP für Windows Version 1.4.5 mit MySQL 4.0.20a-nt funktioniert alles wie geplant.
Nach übertrageung auf den Server des Providers (dort MySQL 3.23.58) bekam ich eine Fehlermeldung.
Darauf habe ich auf einem andern Rechner XAMPP ebenfalls mit MySQL 3.23.58 eingerichtet., und erhalte dort auch die Fehlermeldung.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in M:\xampp\htdocs\anw\anw_treffen\anw_treffen.php on line 54


Hier der PHP-code
Code: Select all
<?php
    // die Variablen für///////////////////////////////////////////////////////////////
//MySQL Host
$db_host = "localhost";
$db_user = "ahweb**";
$db_password = "********";

///////////////////////////////////////////////////////////////
//Datenbank
$db_name = "usr_ahweb34_1";


// Funktion zum Öffnen der Verbindung zum Datenbankserver
// und dem Auswählen der aktiven Datenbank
function opendb() {

  // als global definiert, damit sie nicht jeweils
  // per Argument übergeben werden müssen
  global $db_host;
  global $db_user;
  global $db_password;
  global $db_name;

  // Verbindung öffnen
  @$handle = mysql_pconnect ($db_host, $db_user, $db_password);

  if ($handle) {
    // wenn das Handle nicht FALSE ist,
    // Datenbank auswählen
    if (!(mysql_select_db ($db_name, $handle))) {
      // das Auswählen ging schief, also wird
      // das handle auf FALSE gesetzt.
      $handle = FALSE;
    }
  }
  // Das Handle wird zurückgegeben
  return $handle;
} //end function opendb

$res = mysql_db_query("usr_ahweb34_1",
          "SELECT  * FROM  `anw_treffen` WHERE  `jahr` = 2005 ORDER  BY  `beginn`  DESC");
   $num = mysql_num_rows($res);

   // Seitenbeginn

   echo "<h2>Treffen 2005</div></h2>";


   // Tabellenbeginn

   echo "<table border = 2 align = center cellspacing=6 cellpadding=8>";

   // Überschrift
   echo "<tr> <td><strong>Anlass</strong></td>";
   echo "<td><strong>Ort</strong></td> </td> <td><strong>Zeitraum</strong></td> </tr> ";
   for ($i=0; $i<$num; $i++)
   {
      $ti = mysql_result($res, $i, "titel");
      $be = mysql_result($res, $i, "beschreibung");
      $or = mysql_result($res, $i, "ort");
      $te = mysql_result($res, $i, "termin");
      $ya = mysql_result($res, $i, "jahr");
      $st = mysql_result($res, $i, "beginn");
      $lf = $i + 1;

      // Tabellenzeile mit -zellen
      echo "<tr> <td><strong>$ti</strong><br><em>$be</em></td>";
      echo "<td>$or</td> <td>$te</td>  </tr>";
   }

   // Tabellenende
   echo "</table>";


?>


Kann mir hier geholfen werden? Wo liegt mein Fehler?
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby Wiedmann » 09. October 2004 15:51

a) bevor man eine Datenbank befrägt, sollte man sich mit ihr verbinden und sich anmelden

b) mysql_db_query sollte man nicht mehr benutzen. Also erst ein mysql_select_db und dann mysql_query

c) sich die Fehlermeldungen von MySQL anzeigen zu lassen (mysql_error) war schon immer eine gute Hilfe
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jsb » 09. October 2004 16:02

Wiedmann wrote:a) bevor man eine Datenbank befrägt, sollte man sich mit ihr verbinden und sich anmelden

b) mysql_db_query sollte man nicht mehr benutzen. Also erst ein mysql_select_db und dann mysql_query


OK werde ich versuchen.

c) sich die Fehlermeldungen von MySQL anzeigen zu lassen (mysql_error) war schon immer eine gute Hilfe


Würde ich gern machen, bin nur noch nicht dahintergestiegen wie das geht.
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby jsb » 09. October 2004 16:35

Sicher das mit dem Verbinden mit der DB ist wohl nötig. aber das schein ja zu klappen. denn das identische Skript funktioniert ja auf dem Rechner mit
XAMPP für Windows Version 1.4.5 mit MySQL 4.0.20a-nt . Also da er mir die richtigen ergebnisse zeigt besteht wohl auch eine DB-Verbindung. Wieso sollte das dann unter der anderen Umgebung nicht so sein?
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby Wiedmann » 09. October 2004 16:57

Sicher das mit dem Verbinden mit der DB ist wohl nötig. aber das schein ja zu klappen.

Aha? Du verbindest dich in dem Script aber nirgends mit der DB...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jsb » 09. October 2004 17:51

Wiedmann wrote:
Sicher das mit dem Verbinden mit der DB ist wohl nötig. aber das schein ja zu klappen.

Aha? Du verbindest dich in dem Script aber nirgends mit der DB...


Code: Select all
  // Verbindung öffnen
  @$handle = mysql_pconnect ($db_host, $db_user, $db_password);


erfolgt mit dieser Zeile keine Verbindung?
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby Wiedmann » 09. October 2004 17:53

erfolgt mit dieser Zeile keine Verbindung?

Für sich alleine betrachtet: Ja.
Bei dir steht das aber innerhalb eine Funktion, die nirgends aufgerufen wird.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jsb » 09. October 2004 18:05

So ich habe den Cod nochmal wie folgt geändert.

Code: Select all
<html>
<head>
<title>Angeh&ouml;rigen-Netzwerk - Treffen</title>

<link href="*****>

<link rel="STYLESHEET" type="text/css" href="*">
</head>

<body>
<a name="TOP"></a>
<div align="center">
<?php
    // die Variablen für///////////////////////////////////////////////////////////////
//MySQL Host
$db_host = "localhost";

// mysql fuer xampp
// $db_user = "root";
// $db_password = "********";

// mysql fuer ahweb
$db_user = "ahweb34";
$db_password = "********";

///////////////////////////////////////////////////////////////
//Datenbank
$db_name = "usr_ahweb34_1";
$db_tabelle = "anw_treffen";

// Die Verbindung herstellen (mit Kontrolle):
//******************** Database-Connect
$verbindung = mysql_connect($db_host, $db_user, $db_passwort);
mysql_select_db($db_name,$verbindung);
//********
if ($verbindung) {echo "Ich bin drin mit $verbindung und der Datenbank $db_name und der Tabelle $db_tabelle";
}
else {echo "Was stimmt da nicht nicht?";
}
//**********************************************************************/

// Funktion zum Öffnen der Verbindung zum Datenbankserver
// und dem Auswählen der aktiven Datenbank
function opendb() {

  // als global definiert, damit sie nicht jeweils
  // per Argument übergeben werden müssen
  global $db_host;
  global $db_user;
  global $db_password;
  global $db_name;

  // Verbindung öffnen
  @$handle = mysql_pconnect ($db_host, $db_user, $db_password);

  if ($handle) {
    // wenn das Handle nicht FALSE ist,
    // Datenbank auswählen
    if (!(mysql_select_db ($db_name, $handle))) {
      // das Auswählen ging schief, also wird
      // das handle auf FALSE gesetzt.
      $handle = FALSE;
    }
  }
  // Das Handle wird zurückgegeben
  return $handle;
} //end function opendb

$res = 0;
//$res = mysql_query("usr_ahweb34_1","SELECT  * FROM  `anw_treffen` WHERE  `jahr` = 2005 ORDER  BY  `beginn`  DESC");

$res = mysql_query("SELECT  * FROM  `anw_treffen` WHERE  `jahr` = 2005 ORDER  BY  `beginn`  DESC");

//   $num = mysql_num_rows($res);
$num = mysql_num_rows($res);
echo "<p>Anzahl Datensätze : $num.<br>";


   // Seitenbeginn

   echo "<h2>Treffen 2005</div></h2>";


   // Tabellenbeginn

   echo "<table border = 2 align = center cellspacing=6 cellpadding=8>";

   // Überschrift
   echo "<tr> <td><strong>Anlass</strong></td>";
   echo "<td><strong>Ort</strong></td> </td> <td><strong>Zeitraum</strong></td> </tr> ";
   for ($i=0; $i<$num; $i++)
   {
      $ti = mysql_result($res, $i, "titel");
      $be = mysql_result($res, $i, "beschreibung");
      $or = mysql_result($res, $i, "ort");
      $te = mysql_result($res, $i, "termin");
      $ya = mysql_result($res, $i, "jahr");
      $st = mysql_result($res, $i, "beginn");
      $lf = $i + 1;

      // Tabellenzeile mit -zellen
      echo "<tr> <td><strong>$ti</strong><br><em>$be</em></td>";
      echo "<td>$or</td> <td>$te</td>  </tr>";
   }

   // Tabellenende
   echo "</table>";


?>

<hr width="98%">

<table width="98%" border="0" align="center">
   <tr>
      <td width="120"><h5><br>Stand: 10/2004</h5></td>
      <td align="right"><a href="../anw_info/anw_wir.htm" target="_self"><img src="../images/buttons/anw_left.gif" alt="&Uuml;ber uns ..." border="0" hspace="0" width="20" height="16"></a></td>
      <td align="center"><a href="../anw_titel.htm" target="_self"><img src="../images/buttons/anw_up.gif" alt="Zur Titelseite" border="0" width="16" height="20"></a></td>
      <td><a href="../anw_treffen/anw_treffen.htm" target="_self"><img src="../images/buttons/anw_right.gif" alt="Treffen des Netzwerks" border="0" width="20" height="16"></a></td>
      <td align="right" width="120"><a href="#TOP" target="_self"><img border="0" src="../images/buttons/top.gif" alt="Zum Seitenanfang" width="114" height="38"></a></td>
   </tr>
</table>
</div>
</body>
</html>


und auf meinem Rechner mit MySQL 4.20 fuktioniert es wieder.

Auf dem Rechner mit MySQL 3.23.58 erhalte ich diese Meldungen

Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'ahweb34@localhost' (Using password: NO) in M:\xampp\htdocs\anw\anw_treffen\anw_treffe.php on line 33

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in M:\xampp\htdocs\anw\anw_treffen\anw_treffe.php on line 34
Was stimmt da nicht nicht?
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in M:\xampp\htdocs\anw\anw_treffen\anw_treffe.php on line 75


Ein Verbindungsaufbau mit dem Benutzernamen und Passwort mit MySQL Control Center klappt. Also da stehen die richtigen Werte.

Und dann auf dem Rechner im Internet (also dem wo es entgültig laufen soll)
Warning: mysql_connect(): Access denied for user: 'ahweb34@localhost' (Using password: NO) in /home/www/ahweb34/html/anw_treffen/anw_treffe.php on line 33

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/www/ahweb34/html/anw_treffen/anw_treffe.php on line 34
Was stimmt da nicht nicht?
Warning: mysql_query(): Access denied for user: 'wwwrun@localhost' (Using password: NO) in /home/www/ahweb34/html/anw_treffen/anw_treffe.php on line 72

Warning: mysql_query(): A link to the server could not be established in /home/www/ahweb34/html/anw_treffen/anw_treffe.php on line 72

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/ahweb34/html/anw_treffen/anw_treffe.php on line 75


Ein Verbindungsaufbau mit dem Benutzernamen und Passwort über phpMyAdmin klappt. Also da stehen die richtigen Werte.
Ich verstehe nix mehr. :-(
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby Wiedmann » 09. October 2004 18:15

$db_password != $db_passwort

Vielleicht solltest du auch mal deine Einstellungen zum error_reporting anpassen...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jsb » 09. October 2004 18:38

Hura :D es klappt. es läuft.!!!

Danke hast mir sehr geholfen.

Wiedmann wrote:Vielleicht solltest du auch mal deine Einstellungen zum error_reporting anpassen...


Frage was ist gemeint.
User avatar
jsb
 
Posts: 38
Joined: 26. March 2004 13:50
Location: Berlin

Postby Wiedmann » 09. October 2004 18:51

Frage was ist gemeint.

PHP4/5 "php.ini":
error_reporting = E_ALL

oder PHP5 "php.ini":
error_reporting = E_ALL | E_STRICT
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 35 guests