0

テーブルからチェック ボックスを設定し、別のテーブルにレコードがある場合はチェック済みとしてマークしたいと考えています。

以下に示すように、2つのクエリがあります。

$hizmetler  = "SELECT * ";
$hizmetler .= "FROM hizmetler";
$sonuc = mysqli_query($conn,$hizmetler);

$id= $_GET['id'];
$query_hizmet  = "SELECT * FROM firmahizmet INNER JOIN hizmetler ON firmahizmet.hizmetID=hizmetler.hizmetID ";
$query_hizmet .= "WHERE firmahizmet.firmaID = $id";
$myresult = mysqli_query($conn, $query_hizmet);

チェックボックスに最初のクエリを入力し、2 番目のクエリでチェックボックスを追加しようとしています。

while ($row0 = mysqli_fetch_assoc($myresult)){

    while($row2 = mysqli_fetch_assoc($sonuc)){ ?>
        <label for="chkbox"></label>
        <input id="chkbox" type="checkbox" name="<?php echo $row2["hizmetCSS"];?>" value="<?php echo $row2["hizmetCSS"];?>" <?php echo ($row0['hizmetCSS']==1 ? 'checked' : '');?> /><?php echo $row2["hizmetAdi"];
    }
}

しかし、私は大きな点が欠けていると思います:D関数を作成しようとし、myresultがsonucで重複する値を持っているかどうかを調べました。

私は良いアイデアで同様の投稿を調べました

' . (in_array($role_name, $user_in_role) ? ' checked="checked"' : '') . ' 

しかし、レコードがfirmahizmetテーブルに行がない場合、次のエラーが発生します。

in_array() は、パラメーター 2 が配列であることを想定しています

道順は?

4

1 に答える 1

0

配列が空かどうかを確認し、問題を回避するためにifステートメントを追加しました。おそらくそれを行うためのより良い方法ですが、問題は解決しました。

while ($row0 = mysqli_fetch_array($myresult)){
    $user_in_role[] = $row0['hizmetAdi'];

}
    while($row2 = mysqli_fetch_assoc($sonuc)){
        $role_name=$row2['hizmetAdi'];?>
        <label for="chkbox"></label>
        <input id="chkbox" type="checkbox" name="<?php echo $row2["hizmetCSS"];?>" value="<?php echo $row2["hizmetCSS"];?>" <?php
        if( !empty( $user_in_role ) )
        {
        echo (in_array($role_name, $user_in_role) ? ' checked="checked"' : '');
        }
        ?> /><?php echo $row2["hizmetAdi"];

    }
于 2013-09-28T23:58:09.390 に答える