2016-03-19 3 views
-1

をストリングを削除するには、私はforeachループがどのようにforeachループの端から

if (isset($_POST['size'])) { 
        $where .= ' AND '; 
        $s = $_POST['size']; 
        $end = count($s); 

        foreach ($s as $ss) { 
         $where .= 'pSize=' . $ss; 
         $where .= ' OR '; 
        } 

       } else { 
        $s = ''; 
       } 
+0

RTRIM()またはSUBSTR( )は普通の方法です –

+0

私の場合、この機能の使い方を教えてください。 –

+0

ドキュメントを読む。良い例があります。これらの例を問題に適用することができます。または少なくともここでやってみてください。 – Terminus

答えて

0

の端からORを削除することができ、その問題を回避する1つの方法は、配列を作成し、内破です。

if (isset($_POST['size'])) { 
    $where .= ' AND ('; 
    $s = $_POST['size']; 
    $end = count($s); 
    //echo $end; 
    $aWhere = []; 
    foreach ($s as $ss) { 
     $aWhere[] = 'pSize=' . $ss; 
    } 
    $where .= implode(' OR ', $aWhere) . ')'; 
} else { 
    $s = ''; 
} 

おそらく、どこにかっこが必要です。私はあなたのためにしました。

SQLインジェクションには注意してください。プリペアドステートメントを使用してください。

0

あなたは多くの方法のために行くことができ 方法1: あなたは)(ループの代わりに、foreachのために行くことができます

$a=sizeof($s); 
$x=$a-1; 
for($i=0;$i<$a;$i++){ 
if($i==$x){ $where .= 'pSize=' . $ss; 
         } 
else{     $where .= 'pSize=' . $ss; 
         $where .= ' OR '; 
} 
} 

ウェイ2:RTRIM()を使用し、あなたの条件で

foreach ($s as $ss) { 
         $where .= 'pSize=' . $ss; 
         $where .= ' OR '; 
        } 
$where=rtrim($where,' OR '); 
2

、私はあなたが簡単にINを使用すると思います。

if (isset($_POST['size'])) { 
    $size = $_POST['size']; 
    if($size){ 
     $where .= ' AND `pSize` IN ('.implode(",", $size).')'; 
    } 
} 
0

これを実行する方法は多数あります。 forループを使用することもできます。あなたはforeachループを好む場合は、次のようにforループを模倣するイテレータ変数を作成することができます。

if (isset($_POST['size'])) { 
        $where .= ' AND '; 
        $s = $_POST['size']; 
        $end = count($s); 

        $i = 0; 
        foreach ($s as $ss) { 
         $where .= 'pSize=' . $ss; 
         if (++$i != $end) 
          $where .= ' OR '; 
        } 
} else { 
    $s = ''; 
} 
1

これはまた、あなたのケースで動作します:

if (isset($_POST['size'])) { 
        $where .= ' AND '; 
        $s = $_POST['size']; 
        $end = count($s); 

        for($i=0;$i<count($s);$i++) { 
         $where .= 'pSize=' . $s[$i]; 
         if($i != count($s)-1){ 
         $where .= ' OR '; 
         } 
        } 

       } else { 
        $s = ''; 
       } 
関連する問題