Trädvy Permalänk
Medlem
Plats
Oskarshamn
Registrerad
Jul 2009

PHP + Mysql insert fråga.

Hej,

Jag har kollat runt på internet den senaste tiden och letat efter efter ett mysql insert script som inte skickar vidare tomma values.

Det jag har för tillfället ser ut så här:

$link = mysql_connect(server, dbuser, dbpass) or die ("Could not connect to mysql because ".mysql_error()); mysql_select_db(database) or die ("Could not select database because ".mysql_error()); $insert = mysql_query("insert into testtable (row1, row2, row3) values ('".$_POST['value1']."', '".$_POST['value2']."', '".$_POST['value3']."')") echo "Your data has been inserted succesfully.";

Skulle det gå att trycka in ett isset() statement någonstans eller på annat sätt så att mysql känner av att fältet/fälten är tomt/tomma och inte skickar ett tomt värde.

Tack på förhand!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2004

Inte den kortaste lösningen men men...

Funktion som kontrollerar om fälten har någon information...

function check_required_fields($required_array) { $field_errors = array(); foreach($required_array as $fieldname) { if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) )) { $field_errors[] = $fieldname; } } return $field_errors; }

Funktion som kontrollerar att fälten inte överstiger givet maxvärde...

function check_max_field_lengths($field_length_array) { $field_errors = array(); foreach($field_length_array as $fieldname => $maxlength ) { if (strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) { $field_errors[] = $fieldname; } } return $field_errors; }

$errors = array(); //Välj vilka fält som måste fyllas i... $required_fields = array('value1', 'value2', 'value3'); $errors = array_merge($errors, check_required_fields($required_fields)); //Välj fält som inte får överstiga ett visst antal tecken... $fields_with_lengths = array('value1' => 50); $errors = array_merge($errors, check_max_field_lengths($fields_with_lengths)); if (empty($errors)) { $insert = mysql_query("insert into testtable (row1, row2, row3) values ('".$_POST['value1']."', '".$_POST['value2']."', '".$_POST['value3']."')");}

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Trädvy Permalänk
Medlem
Plats
Oskarshamn
Registrerad
Jul 2009

Tackar tackar, Matte, fungerar fin fint, precis vad jag letade efter