Da es nicht direkt um IPS geht, bitte Beitrag löschen wenn nicht gewünscht.
Um mich mit PHP und mysql weiterzubilden programiere ich ein bisschen für mich.
Bei meinem aktuellen Projekt komme ich leider nicht weiter. Vielleicht kann mir da jemand auf die Sprünge helfen.
Das Skript liest eine .txt Datei aus und soll mir alle Daten in die DB packen. Das funktioniert auch beim ersten befüllen.
Aber beim 2 Durchlauf klappt es nicht mehr. Ich denke das hier der Fehler liegt.
if(mysql_num_rows($einlesen)==1) return; // Wenn ja nix, Wenn nein anlegen
else $sql = "
INSERT INTO `burg`
(
`name`
)
VALUES
(
'$name'
);
";
$db_erg = mysql_query($sql)
or die("Anfrage fehlgeschlagen: " . mysql_error());
Wenn ich das return entferne meckert er wegen
$db_erg = mysql_query($sql)
Ich verstehe nur nicht warum. Hier das ganze Skript
<?
# Variablen ####################################################################
$text = file_get_contents("E:/IP-Symcon/LaK.txt");
$burg = explode("|", $text); // nach | trennen
# MySql Aufbau #################################################################
$mysqlhost="xxx.xxx.xxx.xxx"; // MySQL-Host angeben
$mysqluser="xxx"; // MySQL-User angeben
$mysqlpwd="xxx"; // Passwort angeben
$mysqldb="LaK"; // Gewuenschte Datenbank angeben
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die
("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht
waehlen.");
### Burgen als Datensatz anlegen #################################
for($i=1; $i < count($burg); $i++)
{
$burg1 = explode("
", $burg[$i]); // nach Zeilenumbruch trennen
$name = str_replace( "?", "", $burg1[0]);
$einlesen = mysql_query("SELECT name FROM burg WHERE name='$name'"); // Abfrage ob Datensatz vorhanden
if(mysql_num_rows($einlesen)==1) return; // Wenn ja nix, Wenn nein anlegen
else $sql = "
INSERT INTO `burg`
(
`name`
)
VALUES
(
'$name'
);
";
$db_erg = mysql_query($sql)
or die("Anfrage fehlgeschlagen: " . mysql_error());
for($t=1; $t < count($burg1); $t++)
{
$erz = explode("
", $burg[$t]); // nach zeilenumbruch trennen
$speer = str_replace( " ", "", $burg1[3]);
$speer = substr("$speer", 0, 5 ); // gibt "abcd" zurück
$schwert =str_replace( " ", "", $burg1[4]);
$schwert = substr("$schwert", 0, 5 ); // gibt "abcd" zurück
$bogen =str_replace( " ", "", $burg1[5]);
$bogen = substr("$bogen", 0, 5 ); // gibt "abcd" zurück
$armb =str_replace( " ", "", $burg1[6]);
$armb = substr("$armb", 0, 5 ); // gibt "abcd" zurück
$panzer =str_replace( " ", "", $burg1[7]);
$panzer = substr("$panzer", 0, 5 ); // gibt "abcd" zurück
$lanzen =str_replace( " ", "", $burg1[8]);
$lanzen = substr("$lanzen", 0, 5 ); // gibt "abcd" zurück
$hand =str_replace( " ", "", $burg1[9]);
$hand = substr("$hand", 0, 5 ); // gibt "abcd" zurück
$ochs =str_replace( " ", "", $burg1[10]);
$ochs = substr("$ochs", 0, 5 ); // gibt "abcd" zurück
$silber = sprintf ("%'5s",$burg1[16]);
$kupfer = sprintf ("%'5s",$burg1[15]);
$speer = sprintf ("%'5s",$speer);
$schwert =sprintf ("%'5s",$schwert);
$bogen =sprintf ("%'5s",$bogen);
$armb =sprintf ("%'5s",$armb);
$panzer =sprintf ("%'5s",$panzer);
$lanze =sprintf ("%'5s",$lanzen);
$time = strftime("%Y-%d-%m %H:%M:%S");
# $hand=0;
# $ochs=0;
$start="";
$ziel="";
$karte="";
$dauer="";
$angriff="";
# MySql Datei update ########################################################
$aendern = "UPDATE burg Set hand = '$hand', ochs = '$ochs', silber = '$silber', kupfer = '$kupfer', speer = '$speer', schwert = '$schwert', bogen = '$bogen', armb = '$armb', panzer = '$panzer', lanze = '$lanze' WHERE name = '$name'";
$update = mysql_query($aendern);
}
}
mysql_close($connection);
?>
Ziel soll sein, wenn der Eintrag schon vorhanden dann nur update, wenn nicht anlegen und dann befüllen.