alexa-tracking

Edit data dengan PHP selalu gagal

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/555c5643582b2e7f038b456e/edit-data-dengan-php-selalu-gagal
Edit data dengan PHP selalu gagal
Mohon bantuannya suhu,master php atau siapa saja yang bisa bantu menyelesaikan permasalahan dengan PHP,

ane punya script gini

Spoiler for form edit:


dan

Spoiler for query proses edit data:


setiap ane edit data selalu gagal, apakah querynya ada yang salah gan ?

mohon pencerahannya , thks

emoticon-I Love Indonesia (S) emoticon-I Love Indonesia (S) emoticon-I Love Indonesia (S)
ada error ga?
kalo gak coba querynya di tampilin
terus jalanin di phpmyadmin
coba deklarasi variable $query jadikan gini:
PHP Code:
$query "update download set id_trans = '"$_POST[id_trans] ."', 
    tanggal = '"
$_POST[tanggal] ."', 
    claim_olo = '"
$_POST[claim_olo] ."', 
    detail_claim = '"
$_POST[detail_claim] ."',
    customer = '"
$_POST[customer] ."', 
    no_adsl = '"
$_POST[no_adsl] ."', 
    aomodo = '"
$_POST[aomodo] ."', 
    kofirmasi_awal = '"
$_POST[kofirmasi_awal] ."', 
    hasil_ram = '"
$_POST[hasil_ram] ."', 
    status = '"
$_POST[status] ."', 
    keterangan = '"
$_POST[keterangan] ."', 
    where id = '"
$_POST[id] ."'"
Quote:


bisa coba pake cara agan diatas

lalu tambahin juga pada baris ini $result = mysql_query($query) or die(mysql_error());
biar tau error dimana, dan lihat error log juga bisa
$_POST[tanggal] dapat dipastikan undefined karena berupa data CONSTANT (harus di define sebelumnya)

pemanggilan variable post yang benar adalah $_POST['tanggal'] atau $_POST["tanggal"] kan memanggil string data
sekedar saran tambahan jgn lupa sanitized setiap data post untuk jaga2 mysql injection:
http://php.net/manual/en/mysqli.real...ape-string.php


-------
update: ane salah liat script awal agan, yg keterangan post pertama ane berlaku untuk post ini http://www.kaskus.co.id/show_post/55...83598b456c/3/- :

untuk kasus agan variable post id dan id trans dirubah formatnya:

set id_trans = {$_POST[id_trans]},
where id = {$_POST[id]}




tanpa tanda quotes sama sekali (dengan asumsi tipe kolom id_trans dan id berupa integer, dan id_trans read only (informative))
Quote:


Pada query proses:
<?php
include("koneksi.php");
if (isset($_POST['update'])) {
$id = $_GET['id'];


coba ganti: $id = $_GET['id']; menjadi $id = $_POST['id'];

Soalnya itu dari form,

<form action="download_ubah_query.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?php echo $data['id']; ?>" />

Metode formnya POST bukan GET.

Kalo mau tetap GET, di action harus di ditambah:

<form action="download_ubah_query.php?id=<?php echo $data['id'];?>"
Quote:


Quote:


ane udah ikutin sesuai yang diatas gan, tapi hasil gini :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update download set id_trans = '20-20', tang' at line 1

Sekedar review dikit, cmiiw.. Itu di query sqlnya, setelah baris ini:
keterangan = '". $_POST[keterangan] ."',

Itu sebelum clausa where, kok ada huruf koma ",". Coba ilangin komanya.

Terus untuk error line 1, tipe datanya apa y kalo bleh tau untuk id_trans?

Sorry ga ada highlightnya, soalnya pake hp.
di bagian ini
where id = '$_POST[id]')"

mungkin maksutnya gini kali yah klausul wherenya
where id = '$_GET[id]')"

soalnya yang ane liat di atas gak ada variable $_POST[id] adanya $_GET[id]
Spoiler for aaaaaaa:


cmiiw emoticon-Malu
Banyak banget salahnya, mana ngga rapi jadi malas baca skripnya. emoticon-Bingung (S)
Quote:


tipe data id_trans = varchar gan
oiya error line 1 udah gak ada lagi


Quote:


jadi yg bener $_GET atau $_POST gan dalam kasus diatas ?

skrng udah gak ad error lagi tapi tidak ada perubahan apa apa setelah edit data
Quote:


Perasaan sudah aku jelaskan deh di atas.
Jadinya $_POST atau $_GET?
Atau pakai $_REQUEST aja

Pertama, memakai $_POST, $_GET, $_REQUEST langsung ke query itu buruk!
Code:

$result = mysql_query("UPDATE download SET id_trans = '$_POST[id_trans]' ... ");

Bisa kena SQL injection. Data harus disanitasi, misal pakai mysql_real_escape_string
Code:

$id_trans = mysql_real_escape_string($_POST[id_trans]);
$result = mysql_query("UPDATE download SET id_trans = '$id_trans' ... ");


Terus, mysql_* sudah hampir usang,
beralihlah ke mysqli atau pdo!
Saran sih, buat/pakaiinn kelas database. Biar kalau ganti engine/database tinggal ganti kelasnya (sedikit saja ngubah program).

Terus, yang ditunggu-tunggu, query tidak jalan..
Code:

$result = mysql_query($sql = "UPDATE download SET id_trans = '$id_trans' ... ") or die($sql."<br/>".mysql_error());

Perhatikan `$sql =` dan `or die(...)`
Nanti kalau querynya salah sintaks akan muncul query serta pesan errornya, tinggal dikopi terus tes jalanin ke SQLyog, Navicat, PMA, Adminer, kalau perlu.

Kalau ga muncul pesan error apa-apa, mungkin logikanya salah, tambahin lagi
Code:

$id_trans = mysql_real_escape_string($_POST[id_trans]);
$result = mysql_query($sql = "UPDATE download SET id_trans = '$id_trans' ... ") or die($sql."<br/>".mysql_error());
die($sql);

Nanti kuerynya muncul, cek querynya.

Tapi kalau masih ga muncul apa-apa, berarti baris-baris itu tidak dijalankan.
Errornya ada di lain tempat.
well... yang lain value diterima pake POST kecuali GET_['id']...
query kamu bisa dijalankan tapi where $id = "". alias.. update bla"bla" where id="".
Quote:


Maaf sebelumnya gan atas tidak tahuan saya, ini penjelasannya bisa lebih diperjelas gak gan ? hiihii emoticon-Blue Guy Peace emoticon-Blue Guy Peace
Quote:


Quote:


lu bilang tidak ada perubahan apa apa setelah edit data.. value yang GET ganti jadi POST...
Spoiler for query php:



Kayaknya tiap penjelasan ngga di baca teliti ya. Jadi berulang-ulang.
×