Hoi allen,
ben met een script bezig waar men een serienr invult en als die correct is kan men daar een status op wijzigen. Probleem is nu dat als er geen goed nummer wordt gevonden je toch iets kunt opslaan. Dat doet die dan met het laatste nummer wat bekend was. Hoe kan ik dit het beste ondervangen??


</p>
<p>&nbsp;</p>
<table width="348" border="0">
  <tr>
    <td width="159"><p class="style20">Case aangemaakt?</p>
      </td>
    <td width="74">&nbsp;</td>
    <td width="199"><span class="style20">
      <input name="case" id="case"
 value="ja" type="radio" />
    ja</span></td>
  </tr>
</table> 

<tr>
    <td>&nbsp;</td>
    <td colspan="2"><div></div>

   
  </tr>
  <tr>
  <td width="80"><input name="Reset" type="reset" value="Reset">
    <input name="Submit" type="submit" id="Submit" value="Opslaan" /></td>
    <td width="110">&nbsp;</td>
  </tr>
  
  <?
  if($_SERVER['REQUEST_METHOD'] == "POST"){
    if(isset($_POST['case']) != NULL){// value meegegeven
        $sql="UPDATE
			ft_form_10
        SET
            extra1='". $_POST['case']."'";
        

			
        //echo "$sql";
        if(!mysql_query($sql)){
           echo 'Er is een fout opgetreden: '.mysql_error();
           }
        else{
          if(mysql_affected_rows() > 1){
           echo 'Er zijn '.mysql_affected_rows().' rijen aangepast.';
           }
          else{
            Print("<span class='kop'>Even geduld aub...</span><meta http-equiv='refresh' content='1;url=zoek.php'>");


            //echo 'aanvraag verwerkt.';
                }
            }
        }
    }
?>
<?php
if(isset($_POST['case']) != NULL)
?>
Wat is dit voor controle? Als je wilt controleren of een variabele niet leeg is, doe je dat altijd nog met empty():
<?php
if(!empty($_POST['case']))
?>
Verder kun je nooit, maar dan ook echt nooit een POST variabele direct in een query gebruiken. Je zult ze altijd tegen sql injectie moeten beveiligen met bijvoorbeeld mysql_real_escape_string()...

ps. Tenslotte zou ik ook nog een WHERE clausule aan je query meegeven, anders zullen alle records geupdate worden. Het lijkt me niet dat je dat wilt.
OK, maar op php net zocht ik controle en kreeg:

isset — Controleer of een variabele bestaat

Er zullen meer wegen naar Rome leiden maar dit had ik in andere scripts ook en werkt zoals het moet. Maar goed, daarmee is min probleem nog niet verholpen. Raak nu wel de draad kwijt.
isset() controleert alleen of een variabele bestaat, empty() controleert of een variabele leeg is.

Verder koppel je geen else-statement aan dat if-statement. Er wordt dus niets uitgevoerd als de variabele niet gevuld is. Ik zie trouwens ook nergens een <form> tag in je script?
isset kijkt of een variable bestaat.
empty kijkt of een variable leeg is.
Heb niet het hele script erop gezet, alleen het stuk waar ik een probleem mee heb.
En inderdaad moet er gekeken worden of een variabele bestaat...

Reageren