Siteme Yorum Sistemi Nasıl Ekleyebilirim?
19
●2.082
- 28-08-2008, 23:32:00Yazım hataları olabilir ama mantığı böyle...
Yorum tablomuzun böyle olduğunu varsayarsak...
id|sarki_id| baslik |mesaj -------------------------|--------- 1| 34 |yorum_baslik1 |mesaj1 2| 35 |yorum_baslik2 |mesaj2 3| 13 |yorum_baslik3 |mesaj3
Yukarıdaki tabloyu yönetmek için aşağıdaki fonksiyonları kullanabilirsin...
#Yorum ekleme başarılı ise true değerini döndürür... function yorum_ekle($sarki_id, $baslik, $mesaj){ return mysql_query("INSERT INTO yorumlar (sarki_id,basliki,mesaj) VALUES('$sarki_id','$baslik','$mesaj)") ? true : false; } #Yorum silme... function yorum_sil($yorum_id){ return mysql_query("DELETE FROM yorumlar WHERE id='$yorum_id' LIMIT 1") ? true : false; } #Yorum düzenleme işlemi... function yorum_duzenle($yorum_id, $baslik, $mesaj){ return mysql_query("UPDATE yorumlar SET baslik='$baslik',mesaj='$mesaj' WHERE id='$yorum_id' LIMIT 1") ? true : false; } #Şarkıya ait yorumları listeleme... function yorumlar($sarki_id){ #Geçici değişken... $d=array(); #SQL sorgusu hazırlanıyor... $sql=mysql_query("SELECT * FROM yorumlar WHERE sarki_id='$sarki_id'"); while($d2=mysql_fetch_array($sql)) $d[]=$d2; return $d; }Forumda yazdım hata var ise kusura bakma
.Hata var ise oluşan hatayı buraya yazaran yardımcı olabilirim.
- 29-08-2008, 15:01:40Birşey anlayamadımkamuran21 adlı üyeden alıntı: mesajı görüntüle
. Biraz daha açıklayabilirmisiniz.
- 29-08-2008, 15:26:28Üyeliği durdurulduben şöyle bişi yaptımmustafa90 adlı üyeden alıntı: mesajı görüntüle
<?php session_start(); // *** Redirect if username exists $MM_flag="MM_insert"; if (isset($_POST[$MM_flag])) { $MM_dupKeyRedirect="yorum_fail.php"; $loginUsername = $_POST['soz']; $LoginRS__query = "SELECT yorum FROM gelenyorum WHERE yorum='" . $loginUsername . "'"; mysql_select_db($database_lyrics, $lyrics); $LoginRS=mysql_query($LoginRS__query, $lyrics) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); //if there is a row in the database, the username was found - can not add the requested username if($loginFoundUser){ $MM_qsChar = "?"; //append the username to the redirect page if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&"; $MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername; header ("Location: $MM_dupKeyRedirect"); exit; } } $formhatasi = " <script language=\"javascript\"> this.location = \"ekle.php?hata=form\"; </script> "; $ip = $_SERVER["REMOTE_ADDR"]; function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "yorumekle")) { $insertSQL = sprintf("INSERT INTO eklenenler (isim, konu, mail, yorum, ip) VALUES (%s, %s, %s, %s, %s)", GetSQLValueString($_POST['isim'], "text"), GetSQLValueString($_POST['konu'], "text"), GetSQLValueString($_POST['mail'], "text"), GetSQLValueString($_POST['yorum'], "text"), GetSQLValueString($ip, "text")); mysql_select_db($database_lyrics, $lyrics); $Result1 = mysql_query($insertSQL, $lyrics) or die($formhatasi); $insertGoTo = "yorum_ok.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } else { ?> <?php } $textstr = ''; for ($i = 0, $length = 8; $i < $length; $i++) { $textstr .= $chars[rand(0, count($chars) - 1)]; } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "yorumekleadm")) { $insertSQL = sprintf("INSERT INTO yorum (isim, konu, mail, yorum) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['isim'], "text"), GetSQLValueString($_POST['konu'], "text"), GetSQLValueString($_POST['mail'], "text"), GetSQLValueString($_POST['yorum'], "text")); mysql_select_db($database_lyrics, $lyrics); $Result1 = mysql_query($insertSQL, $lyrics) or die($formhatasi); $insertGoTo = "yorum_ok_adm.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }önce gelenyorum tablosuna gidiyor ordan ben onay verişyorum yorum ekleniyor fakat şurda bişi takılıo kafama bu nasıl şarkıyla aynı id yi alcak yorumlar ? yada bu kod doğrumu şuan ? - 29-08-2008, 16:10:59Önce bir tavsiyede bulunayım
.
SQL sorgusu hazırlarken sprintf fonksiyonunu kullanmışsın bence bunu sık sık kullanma çünkü hem boşuna kullanıyorsun hemde boşuna zaman kaybı yapıyor.
yorumlara şarkı id sini ekleme konusuna gelecek olursak aşağıdaki örnek işine yarayabilir...
<html> <body> <!-- Şarkıları listelerken bir link verebilirsin her şarkıya ama linki verirken aşağıdaki şekilde vermen gerekiyor...--> <a href="yorum_yaz.php?sarki_id=[ID]">a şarkısına yorum yaz</a> <a href="yorum_yaz.php?sarki_id=[ID]">b şarkısına yorum yaz</a> <a href="yorum_yaz.php?sarki_id=[ID]">c şarkısına yorum yaz</a> </body> </html>
yorum_yaz.php
<? if((int)$_REQUEST['sarki_id']==0){ header("location: index.php"); } if($_POST['aksiyon']=='yorum_ekle'){ //Şarkı id sini alıyoruz... $sarki_id=$_POST['sarki_id']; yorum_ekle($sarki_id, $_POST['baslik'], $_POST['mesaj']); echo 'YORUM EKLENDİ<br>'; } ?> <form action="" method="post"> <input type="hidden" name="aksiyon" value="yorum_ekle"/> <input type="hidden" name="sarki_id" value="<?=$_GET['sarki_id'];?>"/> <input type="text" name="baslik"/> <textarea name="mesaj"></textarea> <input type="submit" value="kaydet"> </form>Böyle bir mantık kullanabilirsiniz. O verdiğiniz kodu incelemedim. Pek zamanım da yok. Eğer hata var ise düzeltmeye çalışırım.. - 29-08-2008, 18:43:09yorumların gösterildiği sayfada sorgu bu şekildeTillom adlı üyeden alıntı: mesajı görüntüle
$mysql_query("select * from yorumlar where onay=1");
yani onayı 1 olanlar yayınlanıyor ve yorum girilince otomatik sıfır ataması için default 0 yaparsın..
**admin panelindende yorumları listeleyip update ile onaylarını 1 yaparsın geneli bu
.Hata var ise oluşan hatayı buraya yazaran yardımcı olabilirim.
. Biraz daha açıklayabilirmisiniz.
deniyorum şimdi .