PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In datenbank abspeicher wie?



SUNZ
25.02.2010, 11:27
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


<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>

</span>Das Script was die Daten in die Datenbank speichert "d_auswahl.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[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"



<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

DrWhiteLetter
25.02.2010, 14:52
Hi,

ich hab deine beiden Postings (gestern und heute) jetzt bestimmt 10x gelesen und trotzdem weiß ich nicht, was du eigentlich willst.

Kannst du deine Fragen evt. so stellen, dass jemand der dein Threads liest, sofort weiß, was du wissen willst?

Bei diesem hier könnte alles mögliche deine Frage beantworten.
- Weißt du nicht, wie man ein Formular erstellt und absendet?
- ...wie du deine Daten ans SQL-Statement übergibst?
- ...wie man PHP-Code ordentlich schreibt?
- Willst du, dass dir jemand dein Zeug fertig schreibt?
- ...

c4pone
26.02.2010, 22:18
Wie schaffe ich es das die Daten in die Datenbank bekomme
$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]')";


Ich schließe mich DrWhiteLetter (http://free-hack.com/member.php?u=37558) und sage ich hab keine ahnung was du möchtest ?

naja abgesehen davon ist dein code komplett unsauber.
Guck dir mal nen Objektorientiertes Tutorial an. Auch würde ich dir ans Herz legen sich mal mit Design Patterns auseinander zusetzen.
UND GANZ WICHTIG : Prüfe immer jede Eingabe die vom User kommt und speicher sie nicht ungeprüft in der Datenbank

Gruß c4pone

VeN0m
26.02.2010, 22:34
$array[0] geht, $array['keyname'] geht, aber $array[keyname] ist vom Syntax her schonmal falsch.
Auch definierst Du lediglich die Variable $sql, sendest diese Abfrage aber nie ab.
Bist Du Dir sicher, dass PHP in Verbindung mit MySQL etwas für Dich ist?
Oder wie wäre es, wenn Du erst einmal PHP grundlegend lernst (bzw. verstehst), bevor Du Dich an weitere Dinge traust?
Richtig wäre es in etwa so:



$name = $_POST['name'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$tag = $_POST['tag'];
$zeit = $_POST['zeit'];
$tel = $_POST['tel'];
$id = $_POST['id'];

mysql_query("INSERT INTO eingabe (name, vorname, email, tag, zeit, tel, id) VALUES ('$name','$vorname','$email','$tag','$zeit','$tel' ,'$id')");


Normalerweise sollte man allerdings dafür sorgen, dass keine unmaskierten Eingaben in die Datenbank eingetragen werden, um XSS oder Injectionen zu vermeiden.
Dazu kann man sich mal mysql_real_escape_string() bzw. htmlentities() und intval() ansehen.
Falls das immer noch nicht geht, versuche die(mysql_error()), um den zuletzt gemeldeten MySQL-Fehler auszugeben.

Weiterhin wäre es sinnvoller, time() in die Datenbank einzutragen (gibt einen aktuellen UNIX-Timestamp zurück), um diesen dann mit der Funktion strftime() beliebig zu formatieren.
Das spart einige Felder und eine Menge Aufwand.
Z.B. ist strftime("%d",time()) der aktuelle Tag als Zahl.