offline MySQL offline arbeitet anders als online?

Dr_Ogen

Erfahrenes Mitglied
Ich bin in Sache MySql und Php ein Neueinsteiger und bin gleich bei meinem ersten Projekt auf ein mir unverständliches Problem gestoßen.

Ich habe zu Hause auf meinem Rechner einen Apache Server zur Entwicklung von php-Datein, sowie einen MySql Server laufen.
Ich habe mit Hilfe dieser 2 Komponenten folgenen Script entwickelt:
Code:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>Creating Database and Tabels</title>
</head>
<body>

<?
   $DB_vorhanden = false;
   $Verbindung = @mysql_connect ("localhost", "htmlserv_GYMLAN", "fakers001");

   if($Verbindung){
	echo "Verbindung hergestellt...<br>";
   }else{
	echo "<b>Verbindung fehlgeschlagen!</b><br>";
   }	


   for ($n = 0; $n < mysql_num_rows(mysql_list_dbs ($Verbindung)); $n++) {
      if (mysql_result(mysql_list_dbs ($Verbindung), $n) == "htmlserv_LAN2") {
         $DB_vorhanden = true;
      }
   }

   if (!$DB_vorhanden) {
	echo "Datenbank ist nicht vorhanden<br>";
      if (mysql_create_db("htmlserv_LAN2", $Verbindung)) {
         $DB_vorhanden = true;
	echo "Datenbank wurde erstellt<br>";
      }
   }else{
     echo "Datenbank ist vorhanden<BR>";
}

$SQLString = "SELECT max(RegNr) FROM zocker";

      $Ergebnis = mysql_db_query("htmlserv_LAN2",
                                  $SQLString, $Verbindung);
      if ($Ergebnis) {
         $NeueNr = mysql_result($Ergebnis, 0) + 1;
         $SQLString = "INSERT INTO zocker (RegNr, 
				       Name,
                                       Mail,
                                       Tel,
                                       Class,
                                       Status,
				       Code,
				       Platz)
                         VALUES ($NeueNr, 
				       'Uli Smidt',
                                       'karl@addcom.de',
                                       '01757632474',
                                       '11-3',
                                       'beides',
				       '1122',
				       'c7')";

         $Ergebnis = mysql_db_query("htmlserv_LAN2",
                                    $SQLString, $Verbindung);
         if ($Ergebnis) {
            echo "Neuer Eintrag wurde erstellt<br>";
         }
         else {
            echo "<b>Eintrag konnte nicht erstellt werden!</b><br>";
         }
      }
      else {
         echo "<b>RegNr konnte nicht gelesen werden!</b><br>";
      }

?>


</body>
</html>

Die offline Datebbank ist genau so beschaffen wie meine gemietete Datenbank von Webhosting-cities, welche folglich online arbeitet. Ich weis alerdings nicht ob die Versionen verschieden sind. Aber die Logindaten sind auf jeden Fall die selben.

Wenn ich also nun meine Script offline teste, klappt alles reibunglos und ich bekomme meine "Uli Smidt" in das Datenblatt Zocker integriert onlline muss jedoch folgene Überprüfung fehl schlagen, da ich die "Fehlermeldung" - " RegNr konnte nicht gelesen werden!" bekomme.
Code:
$SQLString = "SELECT max(RegNr) FROM zocker";

      $Ergebnis = mysql_db_query("htmlserv_LAN2",
                                  $SQLString, $Verbindung);
      if ($Ergebnis) { 
....
} else {
         echo "<b>RegNr konnte nicht gelesen werden!</b><br>";
      }

Ihr könnt euch das Problem auch auf meinem Server ansehen.
http://www.html-services.de/

Für eure Hilfe wäre ich sehr dankbar!

MfG
Martin Schüßler
 
Zuletzt bearbeitet:
Hallo

Ich bin zwar auch nur ein Grünschnabel was PHP und MySQL angeht, aber ich versuche es mal.
Der Fehler scheint hier zu liegen:
PHP:
$SQLString = "SELECT max(RegNr) FROM zocker";
Denn er kann RegNr nicht lesen und in dieser Zeile wird diese ja auch ausgelesen.
Versuche doch mal bei dieser Abfrage die Klammern wegzulassen. Also:
PHP:
$SQLString = "SELECT max RegNr FROM zocker";
Gibt es RegNr auch in Deiner Tabelle?
Welchen Datentyp hat dieses Feld?
Das automatische hochzählen könntest Du auch mit nem Index erreichen.

MfG Maik
 
Das erste Feld in meiner Tabele, also das RegNr-Feld ist ein INTEGER mit NOT NULL,
desweiteren wird ihm automatisch die Nr von der Datenbank zugewiesen.

SO ich werde jetzt mal ausprobieren ob dein Vorschlag funktioniert. Erstmal Danke für deine Antwort.

[edit]

Ich habs gerade ausprobiert und es hat leider nicht geholfen

Wie genau meintest du das mit dem Index?

[/edit]
 
Zuletzt bearbeitet:
Du kannst doch wenn du schon integer und not_null hast diesem Feld auch einfach ein auto_increment verpassen.

Das machst Du am einfachsten mit PHPmyAdmin.

Über ein Index-Feld ist ein Datensatz genau zu identifizieren, weil dieser nicht doppelt vergeben werden kann.
den legst du so an..
PHP:
CREATE TABLE `Test` (
`index` INT( 11 ) NOT NULL AUTO_INCREMENT ,
PRIMARY KEY ( `index` ) 
);
Dabei bekommt das Feld index auch gleich den Primärschlüssel.

MfG Maik
 
Zurück