[ask]komentar status berdasarkan id_status dan id_user

Forum diskusi pemrograman web PHP

Moderators: irzan2010, trail

[ask]komentar status berdasarkan id_status dan id_user

Postby erica » 13 Feb 2012, 12:51

selamat siang..
Saya anggota baru dalam forum ini dan masih newbie dalam php. Saya mendapat kendala di mana komentar saya tidak masuk ke dalam database padahal tidak ada pesan error. Dugaan sementara saya kegagalan penyimpanan komentar karena kegagalan pengambilan berdasarkan id_status, namun saya belum menemukan letak kesalahannya. Bisakah saya meminta bantuan para master untuk mengecek kesalahan program saya? terima kasih..

//tampilan status dan input komentar
Code: Select all
<div id="msgloading"><br>
   <center><img src="images/loading.gif"><br>Loading... </center>
</div>
<?php
$view=mysql_query("select * from tbl_status status, tbl_user user where status.id_user=user.id_user and status.id_user='$id_user' order by id_status desc");

while($row=mysql_fetch_array($view)){
   if ($row['photo'] == '')
      $row['photo'] = "no-image.jpg";
?>
   
   <table width="350" align="center" border="0">
    <tr>
        <td align="right" valign="top">
              <p class="post-footer align-left"><a href="?page=profil_SN&id_user=<?php echo $row['id_user'];?>" class="comments"><?php echo $row['nama_anda'].' dan '.$row['nama_pasangan'];?></a> <span class="date"><?php echo $row['tanggal_status']; ?></span></p>
        </td>
    </tr>
    <tr>
        <td valign="top">
               <p><a href="?page=profil_SN&id_user=<?php echo $row['id_user'];?>"><img src="./photo/<?php echo $row['photo'];?>" style="border:#000000 inherit" width="75" height="80" alt="<?php echo $row['nama_anda']." dan ".$row['nama_pasangan'];?>" class="float-left" /></a></p>
            <p><?php echo $row['isi_status'];?></p>
      </td>
   </tr>
   <tr>
       <td valign="top">
            <?php echo "<div class=komentar><img src=images/komentar1.gif align=left>
                 <a href=javascript:(muncul($row[id_status])) class=isi>Komentar($row[komentar])</a>
                 <div id=komentar$row[id_status]>
                 </div>
                 <div id=inputkomentar$row[id_status] class=inputkomen align='right'>
                 <br>";?>
                 <input type="hidden" name="id_user" value="<?php echo $_GET['id_user']; ?>" />
                 <input type="hidden" name="id_teman" value="<?php echo $_SESSION['id_user']; ?>" />
                 <textarea name="komen<?php echo $row['id_status'];?>" cols="45" rows="2" class="inputteks1" id="<?php echo $row['id_status'];?>" onBlur="if(this.value=='') this.value='Tulis Komentar..';" onFocus="if(this.value=='Tulis Komentar..') this.value='';">Tulis Komentar..</textarea>
                 <?php echo "<br><input type='button' onclick='javascript: kirim($row[id_status])' value='Comment'>
                 </div></div>
         </td>
        </tr>
      <tr>&nbsp;</td></tr>
    </table>";
}
?>


//fungsi ambil dan kirim komentar
Code: Select all
<script>
var show = "hilang";
var iddiv;
var iddivkomen;
var idsebelumnya = "";
var ajx;
var idkomen;
function muncul(id){
    if(id!=idsebelumnya){
        show = "hilang";
    }
    iddiv = "inputkomentar"+id;
    iddivkomen = "komentar"+id;
    idsebelumnya = id;
    if(show=="hilang"){
        document.getElementById(iddiv).style.display = "block";
        document.getElementById(iddivkomen).style.display = "block";
        show = "muncul";
        ambil(id);
    }else{
        document.getElementById(iddiv).style.display = "none";
        document.getElementById(iddivkomen).style.display = "none";
        show = "hilang";
    }
}

function ambil(id){
    iddivkomen = "komentar"+id;
   idkomen = "komen"+id;
    munculloading();
    ajx = buatajax();
    var url="tampil_komentar.php";
    url=url+"?id_status="+id;
    url=url+"&sid="+Math.random();
    ajx.onreadystatechange=stateChanged;
    ajx.open("GET",url,true);
    ajx.send(null);
}

