2016-06-01 2 views
3

아래 스크린 샷과 같은 페이지가 있습니다. 아이디어는 버스 번호와 특정 노선의 모든 정류장 목록을 한 줄에 하나씩 입력하는 것입니다.PHP MySQL PDO TextArea 조건 검사가있는 Where 절

My Add Route Page

정거장이 이미이라는 데이터베이스 테이블에 저장됩니다 내가 텍스트 영역에서 각 지점의 ID가 필요합니다 '중지'. 내 현재 코드는 텍스트 영역의 마지막 중지 ID 만 가져옵니다. 나는 뭔가를 놓치고있는 것처럼 느낀다. 'busnumber'는 내 텍스트 필드이고 'busroute'는 내 텍스트 영역입니다. 나는 누군가가 배열로서 텍스트 영역에 입력 된 각 정지의 ID를 얻기 위해 내가 바꿀 필요가있는 것을 지적 할 수 있으면 고맙겠습니다. 미리 시간을내어 주셔서 감사합니다.

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); 
     if(isset($_POST["busnumber"], $_POST["busroute"])){ 

    $stops = explode(PHP_EOL, $_POST["busroute"]); 

    foreach($stops as $stop){ 
     $sql = "SELECT * FROM stops WHERE stop_name = '".$stop."'"; 
     $statement = $conn->query($sql); 
     echo $sql.'</br>'; 
     $statement->setFetchMode(PDO::FETCH_ASSOC); 
     $results = $statement->fetchAll(); 
     foreach($results as $result){ 
      echo $result['stop_id'].' '.$result['stop_name']; 
     } 
     $statement = null; 

    } 
     } 

을 다음과 여전히 같은 출력을 얻을 나는 코드를 변경 한

try { 
      $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); 
      if(isset($_POST["busnumber"]) && isset($_POST["busroute"])){ 

      $stops = explode(PHP_EOL, $_POST["busroute"]); 
      $stopsArray = '"' . implode('","', $stops) . '"'; 
      $sql = "SELECT * FROM stops WHERE stop_name IN ($stopsArray)"; 
      echo $sql."</br>"; 
      $query = $conn->prepare($sql); 
      $query->execute(); 
      $query->setFetchMode(PDO::FETCH_ASSOC); 
      $results = $query->fetchAll(); 
      foreach($results as $result){ 
      echo $result['stop_id'].' '.$result['stop_name'].'</br>'; 
      } 
      } 

} catch (PDOException $pe) { 
die("Could not connect to the database $dbname :" . $pe->getMessage()); 

}

UPDATE, 그것은 단지 텍스트 영역 안에 나에게 마지막 항목의 ID를 제공합니다 The error is still here

+0

'인 print_r ($ 결과)'foreach 루프 내부와 그 반환을 확인할! – Saty

+0

Array ([stop_id] => 3 [stop_name] => 16TH ROAD) @Saty – PirateApp

+0

은 하나의 결과 만 반환한다는 것을 의미합니다. phpmyadmin에 직접 쿼리를 실행하고 쿼리로 반환되는 행 수를 확인하십시오 !! – Saty

답변