2010-12-30 3 views
1

OK 테이블에 두 행을 삽입하는 거래이다. 다른 테이블에 데이터를 넣는 3 가지 쿼리가 있습니다. 그들 중 2 명은 포함 된 파일에 있습니다. 나는 그것들을 메인 코드에 넣으려고 시도했다. 결과는 같았다. 처음 두 쿼리는 데이터와 빈 행이있는 행 하나를 삽입합니다. 세 번째는 잘 작동합니다. 여기에 코드가 있습니다. 메인 페이지에서 PHP 쿼리는 여기에,

:

<? $p=0; 
    if ($select2) 
    { 
     $event=$select2; 
    } 
    else 
    { 
     require_once("insert_gal_name.php5"); 
    } 

    if ($select) 
    { 
     $folder=$select; 
    } 
    else 
    { 
     require_once("insert_folder.php5"); 
     if (file_exists("Connections/".$folder)) 
     { 
     } 
     else 
     { 
      mkdir("Connections/$folder",0777); 
     } 
    } 

    while($p<$number) 
    { 
     $p++; 

     $dir = 'Connections/'.$folder.'/'; // Директорията в която ще се записват файловете 
     copy($_FILES['file']['tmp_name'][$p],"$dir".$_FILES['file']['name'][$p]); //Копиране на файла 
     echo "Файлът бе качен успешно!<br>"; // Извеждане на съобщение показващо, че файла е качен 
     if($_FILES['file']['name'][$p]) 
     { 
      $real_file_name = $dif_of_files.$_FILES['file']['name'][$p]; 
      $nom_file = str_replace(" ", "", $real_file_name); } 

      $query = "INSERT INTO gallery (name, title, day, month, year) VALUES ('$nom_file', '$event', '$day', '$month', '$year')"; 
      $result = mysql_query($query) or die(mysql_error()); 
     } 
     if (!$result) 
     { 
      echo "Error"; 
     } 
     else 
     { 
      echo "All data was uploaded successfuly."; 
     } 
?> 

그리고 여기에는 그들이 소스에 배치 된 순서에 포함되어 있습니다

<? $query = "INSERT INTO gallery_names (name) VALUES ('$event')"; 
    $result = mysql_query($query) or die(mysql_error()); 
    if (!$result) 
    { 
     echo "Error"; 
    } 
    else 
    { 
     echo "The gallery was created successfuly."; 
    } 
?> 

<? $query = "INSERT INTO folders (name) VALUES ('$folder')"; 
    $result = mysql_query($query) or die(mysql_error()); 
    if (!$result) 
    { 
     echo "Error"; 
    } 
    else 
    { 
     echo "The folder was created successfuly."; 
    } 
?> 
+0

정확히 어떤 쿼리가 두 번 이상 추가되고? 대신 ($ 선택), (=== 진정한 선택 $)의 경우 같은 (는 isset ($ 선택)) 또는 경우를 사용하는 경우 일을 – Citizen

+0

. 훨씬 정확하고 읽기 쉽고 디버깅하기 쉽습니다. – Citizen

+0

시민은 위의 코드에서 마지막 두 가지를 표시했습니다. '. $ 이벤트.' "," '$ 쿼리 = $ nom_file.. "(갤러리 (이름, 제목, 일, 월, 년) 값으로 INSERT' '' ',' ': – Victor

답변

2
<? 
    if($event!='') 
    { 
     $query1 = "INSERT INTO gallery_names (name) VALUES ('$event')"; 
     $result1 = mysql_query($query1) or die(mysql_error()); 
     if (!$result1) 
     { 
      echo "Error"; 
     } 
     else 
     { 
      echo "The gallery was created successfuly."; 
     } 
    } 
?> 
+0

첫 번째 쿼리는이 있어야한다. $ 일 " ','"$ 달 '', ''$ 년 " ')";.....' – RageD

+0

그래, 난 이미 내 데이터가 올바르게 삽입되어 있기 때문에이 문제가 있는지 모르겠어요 –

+0

을 수정 한 빈 행을 실행하십시오. 필자는 (isset ($ select)) puted를했는데 지금은 내 페이지를 포함하지 않고 공백 행만 삽입하면 – Victor

1

$ 선택 2 다음이 코드가 허위 인 경우 두 개의 인서트를한다. $ event가 비어 있으면 이것들 중 하나가 여러분이 가지고있는 문제처럼 들리는 빈 행이 될 것입니다.
$ select2 및 $ event의 값은 무엇입니까? 디버깅 해봤습니까?

+0

$ 선택 2에 대한 $$ 이벤트에 – Victor

+0

$ select2에 값이있을 때 $ 이벤트 만 설정됩니까? 그렇다면 insert_gal_name.php5에 삽입 할 것이 없기 때문에 이것은 빈 행의 원인이됩니다. – Jim

+0

아니요 $ event는 양식의 필드입니다. $가있는 경우 이전 이벤트 $ 이벤트는 필드의 값이 삽입 다른 선택 $의 값을 가정 인 선택 – Victor