2013-07-01 3 views
1

편집 : 나는 내가 원했던 것을 명확하게하기 위해 제 질문을 편집했습니다.다중 선택이 작동하지 않습니다.

$ _GET의 방법으로 테이블의 데이터베이스 테이블에서 값을 검색하고 표시하기 위해 여러 검색 상자가있는 양식으로 페이지를 만들었습니다. 지금은 꽤 잘 작동합니다.

내가 필요한 : 내가 다중 선택을 할 수 있도록 검색 상자의 일부를 원하지만 나는 단 하나의 선택의 결과를 얻을 수 있습니다.

$query_Recordset2 = sprintf("SELECT * FROM satislar WHERE satis_satici LIKE %s AND urun_satilanurun LIKE 
%s AND urun_pstnadslhizturu LIKE %s AND akt_aktalan LIKE %s AND satis_modem LIKE %s AND akt_aktdurum LIKE 
%s AND akt_ttonayi LIKE %s AND satis_tarih between %s and %s ORDER BY satis_tarih DESC", 

이 선택 옵션은 다음과 같습니다 : 나는 당신의 소중한 아이디어를 기다리고

<select name="satici[]" size="4" multiple="multiple" id="satici" size="4" class="span2 nostyle chzn-select" style="margin-top:9px;width:150px;"> 
               <option value="%">TÜM SATICILAR</option> 

               <?php 
do { 
?> 
               <option value="<?php echo $row_saticilistesi['satis_satici']?>"><?php echo $row_saticilistesi['satis_satici']?></option> 
               <?php 
} while ($row_saticilistesi = mysql_fetch_assoc($saticilistesi)); 
$rows = mysql_num_rows($saticilistesi); 
if($rows > 0) { 
    mysql_data_seek($saticilistesi, 0); 
    $row_saticilistesi = mysql_fetch_assoc($saticilistesi); 
} 
?> 

은 쿼리입니다. 다중 사용하려면

+0

어쩌면이 HTML을 게시 할 수 있습니까? – Bananam00n

+3

'$ _GET' 또는'$ _POST'에 대해 들어 보셨습니까? – bitWorking

+0

https://dl.dropboxusercontent.com/u/5326510/code.html – user2490870

답변

0

당신이 당신이 짓을했다처럼 소리 같은 당신의 HTML (설정해야합니다 선택 :

<select name="foo[]" multiple="multiple"> 
    <!-- options go here --> 
</select> 

과를 다음과 같이 배열로 그들에 액세스 할 수 귀하의 PHP에서 :

<?php 
    // This will print out all of the selected values. 
    print_r($_GET['foo']); 

테이블에이 결과를 에코하려면

<table> 
    <tr><th>Option</th></tr> 
    <?php foreach ($_GET['foo'] as $option) : ?> 
     <tr><td><?php echo htmlspecialchars($option) ?></td></tr> 
    <?php endforeach; ?> 
</table> 
+0

내 페이지 상단에 코드를 추가했습니다. 테이블이 비어 있지만 맨 위에 "Array ([0] => HASAN MIZRAK [1] => SERDAR KAPLAN)"이라고 표시됩니다. – user2490870

+0

그래, 그렇게하려면 HASAN MIZRAK 및 SERDAR KAPLAN이 결과를 테이블에 에코 내 업데이트 된 게시물을 참조하십시오. – chrislondon

+0

예, 선택한 옵션은 표에 나열되어 있지만 필요한 것은 아닙니다. 쿼리에 사용하고 결과를이 두 판매원에게 필터링해야합니다. – user2490870

0

name="satici[]" multiple="multiple"는 코르 rect HTML.

당신이 될 것 PHP에서 수행 할 작업 :

$arr_search = array(); 
foreach((array)@$_POST['satici'] as $h) 
    $arr_search[] = $h; // Escape this value (without "'") 

$str_search = implode('|', $arr_search); 

그리고 쿼리 내부

WHERE satis_satici REGEXP '{$str_search}'으로 예를 WHERE satis_satici LIKE %s에 대한 대체합니다.

col LIKE 'search'은 대개 col REGEXP 'search'과 같으며 col LIKE 'search' OR col LIKE 'search'은 흔히 예제에서 제공하는 col REGEXP 'search|search2'과 같습니다.

그 외에도 변수, 열 이름 등을 가능한 한 많이 얻으라고 조언합니다. 유지 관리가 훨씬 쉬워지고 최종 사용자에게만 번역하면됩니다.

+0

로빈, 빠른 답장과 제안에 감사드립니다. 나는 그것을 염두에 두겠다. 나는 당신의 코드를 시도했지만 그것은 나에게 그 오류를 주었다. "정규 표현식에서 'empty (sub) expression'오류가 발생했습니다." SQL 쿼리 바로 전에 코드를 넣고 코드로 쿼리를 변경했습니다. – user2490870

+0

'print_r ($ _ POST [ 'satici'])'는 무엇을합니까? –

+0

코드 전후에? 나는 어제 chrislondon의 해결책으로 그것을 시도했다. 그것은 내가 필요한 정확한 것이 아니었지만 그것은 쿼리 후에 내가 선택한 두 개의 이름을주고있었습니다. 하지만 이제는 동일한 오류가 다시 나타납니다. "regexp에서 'empty (sub) expression'오류가 발생했습니다." – user2490870

관련 문제