2017-06-07 2 views
0

andere Update-Funktionen funktioniert gut, aber ich habe versucht, alle Daten zu aktualisieren, der vorhandene Wert der Zahlungsrate auf 0 gedreht. Andere Werte scheint gut aktualisiert werden. nur die Zahlungsrate gedreht auf 0Update-Eingang mit DECIMAL-Eingang (PHP, MySQL)

unten ist die html für die Dezimaleingabe

<div class="form-group"> 
    <label class="control-label col-sm-4" >Payment Rate:</label> 
    <div class="col-sm-4"> 
     <input type="decimal" class="form-control" name="payment" value="<?php echo "RM"; ?> <?php if(isset($row['payment_puspakom'])){ echo $row['payment_puspakom']; } ?>" required placeholder="Enter Payment Rate (RM)"> 
    </div> 
</div> 

das ist mein Update SQL-Anweisung.

if(isset($_POST['submit'])){ 
$id = mysqli_real_escape_string($link, $_POST["puspaid"]); 
$vehicle = mysqli_real_escape_string($link,$_POST["vehicle"]); 
$date = date("Y-m-d",strtotime($_POST["date"])); 
$specification = mysqli_real_escape_string($link,$_POST["specification"]); 
$stats = mysqli_real_escape_string($link,$_POST["stats"]); 
$next = date("Y-m-d",strtotime($_POST["next"])); 
$payment = mysqli_real_escape_string($link,$_POST["payment"]); 
$status = mysqli_real_escape_string($link,$_POST["status"]); 
$update = mysqli_real_escape_string($link,$_SESSION["idinfostaf"]); 

$updpuspa="UPDATE puspakom SET id_fkVehicle='$vehicle', id_fkPuspakomStatus='$stats', date_puspakom='$date', specification='$specification', payment_puspakom='$payment', dateNext_puspakom='$next', status_puspakom='$status', updateby_puspakom='$update' WHERE id_puspakom=".$id; 
$respuspa=mysqli_query($link,$updpuspa); 
if($respuspa){ 
    $success = "Record Updated Successfully"; 
} 
else{ 
    $error = "Error Updating Record. Try Again...".mysqli_error($link); 
} 
} 

Ich kann nicht scheinen, den Fehler zu finden, den ich tat.

+0

Vorbereitete Anweisungen verwenden. – Enstage

+0

vorbereitete Aussage? – yuki

+0

[Little Bobby] (http://bobby-tables.com/) sagt [Ihr Skript ist für SQL Injection Attacks gefährdet] (http://stackoverflow.com/questions/60174/how-can-i-prevent-) sql-injection-in-php). Erfahren Sie mehr über [vorbereitete Aussagen] (http://en.wikipedia.org/wiki/Prepared_statement) für [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher. – junkfoodjunkie

Antwort

0

danke für diejenigen, die versucht haben, mein Problem zu lösen ... löste dies bereits. i entfernen nur das Echo RM

<div class="form-group"> 
<label class="control-label col-sm-4" >Payment Rate:</label> 
<div class="col-sm-4"> 
    <input type="decimal" class="form-control" name="payment" value="<?php if(isset($row['payment_puspakom'])){ echo $row['payment_puspakom']; } ?>" required placeholder="Enter Payment Rate (RM)"> 
</div> 

das Feld als Dezimalzahl gesetzt ist (10,2). putting echo RM dort, bewirkt, dass rm mit den Dezimalwerten mitgeführt wird. Deshalb wurden die Werte nach dem Update auf Null gesetzt.