php - Problem with "Cannot add or update a child row: a foreign key constraint fails" -
i can seem fix little bug have. have dynamic list menu carries establishment id's of club establishments. user can add event on site info such : event_id, event_name, event_venue, event_date, establishment_id
...etc. field establishment_id can null , default null.
the above establishment_id fk of table establishments(establishment_id).
a user can either choose pick establishment if event adding happening there or can leave blank if there no establishment connected it.
e.g.
select crooked q'z haven brew bistro
my code dynamic list menu
<label for="establishment_link"></label> <select name="establishment_link" id="establishment_link"> <option selected value="" <?php if (!(strcmp("", $row_establishment_list['establishment_id']))) {echo "selected=\"selected\"";} ?>>select</option> <?php { ?> <option value="<?php echo $row_establishment_list['establishment_id']?>"<?php if (!(strcmp($row_establishment_list['establishment_id'], $row_establishment_list['establishment_name']))) {echo "selected=\"selected\"";} ?>><?php echo $row_establishment_list['establishment_name']?></option> <?php } while ($row_establishment_list = mysql_fetch_assoc($establishment_list)); $rows = mysql_num_rows($establishment_list); if($rows > 0) { mysql_data_seek($establishment_list, 0); $row_establishment_list = mysql_fetch_assoc($establishment_list); } ?> </select>
however, when leave blank error:
cannot add or update child row: foreign key constraint fails (`nnl`.`event`, constraint `event_ibfk_1` foreign key (`establishment_id`) references `establishment` (`establishment_id`))
the insert statement:
...
$establishment_link= $_post['establishment_link']; $establishment_link= mysql_real_escape_string($establishment_link);
...
$query2 = "insert event(user_id, event_name, event_description, event_photo_url, event_thumb_url, event_link_url, event_venue, event_telephone, event_email, establishment_id, event_date, event_time, event_entrance_fee, event_guest_appearances, event_dress_code, event_other_details) values ('$user_id', '$event_name', '$event_description', '$img_large', '$img_thumb', '$event_url', '$event_venue', '$event_telephone', '$event_email', '$establishment_link', '$date', '$time', '$event_fee', '$event_guests', '$event_dress', '$event_other')"; //execute query $qry_result2 = mysql_query($query2) or die(mysql_error());
how fix this?
show actual sql insert statement. first guess this:
insert events(...., establishment_id) values(...., '');
while should put null
insert events(...., establishment_id) values(...., null);
or not mention establishment_id on column list
insert events(...) values(...);
[after question edit]
it propobly said. try changing yout query this:
$query2 = "insert event(user_id, event_name, event_description, event_photo_url, event_thumb_url, event_link_url, event_venue, event_telephone, event_email, establishment_id, event_date, event_time, event_entrance_fee, event_guest_appearances, event_dress_code, event_other_details) values ('$user_id', '$event_name', '$event_description', '$img_large', '$img_thumb', '$event_url', '$event_venue', '$event_telephone', '$event_email', ".(empty($establishment_link) ? "null" : "'$establishment_link'").", '$date', '$time', '$event_fee', '$event_guests', '$event_dress', '$event_other')";
Comments
Post a Comment