Leerer Datensatz in MySQL durch PHP-Script

Mit dem untenstehenden Script werden Text und Bilder in die MySQL-Datenbank eingefügt. Klappt auch wunderbar.

Das Problem ist, dass bereits beim Aufruf des Script über den entsprechenden Link ein leerer Datensatz in die Tabelle eingefügt wird.

Lässt sich das irgendwie verhindern?
Danke für Eure Hilfe
Herbert

<?php require("../config.php");
$numoffile = 6; $file\_dir = "../images/"; $filename = array(); if ($\_POST) { for ($i=0;$i if (trim($\_FILES['myfiles']['name'][$i])!="") { $newfile = $file\_dir.$\_FILES['myfiles']['name'][$i]; move\_uploaded\_file($\_FILES['myfiles']['tmp\_name'][$i], $newfile); array\_push ($filename, $newfile); $j++; } } } if (isset($j)&&$j\>0); print " "; print ""; print" Title: "; for($i=0;$i "; } print ""; print ""; $sql = "INSERT INTO immobilien (title,image,imagea,imageb,imagec,imaged,imagee) VALUES ('$title','".$filename[0]."','".$filename[1]."','".$filename[2]."','".$filename[3]."',' ".$filename[4]."','".$filename[5]."')"; $con = @mysql\_connect($host, $user, $pass) or die("Keine Verbindung möglich: " . mysql\_error()); mysql\_select\_db($database, $con); // Datenbank wird geöffnet $rs = mysql\_query($sql, $con); ?\>

wie wäre es damit:

if ($_POST[‚action‘] == „Upload“) $rs = mysql_query($sql, $con);

@munichfreak,
danke für Deine Antwort hat aber leider nichts gebracht.
Noch einmal zur Verdeutlichung:
auf Seite 1 ist ein Link zu Seite 2 (Seite 2 = Script in meinem Posting). Nach klick auf den Link öffnet sich Seite 2 und trägt in diesem Moment bereits einen leeren Datensatz in die Datenbank ein. Trage ich nun meine Daten auf Seite 2 ein und klick auf „Speichern“ wird dieser Datensatz ganz normal gespeichert.

if ($_POST[‚action‘] == „Upload“) $rs = mysql_query($sql,
$con);

hmm, eigentlich sollte es klappen, lass dir einmal ein debug ausgeben:

if ($\_POST['action'] == "Upload") 
 {
 echo $\_POST['action'];
 $rs = mysql\_query($sql,$con);
 }

sag uns dann, was ausgegeben wird. Es sollte eigentlich nur in dem Fall, indem ein ausgegeben wird, etwas in die Datenbank geschrieben werden. Also wenn du nur per link auf dieses script weitergeleitet wirst ($_POST ist dann leer), dann ist es der Fall.

Bemerkung: du vergisst hoffentlich nicht, die Datenbankverbindung ordentlich abzuschliessen?

Gruss, Omar Abo-Namous

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

dann…

@munichfreak,
danke für Deine Antwort hat aber leider nichts gebracht.
Noch einmal zur Verdeutlichung:
auf Seite 1 ist ein Link zu Seite 2 (Seite 2 = Script in
meinem Posting). Nach klick auf den Link öffnet sich Seite 2
und trägt in diesem Moment bereits einen leeren Datensatz in
die Datenbank ein. Trage ich nun meine Daten auf Seite 2 ein
und klick auf „Speichern“ wird dieser Datensatz ganz normal
gespeichert.

wird von Seite 1 mit dem gleichen Befehl verlinkt nehm ich mal an, oder?
2 Möglichkeiten:

  1. Ändere das submit value=„Upload“ in ein „Uploadformular“ o.ä.
  2. überprüfe Dein Array nach Inhalten - wenn es keine (gültigen) inhalte hat, dann trag’ einfach nicht ein…
    Du musst ja nur eine geeignete Bedingung finden, um das INSERT bei leeren Einträgen auszuklammern. Wie genau Du das machst bleibt natürlich Dir überlassen.

Hallo @all,
hat alles nicht so ganz geklappt.
Ich habe mir jetzt mit einer ganz einfachen Lösung geholfen.
Ich habe in das Script ein zusätzliches Feld eingefügt und dieses als „unique“ deklariert. Diese Lösung ist mir eingefallen, da auf jedenfall eine eindeutige Nummer, die nur einmal vorkommen darf, vergeben werden muß.
Jetzt kann man solange auf den Upload-Button oder den Refresh-Button des Browers drücken wie man will, es passiert nichts, solange nicht die Nummer eingegeben wurde. Auch bei einem Aufruf der Seite passiert nichts.
Auf jeden Fall vielen Dank für Eure Vorschläge.
Gruß
Herbert

versteh ich das richtig?
Du unterdrückst das query mit einem ungültigem insert string?
Das ist aber nicht besonders schön…

naja… ist wohl das Ergebnis das zählt…