-1

クライアントが予約した時間(例:午前10時30分)をテーブルに入力しようとしているので、午前9時から午後7時までの時刻が15分刻みで上がる選択ボックスがあります(9 :45am、10:00am)。

<select name="times">
<option value="09:00">9:00am</option>
.....
<option value="19:00">7:00pm</option>
</select>

データベースにすでに保存されている時間の一部を削除する方法が必要です

これは次のようになりますか?:

<?php
$times = $_POST['times'];
$dbc = mysqli_connect('localhost', 'root', '', 'salon')
or die('error conneting to mysql');

$query = "SELECT times FROM `clients` WHERE `times` = '$times'";

$result = mysqli_query($dbc, $query);
mysqli_close($dbc);
?>
<select>
<?php
$times = array('09:00','09:15', ..... '19:00');
foreach($times as $time);
while($row = mysql_fetch_array($results)){
 if($row = $time){
unset($time);

echo '<option value="$time">$times</option>';
}
else{ echo 'oh no';
}
?>
</select>

まあそのようなもの..とにかく私はそれを理解することはできません。

すべての助けに事前に感謝します。

PS私のコードはもっとクリーンで、strip_tags()mysql_real_escape_string()を含める必要があることを私は知っています。これは質問をするためだけのものです

4

1 に答える 1

0

これは完全に時期尚早のコードの例です。コードには多くのエラーがあります。ところで、以下は正しいものです:

$times = $_POST['times'];

は配列であるため、文字列のように使用することはできません。変数$timesが次のようになるように、コンマ(、)区切り文字を使用して配列を内破する必要があります

$times_array = "in('09:00','09:30')";

以下は完全な例です

<?php

    $times_post = $_POST['times'];

    $times_array = "in('09:00','09:30')";// This will be your string after imploding post array

    $dbc = mysqli_connect('localhost', 'root', '', 'shiv')  or die('error conneting to mysql');

    $query = "SELECT times FROM `clients` WHERE `times` = $times_array";


    $results = mysqli_query($dbc, $query);

    echo "<select>";

    $times = array('09:00','09:15','19:00');

    while($row = mysqli_fetch_array($results)){

        foreach($times as $key => $time){

            if($row[0] == $time){
                unset($times[$key]);

            }else{
                echo 'oh no';
            }
        } 
    }

    $updated_times = array_values($times);

    for ($index = 0; $index < count($updated_times); $index++){
        echo "<option value=$updated_times[$index]>$updated_times[$index]</option>";
    } 

    echo "</select>";

?>

于 2012-04-24T08:51:54.637 に答える