2010-02-08 1 views
2

PHP의 여러 드롭 다운 상자 양식 MySQL의에 제출 (2 부)

에서 토론의 연속이다

단어 종료

PHP Multiple Dropdown Box Form Submit To MySQL : "당신이 변수가 있으면, 그것을 만드는 사소한 새로운 행. " 나는 새 행을 만들려면 어떻게해야합니까

<form action="form.php" method="POST"> 
    <select name="colors[]" multiple="yes" size="2"> 
    <option>Red</option> 
    <option>Blue</option> 
    </select> 
    <input type="submit" value="Go!"> 
    </form> 

이 학습자 분명히하지 일반적으로 사실이지만 의심의 여지가 ... - D

의 형식은 다음을 감안할 때? 다음 스크립트

foreach($_POST['colors[]'] as $color) 
    { 
     $id = mysqli_real_escape_string($link, $color); 
     $sql = "INSERT INTO colors SET id = '$id'"; 
    } 

는 오류를 제기하지 않는 오류를 다음

$colors = $_POST['colors[]']; 
    for ($i = 0; $i < count($colors); $i++) 
     { 
      $color = $colors[$i]; 
      $sql = "INSERT INTO colors SET id = '$color'"; 
     } 

반면

Warning: Invalid argument supplied for foreach() in form.php on line ... 

을 제기하지만 행 생성하지 않습니다.

내가 무슨 하찮은를 놓친 거지?

답변

2

사용 :

foreach($_POST['colors'] as $color) 

여기 []을 지정할 필요가 없습니다, PHP는 배열 인 것을 알고있다. 당신의 foreach 루프의

+0

감사합니다! 그 오류를 없앴습니다. – PeterC

+0

@ PeterC : 그것은 희소식이며 감사합니다. – Sarfraz

+0

네, 그러나 여전히 데이터베이스를 만들어 행을 만들지 못하고 있습니다. 그래서 같은 테이블을 생성 : 표 색상을 CREATE \t ( ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 컬러 TEXT ); --- 나는 문제가 무엇인지 볼 수 없습니다 ... – PeterC

1

내부는 당신이 쿼리를 실행하는 것을 보지 못했다. INSERT 문을 사용하여 mysql_query을 실행해야합니다.

foreach($_POST['colors'] as $color) { 
$id = mysqli_real_escape_string($link, $color); 
$sql = "INSERT INTO colors SET id = '$id'"; 
    if (!mysql_query($sql)) { // if the query encountered a problem. 
    die('Invalid query: ' . mysql_error()); 
    } 
} 
+0

@Anthony - 그건 맞습니다 - 제가 방금 발견 한 (저의 억울함에)! 도와 주셔서 감사합니다. – PeterC

+0

베네, buona fortuna! –