leere Sessions nicht in DB schreiben

Davon gehe ich mal aus, schließlich wird ja geprüft ob alle Variablen ungleich leer sind und erst dann wird die Schleife abgearbeitet...

PHP:
if(!empty($var) && !empty($var2) && !empty($var3) && !empty($var4) && !empty($var5) && !empty($var6) && !empty($var7) && !empty($var8) && !empty($var9) && !empty($var10)) 
{ 
//Hier deine Abfrage und co... 
} 
else 
{ 
//Eine der beidenen Variablen ist leer!  
}

Gruß
 
Wäre es denn dann so dass wenn nur eine Variable leer ist, alle anderen Varablen auch nicht in die DB geschrieben werden? Oder werden nur die nicht reingeschrieben die leer sind und alle anderen aber schon? :confused:
 
Ich hab momentan keine Möglichkeit das zu testen, aber du kannst es doch auch sonst mal selbst testen? :)
Einfach nen Echo in jede Schleife und dann guckst du was passiert wenn eine Var net belegt ist und wenn alle belegt sind!:)
 
Wie sagt man so schön: "Probieren geht über studieren" :)
Der letzte Schnipsel von fUnKuCh3n tut genau das was du willst, sobald eine Variable leer ist wir der "otherwise" Teil ausgeführt also kein Datenbankeintrag.
Boolsche Algebra

mfg
 
Ich habe nun den Code mal ausprobiert, jedoch kommt nun gar nichts mehr in der DB an! Was habe ich denn falsch gemacht? Sorry der Code kommt auf Seite 2! Hab ihn vergessen hier mit einzufügen!
 
Zuletzt bearbeitet:
Ich habe nun den Code mal ausprobiert, jedoch kommt nun gar nichts mehr in der DB an! Was habe ich denn falsch gemacht?

PHP:
<form method="post" action="neuanlage_projektangebot3b.php">

<?php  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  
if(!empty($_POST['pname'])) 
{
       $_SESSION['pname'] = $_POST['pname'];
} 

if(!empty($_POST['pbeschreibung'])) 
{
       $_SESSION['pbeschreibung'] = $_POST['pbeschreibung'];
} 

if(!empty($_POST['pbeginn'])) 
{
       $_SESSION['pbeginn'] = $_POST['pbeginn'];
} 

if(!empty($_POST['pende'])) 
{
       $_SESSION['pende'] = $_POST['pende'];
} 

if(!empty($_POST['pstunden'])) 
{
       $_SESSION['pstunden'] = $_POST['pstunden'];
} 

if(!empty($_POST['pstundensatz_a'])) 
{
       $_SESSION['pstundensatz_a'] = $_POST['pstundensatz_a'];
} 

if(!empty($_POST['pberufsform_a'])) 
{
       $_SESSION['pberufsform_a'] = $_POST['pberufsform_a'];
} 

if(!empty($_POST['pstandort'])) 
{
       $_SESSION['pstandort'] = $_POST['pstandort'];
} 

if(!empty($_POST['pweitere_informationen_a'])) 
{
       $_SESSION['pweitere_informationen_a'] = $_POST['pweitere_informationen_a'];
} 

if(!empty($_POST['panzahl_a'])) 
{
       $_SESSION['panzahl_a'] = $_POST['panzahl_a'];
} 

if(!empty($_POST['pberufsform_b'])) 
{
       $_SESSION['pberufsform_b'] = $_POST['pberufsform_b'];
} 

if(!empty($_POST['pstundensatz_b'])) 
{
       $_SESSION['pstundensatz_b'] = $_POST['pstundensatz_b'];
} 

if(!empty($_POST['pweitere_informationen_b'])) 
{
       $_SESSION['pweitere_informationen_b'] = $_POST['pweitere_informationen_b'];
} 

if(!empty($_POST['panzahl_b'])) 
{
       $_SESSION['panzahl_b'] = $_POST['panzahl_b'];
} 


if (isset($_POST['schreiben']) && !empty($_POST['pname']) && !empty($_POST['pbeschreibung']) && !empty($_POST['pbeginn']) && !empty($_POST['pende']) && !empty($_POST['pstunden']) && !empty($_POST['pstundensatz_a']) && !empty($_POST['pberufsform_a']) && !empty($_POST['pstandort']) && !empty($_POST['pweitere_informationen_a']) && !empty($_POST['panzahl_a']) && !empty($_POST['pstundensatz_b']) && !empty($_POST['pberufsform_b']) && !empty($_POST['pweitere_informationen_b']) && !empty($_POST['panzahl_b']) ) 
{
    $query = "INSERT into projekt_gep ( pname, pbeschreibung, pbeginn, pende, pstunden, pstundensatz_a, pberufsform_a, pstandort, pweitere_informationen_a, panzahl_a, pstundensatz_b, pberufsform_b, pweitere_informationen_b, panzahl_b ) 
VALUES ('" . $_POST['pname'] . "','" . $_POST['pbeschreibung'] . "','" . $_POST['pbeginn'] . "','" . $_POST['pende'] . "','" . $_POST['pstunden'] . "','" . $_POST['pstundensatz_a'] . "','" . $_POST['pberufsform_a'] . "','" . $_POST['pstandort'] . "','" . $_POST['pweitere_informationen_a'] . "','" . $_POST['panzahl_a'] . "','" . $_POST['pstundensatz_b'] . "','" . $_POST['pberufsform_b'] . "','" . $_POST['pweitere_informationen_b'] . "','" . $_POST['panzahl_b'] . "')"; 
    
     mysql_query($query, $connectionid) or die(mysql_error());
     mysql_close();
	 echo '<script language="JavaScript">window.location=("kunden_portfolio.htm");</script>';
}
else
{

}
session_destroy();
?>