function kirim(id){
    iddivkomen = "komentar"+id;
   idkomen = "komen"+id;
    komen = document.getElementById(idkomen).value;
    if(komen.length > 0){
        munculloading();
          ajx = buatajax();
        var url="comment_status.php";
        url=url+"?id_status="+id;
   
      url=url+"&komentar="+komen;
        url=url+"&sid="+Math.random();
        ajx.onreadystatechange=stateChanged;
        ajx.open("GET",url,true);
        ajx.send(null);
    }
}

function buatajax(){
    if (window.XMLHttpRequest){
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject){
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

function stateChanged(){
var data;
    if (ajx.readyState==4){
        data=ajx.responseText;
        hilangloading();
        document.getElementById(iddivkomen).innerHTML = data;
      document.getElementById(idkomen).value = "";

    }
}

function munculloading(){
var dsocleft=document.body.scrollLeft;
var dsoctop=document.body.scrollTop;
document.getElementById("msgloading").style.top = parseInt(dsoctop) + 300;
document.getElementById("msgloading").style.display = "block";
}

function hilangloading(){
    document.getElementById("msgloading").style.display = "none";
}
</script>



comment_status.php
Code: Select all
<?php
include "koneksiDb.php";

$id_status = $_GET['id_status'];
$id_user=$_GET['id_user'];
$id_teman=$_GET['id_teman'];
$komentar = $_GET['komentar'];

$komentar = htmlspecialchars($komentar);
$isi = mysql_query("insert into tbl_komentar values('','$id_user','$id_teman','$id_status','$komentar',now())");
$isi = mysql_query("update tbl_status set komentar=komentar+1 where id_status = $id_status");

$view_komentar=mysql_query("select * from tbl_komentar where id_status = $id_status order by id_komentar desc");
            
while($row_komentar = mysql_fetch_array($view_komentar)){
   $id_teman=$row_komentar['id_teman'];
   $view_teman=mysql_fetch_array(mysql_query("select * from tbl_user where id_user=$id_teman"));
   if ($view_teman['photo'] == '')
      $view_teman['photo'] = "no-image.jpg";

echo "<br><div class=komentar2>";
?>
<table width="100%" align="center" border="0">
<tr>
   <td align="right" valign="top">
      <p class="post-footer align-left"><a href="" class="comments"><?php echo $view_teman['nama_anda']." dan ".$view_teman['nama_pasangan'];?></a> <span class="date"><?php echo $row_komentar['tanggal_komentar'];?></span></p>
   </td>
</tr>
<tr>
   <td valign="top">
      <p><a href=""><img src="./photo/<?php echo $view_teman['photo'];?>" style="border:#000000 inherit" width="77" height="83" alt="" class="float-left" /></a><?php echo $row_komentar['isi_komentar'] "</div>";?></p>
   </td>
</tr>
</table>
<?php
}
?>
User avatar
erica
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 28 Jan 2012, 14:54
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby vberror13 » 13 Feb 2012, 15:52

erica wrote:Saya mendapat kendala di mana komentar saya tidak masuk ke dalam database padahal tidak ada pesan error.

barangkali setting di PHP.INI memang tidak menampilkan error. Coba buka php.ini (kalau pake XAMPP, biasanya ditaruh di c:\xampp\php\php.ini) , dan lihat settingan error reporting. Ubah menjadi seperti ini:

Code: Select all
error_reporting = E_ALL


Jangan lupa bikin backupnya, bila ingin mengembalikan ke setinggan default.

coba perlihatkan struktur table tbl_komentar sekalian, biar lebih gampang diketahui kesalahannya.
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby erica » 14 Feb 2012, 06:30

vberror13 wrote:barangkali setting di PHP.INI memang tidak menampilkan error. Coba buka php.ini (kalau pake XAMPP, biasanya ditaruh di c:\xampp\php\php.ini) , dan lihat settingan error reporting. Ubah menjadi seperti ini:
Code: Select all
error_reporting = E_ALL



that's right, kak..saya pakai xampp.. :D
saya sudah membuka php.ini, tapi saya lihat isinya hanya berupa informasi seputar php, contohnya : "E_ALL - All errors and warnings (doesn't include E_STRICT); '
Settingan yang mau diubah yang mana ya, Kak?
Then,sebelumnya sewaktu saya lupa menaruh ' ' pada '$id_status' dan lupa include "koneksiDb.php" ada muncul pesan error.Apa itu bisa diartikan settingan php-nya ud sesuai,kak?

vberror13 wrote:coba perlihatkan struktur table tbl_komentar sekalian, biar lebih gampang diketahui kesalahannya.

struktur tbl_komentar :
Code: Select all
create table tbl_komentar (
id_komentar int(9) primary key,
id_user  int(9) not null,
id_teman  int(9) not null,
id_status  int(9) not null,
isi_komentar text not null,
tgl_komentar date
)


struktur tbl_status :
Code: Select all
create table tbl_status (
id_status int(9) primary key,
id_user  int(9) not null,
isi_status text not null,
tgl_komentar date,
komentar int(9)
)


mohon bantuannya master..
User avatar
erica
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 28 Jan 2012, 14:54
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby vberror13 » 14 Feb 2012, 10:49

erica wrote:saya sudah membuka php.ini, tapi saya lihat isinya hanya berupa informasi seputar php

coba lihat baris 514 (atau sekitar itu) . defaultnya kayak gini:
Code: Select all
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

comment aja dan bikin kayak gini:
Code: Select all
;error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
error_reporting = E_ALL
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby vberror13 » 14 Feb 2012, 11:02

tbl_komentar.id_komentar itu harusnya autonumber, ya? Kalau tidak autonumber, maka parameter id_komentar harus diisi pada query INSERT harus diisi angka.
Jadi coba buat tbl_komentar.id_komentar menjadi autonumber dan querynya diubah dikit:
Code: Select all
$isi = mysql_query("insert into tbl_komentar (id_user,id_teman, id_status, isi_komentar,tgl_komentar) ".
   "values('$id_user','$id_teman','$id_status','$komentar',now())");


ubah juga input komentarnya dengan memakai form biasa (bukan ajax). Nanti kalau input pake form biasa udah benar, baru kita buat jadi pake ajax.
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby erica » 14 Feb 2012, 12:08

vberror13 wrote:coba lihat baris 514 (atau sekitar itu) . defaultnya kayak gini:

Code: Select all
    error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED


comment aja dan bikin kayak gini:
Code: Select all
Select all
    ;error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
    error_reporting = E_ALL


di sekitar baris 514 isinya tentang file upload,kak. yang tentang error handling sekitar baris 250 ke bawah. Trus w masih bingung Kak yang mau diganti yang mana ya? soalnya itu isinya kayak penjelasan gitu. misalnya:
Code: Select all
; Examples:
;
;   - Show all errors, except for notices and coding standards warnings
;
;error_reporting = E_ALL & ~E_NOTICE
;
;   - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
;   - Show all errors except for notices and coding standards warnings
;
error_reporting  =  E_ALL & ~E_NOTICE
User avatar
erica
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 28 Jan 2012, 14:54
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: [ask]komentar status berdasarkan id_status dan id_user

Postby erica » 14 Feb 2012, 12:21

vberror13 wrote:tbl_komentar.id_komentar itu harusnya autonumber, ya? Kalau tidak autonumber, maka parameter id_komentar harus diisi pada query INSERT harus diisi angka.

iya kak id_komentarnya autonumber pake auto increment..maaf tadi di sql statement yang w post lupa tulis auto increment..

vberror13 wrote:querynya diubah dikit:
Code: Select all
    $isi = mysql_query("insert into tbl_komentar (id_user,id_teman, id_status, isi_komentar,tgl_komentar) ".
       "values('$id_user','$id_teman','$id_status','$komentar',now())");


kok id_komentarnya gak dimasukkan ya,Kak? bukannya id_komentar juga dimasukkan tapi ditulis null atau ' ' ya kak? kayak yang di bawah ini bisa gak, kak?
Code: Select all
    $isi = mysql_query("insert into tbl_komentar (id_komentar,id_user,id_teman, id_status, isi_komentar,tgl_komentar) values(' ','$id_user','$id_teman','$id_status','$komentar',now())");


vberror13 wrote:ubah juga input komentarnya dengan memakai form biasa (bukan ajax). Nanti kalau input pake form biasa udah benar, baru kita buat jadi pake ajax.

maksud kakak yang pake form action ya? kalau yang itu sudah saya coba Kak sebelumnya, tapi hasilnya masuk ke database tapi id_status dan id_teman = 0. So, komentar yang seharusnya untuk status A waktu ditampilkan muncul di semua status. :(
User avatar
erica
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 28 Jan 2012, 14:54
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests