2016-05-30 17 views
0

私はphp mysqlの問題に直面しています。私は複数の項目を取得するためにチェックボックスを置くhtmlを持っています。mysqlテーブルの列に複数のカテゴリとして保存したときに単一のカテゴリを取得する

<input type="checkbox" name="checklist[]" value="national"> 
<input type="checkbox" name="checklist[]" value="international"> 
<input type="checkbox" name="checklist[]" value="politics"> 
<input type="checkbox" name="checklist[]" value="leadnews"> 
<input type="checkbox" name="checklist[]" value="sports"> 
<input type="checkbox" name="checklist[]" value="technology"> 

このコードでmysqlに保存しました。

if(isset($_POST['insert_post'])){ 
    $p_cat = $_POST['checklist']; 
    $multi_cat=""; 
    $flag=0; 
    foreach($p_cat as $entry){ 
     $multi_cat .= $entry.","; 
     $flag=1; 
    } 
    if($flag==1){ 
     $multi_cat=rtrim($multi_cat); 
    } 
    $insert_slider = "insert into desks (post_categories) values('$multi_cat')"; 
    $insert_slides =mysqli_query($con, $insert_slider); 
私はそれが持つすべてのカテゴリを示すエコーで呼び出す

とデータベース列に複数のカテゴリーを保存するその「」

「」 私は、単一の値場合が利用可能であることを照会したいですか否か。

+0

適切に正規化されるようにデータベース構造を修正します。単一のフィールド/レコードに複数の値を格納することはほとんどいつも悪い考えであり、これはまさに理由です - 今では、個々の値を追加/削除/削除することができない、余分な醜いコードがたくさんあります。デジニングで適切に正規化されたデータ構造を持っていれば、最初にこの質問をする必要はありません。 –

+0

簡単な答えはthat___のようなカテゴリを__Dont保存することです – RiggsFolly

答えて

0

あなたのロジックは少し間違っている、単一のカテゴリにありますどのように多くの行を示します。すべてのカテゴリを1つの行に格納しています。それらを別々の行に格納する必要があります。

if(isset($_POST['insert_post'])){ 
    $p_cat = $_POST['checklist']; 
    $multi_cat=""; 
    $flag=0; 
    foreach($p_cat as $entry){ 
     $multi_cat .= "('" . $entry . "'),"; 
     $flag=1; 
    } 
    if($flag==1){ 
     $multi_cat=rtrim($multi_cat,','); 
     $insert_slider = "insert into desks(post_categories) 
     values $multi_cat"; 
     $insert_slides =mysqli_query($con, $insert_slider); 
    } 
} 
0
select count(*) from desks where instr(post_categories,',')<1; 

関連する問題