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>

  1. do not use multi_query. function has special purpose doesn't fit case. run queries through separate calls.
  2. use prepared statements.
  3. 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

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -