Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
checkboxen ->mysqldatenbank [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
checkboxen ->mysqldatenbank


 
taurus
10-08-2001, 11:51 
 
Hey,
Ich bin ein totaler newbie in PHP und Mysql, jedoch habe ich schon ein projekt angenommen wo ich schon eine menge php und sql-coden muß.

Die Aufgabe: Formular mit unzähligen textfeldern und 9 Checkboxen in eine mysqldatenbank eintragen.
Die textfelder sind kein Problem, aber die Checkboxen kosten mir seit 2 Tagen den letzten Nerv.
Es soll der Wert der Box, falls sie checked ist, in die db eingetragen werden, sonst eben nicht.

Bitte hilfe ich bin wirklich am Ende!
Danke schon im Voraus

 
hannes
10-08-2001, 16:49 
 
also:
so muss der Name der 9Checkboxen sein:
check[1]
check[2]
check[3]
check[4]
...
check[9]
Und der Wert soll bei allen "ok" sein !

dann der PHP-Code:
for($a=0;$a<count($check);$a++){
if($check[$a]=="ok"){
...
}
}

 
hannes
10-08-2001, 16:50 
 
also:
so muss der Name der 9Checkboxen sein:
check[1]
check[2]
check[3]
check[4]
...
check[9]
Und der Wert soll bei allen "ok" sein !

dann der PHP-Code:
for($a=0;$a<count($check);$a++){
if($check[$a]=="ok"){
mysql_query("INSERT INTO tabelle (checkbox[".$a."]) VALUES ('ok')",$db);
}
}


Das war's !
Natürlich kannst du alles anpassen !

 
taurus
10-08-2001, 18:21 
 
Hat leider nicht funktioniert!
Hab alles ausgeteste - nix.
Es würde mir auch helfen, wenn du es ein wenig kommentieren könntest.

Anbei der PHP-code den ich Verwende:

<?php

if ($gesendet)
{
$db = mysql_connect();

$sqlab = "insert into person (name, ort)";
$sqlab .= "values ('$name', '$ort')";

mysql_db_query ("checkbox", $sqlab);

for($a=0;$a<count($check);$a++)
{
if($check[$a]=="ok")
{
mysql_query("INSERT INTO boxes (checkbox[".$a."]) VALUES ('ok')",$db);
}
}




$num = mysql_affected_rows();
if ($num>0)
$ausgabe = "Es wurde 1 Datensatz hinzugefügt";
else
{
$ausgabe = "Es ist ein Fehler aufgetreten,<br>es wurde kein Datensatz hinzugefügt";
}
mysql_close($db);
}
?>

 
hannes
10-08-2001, 18:48 
 
Deine Tabelle müsste also boxes heißen und 9 spalten namens checkbox[1]-checkbox[9] haben !

Nochmal überarbietet:
(Jetzt heißen die Spalten checkbox1-checkbox9)
<?php

if ($gesendet)
{
//MySQL konnektieren
$db = mysql_connect("localhost","username","passwort");
//Datenbank auswählen
mysql_select_db("datenbank",$db);

$sqlab = "insert into person (name, ort)";
$sqlab .= "values ('$name', '$ort')";

mysql_query ($sqlab,$db);

for($a=0;$a<count($check);$a++)
{
//Falls die jetzige Variable = "ok" ist, dann
if($check[$a]=="ok")
{
//schreibe in die Tabelle checkbox$a ($a steht für eine
//die zahl) den wert "ok"
$sql = mysql_query("INSERT INTO boxes (checkbox".$a.") VALUES ('ok')",$db);
}
}

//Ich glaube, dass dir hier ein ($sql) gefehlt hat
$num = mysql_affected_rows($sql);
if ($num>0){
$ausgabe = "Es wurde 1 Datensatz hinzugefügt";
}
else
{
$ausgabe = "Es ist ein Fehler aufgetreten,<br>es wurde kein Datensatz hinzugefügt";
}
mysql_close($db);
}
?>

FERTIG !

 
taurus
13-08-2001, 09:07 
 
Habe wieder alles probiert in allen varianten aber es funktioniert nicht!
HIIIIIIIIIIIIILLLLLLLLLLLLLLLLLFFFFFFFFFFFFFFFFFEEEEEEEEEEE!

Danke im Voraus

 
JoelH
13-08-2001, 11:22 
 
So hier jetzt wie es wirklich geht :

Die Formdatei formbox.php :

=======================================================

<form action="boxes.php" method="post">
<?php
for ($i=1;$i<=9;$i++)
{
echo"<INPUT type=\"checkbox\" name=\"box[".$i."] value=\"ok\">";
}
echo"<INPUT type=\"submit\" name=\"submit\">";
?>
</form>

======================================================

Die Datei boxes.php :

======================================================
<?php
$dbserver='192.168.140.14';
$dbuser='';
$dbpass='';
$dbname='test_jbb2';
$db = @mysql_connect($dbserver,$dbuser,$dbpass);
if ($db)
{
mysql_select_db($dbname,$db);
$query=" INSERT INTO boxes (id";
$values = ") VALUES (''";
for ($i=1;$i<=9;$i++)
{
if ($box[$i]=="on")
{
$z="box".$i;
$query=$query." ,".$z;
$values=$values." ,'1'";
}
else
{
$z="box".$i;
$query=$query." ,".$z;
$values=$values." ,'0'";
}
}
$query=$query.$values.")";
mysql_query ($query,$db);
}

?>

=====================================================
So und hier der CREATE für die Tabelle in der Datenbank test_jbb2 :

=====================================================
CREATE TABLE boxes (
id int(11) DEFAULT '0' NOT NULL auto_increment,
box1 int(11) DEFAULT '0' NOT NULL,
box2 int(11) DEFAULT '0' NOT NULL,
box3 int(11) DEFAULT '0' NOT NULL,
box4 int(11) DEFAULT '0' NOT NULL,
box5 int(11) DEFAULT '0' NOT NULL,
box6 int(11) DEFAULT '0' NOT NULL,
box7 int(11) DEFAULT '0' NOT NULL,
box8 int(11) DEFAULT '0' NOT NULL,
box9 int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);

=====================================================

Und das geht, ich hab es hier laufen !!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:24 Uhr.