Install script

Hallo Leute,
ich bin es mal wieder und zwar habe ich ein Problem. Ich habe ein install script geschrieben wo man nur den hostname, dbname, passwort, username eintragen muss und fertig ist. Das Problem ist die tabellen werden in der mysql datenbank nicht angelegt. Da kann eigentlich ein übertragunsfehler sein. aber eine Verbindung kann der auf bauen =/.

[code]

OVGU::IS - Install
MySQL Einstellungen
Hostname i.d.R. localhost oder 127.0.0.1 ansonsten ein Server-Name oder eine Server-IP.
Username Der Username der auf die Datenbank zugreiffen soll.
Passwort Das Password für den Username damit er sich an der Datenbank anmelden kann.
Datenbank Die Datenbank in der die Tabellen für das Iventar System angelegt werden sollen.

<? if($_POST['install']) { if(!($_POST['hostname'] and $_POST['username'] and $_POST['password'] and $_POST['datenbank'])) { echo('Bitte füllen Sie alle Felder aus !!!'); } else { if(!($db = mysql_connect ( $_POST['hostname'], $_POST['username'], $_POST['password']))) { echo('Es konnte keine Verbindung zur Datenbank herstellen'); } else { $connect_inhalt = ' <? $server ="'.$_POST["hostname"].'"; $database ="'.$_POST["datenbank"].'"; $user ="'.$_POST["username"].'"; $pass ="'.$_POST["password"].'"; $verbindung= @mysql_connect($server, $user, $pass); mysql_select_db($database, $verbindung); ?>';
	  //connect.php schreiben
	  $connect = fopen ( "../functions/connect.php", "w" );
	  fwrite ($connect, $connect_inhalt);
	  fclose($connect);

include ("…/functions/connect.php");

 if (

$query = ("use “.$_POST[‘datenbank’].”;

CREATE TABLE IF NOT EXISTS ".$_POST['datenbank'].".Artikel (
idArtikel INT NOT NULL AUTO_INCREMENT ,
Bezeichnung VARCHAR(45) NULL ,
Bestand VARCHAR(45) NULL ,
PRIMARY KEY (idArtikel) )
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS ".$_POST['datenbank'].".Lieferranten (
idLiefer INT NOT NULL AUTO_INCREMENT ,
Artikel_idArtikel INT NOT NULL ,
Name VARCHAR(45) NULL ,
Bestellnummer VARCHAR(45) NULL ,
Einzelpreis VARCHAR(45) NULL ,
PRIMARY KEY (idLiefer) ,
INDEX fk_Lieferranten_Artikel (Artikel_idArtikel ASC) ,
CONSTRAINT fk_Lieferranten_Artikel
FOREIGN KEY (Artikel_idArtikel )
REFERENCES ".$_POST['datenbank'].".Artikel (idArtikel )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS ".$_POST['datenbank'].".Drucker (
idDrucker INT NOT NULL ,
Artikel_idArtikel INT NOT NULL ,
Model VARCHAR(45) NULL ,
IP_Adresse VARCHAR(45) NULL ,
Raum VARCHAR(45) NULL ,
PRIMARY KEY (idDrucker) ,
INDEX fk_Drucker_Artikel1 (Artikel_idArtikel ASC) ,
CONSTRAINT fk_Drucker_Artikel1
FOREIGN KEY (Artikel_idArtikel )
REFERENCES ".$_POST['datenbank'].".Artikel (idArtikel )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
"))
{
echo “

$query


”;
echo "
$sql


";
echo “
Die Tabellen wurde angelegt und Sie können nun Zur Startseite gehen!
”;
if(!mysql_db_query($database, $query))
{
echo ‘Fehler, da geht was nicht…’;
}
else
{
echo ‘Ok, geht wohl…’;
}
}
}
	}
	
	
}

?>[/code]

Wie sieht den die Ausgabe aus? Fehlermeldungen,usw?!

Also fehler kommen keine nur halt das der die mysqlquery nicht in die datenbank einträgt!

Da müsste doch [quote]Fehler, da geht was nicht…[/quote]oder [quote]Ok, geht wohl…[/quote] rauskommen?!

achso ja sry.

das kommt

Haste mal ein einfaches Select Query drauflosgelassen?

$server ="'.$_POST["hostname"].'"; $database ="'.$_POST["datenbank"].'"; $user ="'.$_POST["username"].'"; $pass ="'.$_POST["password"].'"; $verbindung= @mysql_connect($server, $user, $pass) or die ("Keine Verbindung moeglich"); mysql_select_db($database, $verbindung) or die ("Die Datenbank existiert nicht");

also das ist die connect.php und da ist auch eine mysql_select anweisung drinne.

kann man denne einen fehler sehen im quelltext weil ich meine mal da muss irgend was falshc sein.

Na ich meinte eher, dass du mal Hardcoded irgendwas reinschreibst wie SELECT * FROM hanswurst_cms oder ähnliches und natürlich vorher mal mit dem PHPMyAdmin ne Tabelle anlegst und die mit 2,3 Daten fütterst.

also ich habe das ja vorher ohne dem install script gemacht und daten und alles gehen rein. ich will halt nur das für user benutzerfreundlich ist. Der soll ja per php Tabellen anlegen. also das man bsp. bei bplaced sich nur eine Datenbank anlegt und das wars

Jop, das ist mir klar, aber du musst eben auch Debuggen, die Arbeit wird dir keiner Abnehmen (zumindest nicht für Lau :wink:, gegen 5000 Euro die Stunde würde ich es vielleicht machen :smiley:).

  1. mysql_db_query soll seit Ewigkeiten schon nicht mehr benutzt werden. mysql_select_db und mysql_query stattdessen verwenden!

  2. Nicht “funzt nich” ausgeben, sondern mit mysql_error nachfragen, was der Fehler war.

  3. Mehrere Queries auf einmal an die DB zu übergeben, ist mit der mysql-Erweiterung nicht möglich.