Wie in Datenbank abspeichern?

D

d_town

Hallo,

ich habe 7 felder die mit den Datum einer Woche gefüllt werden. Darunter Felder wo man die Schicht auswählen kann (Arbeitsschicht). Neben diesen Felder habe ich eine checkbox die die Felder aktiviert und wieder deaktiviert (nicht wichtig nur das ihr es wisst). Natürlich hat mein script weitere Felder wie email name usw. die funktionieren einwandfrei und deswegen werden sie hier keine weitere Erwähnung bekommen.

Die Felder sind durch nummerriert.

"datum" sind die Datums Felder
"datum_" sind die Schichten Felder

Ich will das wenn der User das Fomular abschickt die Daten in die Datenbank speichert. Die Datenbank tabelle hat eine Tabelle mit zeit und schicht.

Wie schaffe ich es das die Daten in die Datenbank bekomme

hier mal meine bisherigen Scripts:

auswahl.php

PHP:
<head>
	<title>Auswahl</title>


	
	 <script language="javascript" src="includes/kontroll_kasten_auswahl.js" type="text/javascript"></script> 
	

</head>

<td height="30">Datum :</td>
      <td><?php  
    
    $date = mktime(0, 0, 0, date('m'), date('d') - (date('w')) , date('Y'));
    
    for ($i = 0; $i < 7; $i++){
        $date = mktime(0, 0, 0, date('m', $date), date('d', $date)+1, date('Y', $date));       
?>
          <input name="datum<?php echo $i;?>" type="text" id="datum<?php echo $i;?>" value="<?php echo date('d.m.Y', $date); ?>" size="13" readonly="true">
          <input name="checkbox<?php echo $i;?>" type="checkbox" id="checkbox<?php echo $i;?>" onClick="this.form.datum<?php echo $i;?>.disabled=!this.checked;
this.form.datum_<?php echo $i;?>.disabled=!this.checked" value="" checked="checked" /></td>
      <td><?php 
    }
?></td>
      </tr>
    <tr>
      <td>Schicht :</td>
      <td><?php  
    
    
    
    for ($i = 0; $i < 7; $i++){
              
?>
        <select name="datum_<?php echo $i;?>"  id="datum_<?php echo $i;?>">
        <option value="Fruehschicht">Fruehschicht</option>
        <option value="Spaetschicht">Spaetschicht</option>
        <option value="Nachtschicht">Nachtschicht</option>
      </select></td>
      <td><?php 
    }
?></td>

Das Script was die Daten in die Datenbank speichert "d_auswahl.php"

Java:
<?php
include 'includes/_config.php';

mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[tag]','$_POST[zeit]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }
echo '<br><br><br><br><br><br><br><br><br><br><br><br><br><br><center>Sie wurden Eingetragen. Sie bekommen demn&auml;chst eine E-mail.  <a href="myaccount.php">My Account</a></center>' ;



mysql_close();
?>

das javascript mit dem Kästchen auswahl (aktivieren/deaktivieren) "kontroll_kasten_auswahl.js"

PHP:
<script language="javascript">
function deaktivieren(){ 
	if (document.getElementById('id1').checked == false)
	document.getElemntById('datum<?php echo $i;?>').disabled =true;
	
	}
	
	{ 
	if (document.getElementById('id1').checked == false)
	document.getElemntById('datum_0').disabled = true;
	}
</script>

kann einer helfen?



Mit freundlichen Grüßem
 
das alle daten die ausgewählt wurden sofort abgespeichert werden.
der speichert aber immer du das erste

erstes datum und erste schicht
 
Woher nimmst du das $_POTS['tag'] und $_POST['Zeit']?
Ich seh nur die folgenden Felder:
datum1bis datum7
datum_1 bis datum_7
checkbox1 bis checkbox7

Ansonsten so wie alles andere auch etwa so (achtung, hab natürlich nicht die richtigen Feldername etc)
PHP:
for ($i = 0; $i < 7; $i++){
    $sql = sprintf("INSERT INTO (datum, datum_, checkbox) VALUES ('%s', '%s', '%s')",
        mysql_real_escape_string($_POST["datum{$i}"]),
        mysql_real_escape_string($_POST["datum_{$i}"]),
        mysql_real_escape_string($_POST["checkbox{$i}"]));
    $result = mysql_query($sql);
}
 
hier mein speicherungs script. ich finde es ist zu groß und sieht unschön aus. falls man das nicht ändern kann ist es nicht schlimm.

wenn ich ein feld deaktiviere speichert er leere felder in die datenbank. was ich nicht will.
wie umgehe ich das?

PHP:
<?php
include 'includes/_config.php';

mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_0]','$_POST[zeit0]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }
echo '<br><br><br><br><br><br><br><br><br><br><br><br><br><br><center>Sie wurden Eingetragen. Sie bekommen demn&auml;chst eine E-mail.  <a href="myaccount.php">My Account</a></center>' ;







mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_1]','$_POST[zeit1]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }








mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_2]','$_POST[zeit2]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }








mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_3]','$_POST[zeit3]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }








mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_4]','$_POST[zeit4]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }








mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_5]','$_POST[zeit5]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }








mysql_select_db("lol");

$sql="INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)

VALUES
('$_POST[name]','$_POST[vorname]','$_POST[email]','$_POST[datum_6]','$_POST[zeit6]','$_POST[tel]','$_POST[id]')";

if (!mysql_query($sql))
  {
  die('Error: ' . mysql_error());
  }




mysql_close();
?>
 
schicht stimmt nicht in der tabelle denn es ist in der db tabelle zeit
das gleiche mit datum = tag
habe mich geirrt sorry
 
Jetzt nimmst du mein Beispiel und baust dein Script entsprechend um. Ist doch nicht schwer.

Also so:
PHP:
$sql = "INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id)
        VALUES ('%s','%s','%s','%s','%s','%s','%s')";

for ($i = 0; $i < 7; $i++){
    $sql = sprintf($sql,
        mysql_real_escape_string($_POST["name"]),
        mysql_real_escape_string($_POST["vorname"]),
        mysql_real_escape_string($_POST["email"]),
        mysql_real_escape_string($_POST["datum_{$i}"]),
        mysql_real_escape_string($_POST["zeit{$i}"]),
        mysql_real_escape_string($_POST["tel"]),
        mysql_real_escape_string($_POST["id"]));
        $result = mysql_query($sql);
}
 
Zuletzt bearbeitet:
doch find ich. schlag mich schon ne woche mit dem kram rum. habe noch andere scripts die nicht ganz richtig funktionieren.
ich werde es versuchen.

vielen dank für deine schnelle hilfe.
 
Zurück