MySQL veritabanı Sorun güncelleme html onay kutusu

4 Cevap php

Ben mysql veritabanını güncellemek çalıştığınızda onay kutusunu güncellenmiş değil neden İşte benim kod, bilmiyorum. Sadece giriş kutusu güncellenmektedir.

   <tr>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats6" value="0">
<td><input name="stats6" type="checkbox" id="dep" value="<?php echo $row["STAT6"]; ?>" <?php echo $row["STAT6"] ? 'checked="checked"' : ''; ?> >Dependent</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats7" value="0">
<td><input name="stats7" type="checkbox" id="emp" value="<?php echo $row["STAT7"]; ?>" <?php echo $row["STAT7"] ? 'checked="checked"' : ''; ?> >Employee</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats8" value="0">
<td><input name="stats8" type="text" id="" value="<?php echo $row["STAT8"]; ?>" maxlength="15">Others</td>

Ve burada form action bulunuyor:

mysql_select_db("Hospital", $con);

mysql_query("UPDATE t2 SET HOSPNUM ='$_POST[hnum]', ROOMNUM='$_POST[rnum]', ADATE='$_POST[adate]',  ADTIME='$_POST[adtime]', LASTNAME='$_POST[lname]', FIRSTNAME='$_POST[fname]', MIDNAME='$_POST[mname]', CSTAT='$_POST[cs]', AGE='$_POST[age]', BDAY='$_POST[bday]', ADDRESS='$_POST[ad]', SEX='$_POST[sex]', 
                                                                                                                                                                                                                                     STAT='$_POST[stats1]', STAT2='$_POST[stats2]', STAT3='$_POST[stats3]', STAT4='$_POST[stats4]', STAT5='$_POST[stats5]', STAT6='$_POST[stats6]', STAT7='$_POST[stats7]', STAT8='$_POST[stats8]', NURSE='$_POST[nurse]'              
WHERE PNUM ='$_POST[pnum]'");

ne benim koduyla yanlış olabilir? Gerçekten onay kutusunu bulunan verileri güncelleştirmek değil. Ve ben, onun tüm sıfırları aramak çalıştığınızda

4 Cevap

Sen bir takım sorunlar var. Burada önemli olanlardan bazıları şunlardır:

  • HTML geçersiz. Sen <input> elemanları between tablo hücreleri var. A validator kullanın.

  • Sen aynı ada sahip birden çok girdi (<input type='hidden' name="stats6" value="0"> ve <input name="stats6" type="checkbox" örneğin) ve:

    • Eğer PHP bu isimde bir tek eleman arıyor
    • Siz (PHP sadece bir sorun olan) ucunda [] olmadan bunları adlandırma

PHP, IIRC, karşılaştığı ilk 'foo' değeri ile bir $ _POST ['foo'] doldurur.

Eğer onay kutusunu olmadığı durumda varsayılan değere sahip çalıştığınız gibi görünüyor. Eğer öyleyse, PHP ile tamamen hallederim. Forma için gizli girişler katmayın.

Her onay kutusunu için gizli bir giriş bunun için etiketin arkasında olması gerektiğini olabilir. Ben PHP çiftleri ile nasıl hatırlamıyorum, ama bu sorun olabilir.

But, another note. I hope that code is only for example, you should never put data directly into the database from the input without sanitizing and validating it beforehand. Doing it like that will open up the possibilities for SQL injections.

Öncelikle yerine $ _POST $ _POST ["hnum"] [hnum] kullanmanız önerilir. Bir yazım hatası sanırım.

gerçek sorunu ow. Onlar kontrol zaman onay kutusunu değerleri sadece ayarlanır. Onlar kontrol değilse, $ _POST ["hnum"] gibi bir değer olacaktır. Belki bu sorunun bir parçası.

Html sorun SQL ile doğru

ben sadece, sorguya düzeltmeler deneyin geldiniz yaptık

$sql = "UPDATE t2 SET ";
$sql .= "HOSPNUM ='".$_POST['hnum']."', ";
$sql .= "ROOMNUM    ='".$_POST['rnum']."', ";
$sql .= "ADATE      ='".$_POST['adate']."', ";
$sql .= "ADTIME     ='".$_POST['adtime']."', ";
$sql .= "LASTNAME   ='".$_POST['lname']."', ";
$sql .= "FIRSTNAME  ='".$_POST['fname']."', ";
$sql .= "MIDNAME    ='".$_POST['mname']."', ";
$sql .= "CSTAT      ='".$_POST['cs']."', ";
$sql .= "AGE        ='".$_POST['age']."', ";
$sql .= "BDAY       ='".$_POST['bday']."', ";
$sql .= "ADDRESS    ='".$_POST['ad']."', ";
$sql .= "SEX        ='".$_POST['sex']."', ";
$sql .= "STAT       ='".$_POST['stats1']."', ";
$sql .= "STAT2      ='".$_POST['stats2']."', ";
$sql .= "STAT3      ='".$_POST['stats3']."', ";
$sql .= "STAT4      ='".$_POST['stats4']."', ";
$sql .= "STAT5      ='".$_POST['stats5']."', ";
$sql .= "STAT6      ='".$_POST['stats6']."', ";
$sql .= "STAT7      ='".$_POST['stats7']."', ";
$sql .= "STAT8      ='".$_POST['stats8']."', ";
$sql .= "NURSE      ='".$_POST['nurse']."'";
$sql .= "WHERE PNUM ='".$_POST['pnum']."'";

mysql_query($sql);

Eğer sonrası değerleri "'" koymak unutmak var

ön örnek $_POST[stats1] hangi olmalıdır var $_POST['stats1']

denemek