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:Original Posted By justhrun
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] ."'"


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:Original Posted By lemanxzibit
Mohon bantuannya suhu,master php atau siapa saja yang bisa bantu menyelesaikan permasalahan dengan PHP,

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)


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:Original Posted By justhrun
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:Original Posted By indesign.co.id


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


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:Original Posted By ashenkk
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.


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


Quote:Original Posted By panda.mutz
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


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:Original Posted By lemanxzibit


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




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



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:Original Posted By Sacredbluerose
well... yang lain value diterima pake POST kecuali GET_['id']...
query kamu bisa dijalankan tapi where $id = "". alias.. update bla"bla" where id="".


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




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



Quote:Original Posted By lemanxzibit


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




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


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.