2017-08-19 6 views
0

選択フィールドには、配列の3つの異なる値が格納されています。 $ listabrand ['0']にはレコードのIDが含まれています。PHPの削除機能。配列に含まれ、選択フィールドに格納されたIDを取得する

<select name='brands_list'> 
<option value="0">Select the Brand</option> 
<?php 
while ($listabrand=mysqli_fetch_array($brands)){ 
echo '<option value="'.$listabrand['0'].','.$listabrand['1'].','.$listabrand['2'].'"> 
    '.$listabrand['1'].'</option>'; 
}?> 
</select> 

私は、DELETE録音機能を実装し、フィールド「brands_list」内の値を選択するが、brands_listフィールドは3種類の配列の値が含まれているので、私は変数にIDを宣言する時点で、それは難しいのです。

私はこれを書いていますが、キャプチャする必要がある値がわからず、$ listabrand ['0']でなければならないため、動作しません。

$mod_id = mysqli_real_escape_string ($conn, $_REQUEST['brands_list']); 

私は完全なPHPを埋め込む、それは質問が上記の条件でIDを選択する方法、である

<?php 
require '../sys/conn.php'; 
$mod_id = mysqli_real_escape_string ($conn, $_REQUEST['brands_list']); 
if (isset($_GET['delete_brand'])){ 
    $delquery = mysqli_query($conn,"DELETE FROM mg_terms where term_id= $mod_id"); 
    $delquery1 = mysqli_query($conn,"DELETE FROM mg_term_taxonomy where term_id= $mod_id"); 
    $delquery2 = mysqli_query($conn,"DELETE FROM mg_termmeta where term_id= $mod_id"); 
header('Location: ../pages/success.html'); 
} 
else{header('Location: ../pages/error.html'); 
} 
mysqli_close($conn); 
?> 

有用である可能性があります。提案?

+1

:あなたはすべての部品が必要な場合、あなたはexplode()list()を使用することができます

$id = strtok($_REQUEST['brands_list'], ','); 

文字列の最初の値が必要な場合は、[strtok()](http://php.net/manual/en/function.strtok.php)を使用できます。例: '$ id = strtok($ _ REQUST ['brands_list']、 '、');'。また、クエリを連結する代わりに[Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用する必要があります。 mysqli_real_escape_string()にさえ、状況によってはセキュリティ上の問題があります。 –

+0

私はID値である最初の値だけを必要としました。第2段階としてセキュリティ手順を実装します。ありがとうございます。 – Alex

+0

私は答えとしてそれを追加しますので、それを受け入れることができます –

答えて

1

カンマ区切り文字列を作成しているので、もう一度分割する必要があります。

これを行うにはいくつかの方法があります。あなただけの最初の部分をしたい場合は

、idが、あなたはstrtok()使用することができます:あなた場合

list($id, $part2, $part3) = explode(',', $_REQUEST['brands_list']); 
+0

それは完全に動作します。ありがとう。 – Alex

関連する問題