Das Problem hierbei ist nun, dass er nur dann etwas in die DB schreibt wenn alle Felder ausgefüllt sind, jedoch soll es so sein das er nur die nicht in die DB schreibt die nicht ausgefüllt sind aber alle anderen trotzdem in die DB schreibt!

Was kann ich hier nun tun?
 
Zuletzt bearbeitet:
Also, irgendwie wiedersprechen sich deine Post's, erst meinst du er soll wenn alle belegt sind soll ers einfügen und dann nur die die belegt sind...?!

Wenn du nur die belegten einfügen willst dann lass es halt so, lösch die Abfragen und lass ihn die Daten so wie sie aus dem Formular kommen in die DB eintragen, und wenn ein <input> leer ist, dann trägt er halt nichts ein?
Oder wie habe ich deine Logik zu verstehen? :)
 
Ausgehend von dem Quelltext aus deinem zweiten Post und der Beschreibung aus dem ersten, denke ich, dass du folgendes suchst :)
PHP:
<form method="post" action="test.php">

<?php 
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  
    $_SESSION['pname'] = $_POST['pname'];
    $_SESSION['pbeschreibung'] = $_POST['pbeschreibung'];

/* Variablen initialisieren */
$qryFieldsArr = array(); # Die Tabellenspalten, welche aktualisiert werden sollen
$qryValuesArr = array(); # Die dazugehörigen Werte

/* Wenn die Session-Variable nicht leer ist, dann schreibe den Spaltennamen und den Wert der Session in die beiden Arrays */
if(!empty($_SESSION['pname']))
{
    $qryFieldsArr[] = '`pname`'; /* Spaltenname der MySQL-Tabellenspalte */
    $qryValuesArr[] = '"' . $_SESSION['pname'] . '"'; /* Der dazugehörige Sessionwert */
}

/* Gleiche Prozedur wie oben */
if(!empty($_SESSION['pbeschreibung']))
{
    $qryFieldsArr[] = '`pbeschreibung`';
    $qryValuesArr[] = '"' . $_SESSION['pbeschreibung'] . '"';
}

if (isset($_POST['schreiben']))
{
		/* implode macht aus einem Array einen String mit angegebenem Trennzeichen (hier das KOMMA).
		In unserem Fall wird aus dem Array $qryFieldsArr z.B. '`pname`, `pbeschreibung`' (ohne die `).
		Weitere Infos zu implode auf http://de.php.net/implode */
    $query = 'INSERT INTO `projekt_gep` ( ' . implode(', ', $qryFieldsArr) . ' ) VALUES ( ' . implode(', ', $qryValuesArr) . ' )'; 
    
     mysql_query($query, $connectionid) or die(mysql_error());
     mysql_close();
     echo '<script language="JavaScript">window.location=("portfolio.htm");</script>';
}
session_destroy();
?>
 
Zuletzt bearbeitet:
Ich weis ich drück mich manchmal echt e aus! Also es ist so!

Der User soll seine Daten vorher eingeben, dabei wird er durch mehrere Formulare geführt. Zum schluss soll er die Möglichkeit haben diese daten nocheinmal zu bearbeiten!

Dabei soll er Datensätze löschen können. Diese Datensätze die aus dem Formular auf der Bearbeitungsseite gelöscht worden sollen dann nicht in die Datenbank geschreiben werden, da dann ja leere zeilen entstehen würden. Somit muss vorher geprüft werden welche Session variablen belegt sind und welche nicht! Und das ist mein Problem ich weis nicht so recht wie ich dieses Problem lösen soll!

zu MAu: Kannst du vielleicht deinen code etwas kommentieren damit ich weis wie du das meinst was du da zusammen geproggt hast Wäre sau nett von dir!

Habt ihr mich jetz verstanden wie es ablaufen soll? Sonst erkläre ich das ganze nch etwas genauer!

Vielen vielen dank für die Hilfe bisher....
 
Kein Thema, Quelltext oben kommentiert.
Nachtrag
Was mir jetzt grad auffällt ist, dass die Felder, die dann nicht eingetragen (wo die Session leer ist) werden, mit dem default-Wert der MySQL Tabelle gefüllt werden (da es sich ja um ein INSERT handelt...). Ist das dein Ziel? Sonst wird dich mein Code auch nicht weiter bringen, da ich dich nicht richtig verstanden hab. :)
 
Zuletzt bearbeitet:
Zurück