2011-02-18 2 views
0

문제점이 작은 버그를 수정하는 것처럼 보일 수 있습니다. 클럽 식당의 시설 ID를 가지고있는 동적 목록 메뉴가 있습니다. 사용자는 event_id, event_name, event_venue, event_date, establishment_id ... 등의 정보를 사용하여 내 사이트에 이벤트를 추가 할 수 있습니다. 필드 establishment_id는 null 일 수 있으며 기본값은 null입니다."자식 행을 추가하거나 업데이트 할 수 없습니다 : 외래 키 제약 조건이 실패합니다"

상기 establishment_id 테이블 시설의 FK (establishment_id)이다.

사용자는 자신이 추가되는 이벤트가 일어나는 경우 설립을 선택하는 선택할 수 있습니다 또는 그는에 연결된 설립이없는이 빈 경우 남길 수 있습니다.

예.

Cannot add or update a child row: a foreign key constraint fails (`nnl`.`event`, CONSTRAINT `event_ibfk_1` FOREIGN KEY (`establishment_id`) REFERENCES `establishment` (`establishment_id`)) 

삽입 문 : 내가 비워 둘 동적 목록 메뉴 그러나

<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 
    do { 
    ?> 
    <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> 

에 대한

Select 
    Crooked Q'z 
    The Haven 
    Brew Bistro 

내 코드는 내가 오류 얻을

을 .. .

(210)

...

$query2 = "INSERT INTO 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()); 

나는이 문제를 어떻게 해결합니까?

답변

1

실제 sql insert 문을 표시하십시오. 하지만 내 첫번째 추측은 그 결과는 다음과 같습니다

insert into events(...., establishment_id) values(...., ''); 

을가

insert into events(...., establishment_id) values(...., NULL); 

를 NULL을 넣어 또는 열 목록에 establishment_id 언급 안하면서

insert into events(...) values(...); 

[질문 편집 후]

그것은 propobly 내가 말한 것입니다. 이 질문을 다음으로 변경해보십시오.

$query2 = "INSERT INTO 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')"; 
+0

고맙습니다. 건배! 문제 해결됨. –

관련 문제