php - execute multi query when I hit submit with mysqli -
i'm learning mysql/php , i'm trying execute multi query using msqli. have read through several tutorials, , tried apply them, cannot working... hope can me.
dont mind messy code, clean later!!!
code :
else if (isset($_post['btnslaopings'])) { $id=$_post['id']; $uitgeleend=$_post['uitgeleend']; $nr=$_post['nr']; $model=$_post['model']; $serienummer=$_post['serienummer']; $capaciteit=$_post['capaciteit']; $uptodate=$_post['uptodate']; $persoon=$_post['persoon']; $datumuitgeleend=$_post['datumuitgeleend']; $datumretour=$_post['datumretour']; $opmerking=$_post['opmerking']; $sql="update ipads set nr='$nr', model='$model', serienummer='$serienummer', capaciteit='$capaciteit', uptodate='$uptodate', persoon='$persoon', datumuitgeleend='$datumuitgeleend', datumretour='$datumretour', opmerking='$opmerking' id='$id';"; $sql.="insert geschiedenis (select * ipads id='$id');"; $sql.="update ipads set uitgeleend='nee', persoon='', datumuitgeleend='', datumretour='', opmerking='' id='$id';"; mysqli_multi_query($db, $sql); header("location:index.php"); }
form :
<form id="gegevensform" class="col-xs-4" form method="post" action="ipad-edit.php"> <input type="hidden" name="id" value="<?php echo $id?>"> <div class="form-group"> <label>uitgeleend</label> <select class="form-control" name="uitgeleend"/> <option value="ja" <?php if($uitgeleend == "ja") echo "selected";?>>ja</option> <option value="nee" <?php if($uitgeleend== "nee") echo "selected";?>>nee</option> </select> </div> <div class="form-group"> <label>nr</label> <input type="text" class="form-control" name="nr" value="<?php echo $nr ?>" /> </div> <div class="form-group"> <label>model</label> <input type="text" class="form-control" name="model" value="<?php echo $model ?>" /> </div> <div class="form-group"> <label>serienummer</label> <input type="text" class="form-control" name="serienummer" value="<?php echo $serienummer ?>" /> </div> <div class="form-group"> <label>capaciteit</label> <input type="text" class="form-control" name="capaciteit" value="<?php echo $capaciteit ?>" /> </div> <div class="form-group"> <label>up-to-date</label> <select class="form-control" name="uptodate"/> <option value="ja" <?php if($uptodate == "ja") echo "selected";?>>ja</option> <option value="nee" <?php if($uptodate == "nee") echo "selected";?>>nee</option> </select> </div> <div class="form-group"> <label>persoon</label> <input type="text" class="form-control" name="persoon" value="<?php echo $persoon ?>" /> </div> <div class="form-group"> <label>datum uitgeleend</label> <input type="text" id="datepicker" class="form-control" name="datumuitgeleend" value="<?php echo $datumuitgeleend ?>" /> </div> <div class="form-group"> <label>datum retour</label> <input type="text" id="datepicker1" class="form-control" name="datumretour" value="<?php echo $datumretour ?>" /> </div> <div class="form-group"> <label for="comment">opmerking</label> <textarea class="form-control" rows="5" id="comment" name="opmerking" /><?php echo $opmerking ?></textarea> </div> <button class="btn btn-primary pull-right" name="btnslaop" input type="submit"><i class="fa fa-save"></i> opslaan</button> <a href="overzicht-ipads.php"><input type="button" name="btncancel" value="annuleer" class="btn btn-primary pull-left"></a> <button class="btn btn-primary pull-middle" name="btnslaopings" type="submit"><i class="fa fa-save"></i> opslaan & archiveren</button> <?php include('../includes/get_footer.php'); ?> </form>
- do not use multi_query. function has special purpose doesn't fit case. run queries through separate calls.
- use prepared statements.
- use pdo, if learning php.
the code should be
$sql="update ipads set nr=?, model=?, serienummer=?, capaciteit=?, uptodate=?, persoon=?, datumuitgeleend=?, datumretour=?, opmerking=? id=?"; $pdo->prepare($sql)->execute([$nr,$model,$serienummer,$capaciteit,$uptodate,$persoon,$datumuitgeleend,$datumretour,$opmerking,$id]); $sql="insert geschiedenis (select * ipads id=?)"; $pdo->prepare($sql)->execute([$id]); $sql ="update ipads set uitgeleend='nee', persoon='', datumuitgeleend='', datumretour='', opmerking='' id=?"; $pdo->prepare($sql)->execute([$id]);
though don't quite understand stuff intended do. these settings , resettings of same values looks total mess.
Comments
Post a Comment