$bul = mysql_query ("SELECT postid,content FROM `posts` order by postid  DESC LIMIT 0,10 ");
if(mysql_affected_rows()){

while($listeleme =mysql_fetch_array($bul)){

    foreach ($listeleme[postid] as $contentid) {
    foreach ($isteleme[content] as $temizcontent) {
      $temizcontent = strip_tags ($temizcontent);
      $ayarver=mysql_query("SET NAMES UTF8");
      $deistir = mysql_query("update posts set content=$temizcontent  where postid=$contentid");

    }
}

if ($deistir) { echo "başarılı"; } else { echo "başarısız";}

arkadaşlar nerede hata yapiyorum ? son 10 veriyi sql den çekip html kodlarını temizleyip tekrar eklemek istiyorum ancak hata alıyorum

soruldu: 08 Nis, 07:55

emreer42's gravatar image

emreer42
011
cevap kabul oranı: 0%

değiştirildi: 08 Nis, 10:58

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146

$contentid = mysql_real_escape_string($contentid); $temizcontent = mysql_real_escape_string($temizcontent);

eksik onda mı acaba dedim ama ekledim sonuç aynı :S

(08 Nis, 08:30) emreer42 emreer42's gravatar image

Hata mesajı nedir? Kodlarında çok fazla hata var.

(08 Nis, 10:59) emrecan-oztas emrecan-oztas's gravatar image

Notice: Use of undefined constant postid - assumed 'postid' in /var/www/vhosts/xxx/httpdocs/striptags.phpon line 66

Warning: Invalid argument supplied for foreach() in /var/www/vhosts/xxx/httpdocs/striptags.php on line 66

Notice: Undefined variable: deistir in /var/www/vhosts/xxx/httpdocs/striptags.php on line 85
başarısız
permanent link

cevaplandı: 08 Nis, 11:06

emreer42's gravatar image

emreer42
011
cevap kabul oranı: 0%

Hata 1: postid kolununu çekerken tırnaklar içinde belirtmelisin yoksa bunu tanımlı bir değişken gibi algılar. Örneğin; $listeleme[postid] yerine $listeleme['postid'].

Hata 2: foreach'leri neden kullandın çözebilmiş değilim. Orada bir mantık hatası yapmışsın. Hem contentid hem de conten kolonlarını sadece bir hamlede alabilirsin.

Hata 3:deistir değişkenini while bloğunda tanımlamışssın lakin bu bloğun dışında bir yerde çağırmışsın. Scope alanlarına dikkat et.

Öneri: kodlarını OOP mantığına göre yazmanı tavsiye ederim.

Hızlı bir şekilde aşağıdaki kodları yazdım. Herhangi bir yerde yanlışlık olabilir. Deneme fırsatım olmadı. Yanlışlık olursa; yorum düşersen yardımcı olmaya çalışırım.

$serverName = "localhost";
$userName = "root";
$password = "";
$dbName = "dbname";

$connection = new mysqli($serverName, $userName, $password, $dbName);

if ($connection->connect_error) {
die("Baglanti basarisiz!: " . $connection->connect_error);
}
# utf-8 karakter sorunu icin:
mysqli_set_charset($connection, "utf8");

$sqlQuery = "SELECT postid, content FROM posts ORDER BY postid DESC LIMIT 10";
$result = $connection->query($sqlQuery);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
      $id = $row['contentid'];
      $content = $row['content'];
      $newContent = strip_tags($content);

    $sqlQuery = "UPDATE posts SET content='$newContent' WHERE contentid='$id'";
    if ($connection->query($sqlQuery) === TRUE) {
        echo "Kayit basariyla guncellendi!";
    } else {
        echo "Guncelleme basarisiz! [" . $connection->error . "]";
    }
}
} else {
echo "0 results";
}
$connection->close();
permanent link

cevaplandı: 08 Nis, 11:29

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146
cevap kabul oranı: 24%

değiştirildi: 08 Nis, 19:56

çok teşekkür ederim sanırım mantığı anladım. if ($connection->query($sql) === TRUE) bu kısmı if ($connection->query($sqlQuery) === TRUE) ve birde DESC LIMIT 10'i 0,10 yaptım. sorgu çalışıyor ancak türkçe karakter sorunu ve birde html kodlarını etkilemiyor aynen geri ekliyor strip_tags anlamadım :( ama yine de hatalarımın farkına vardığım için çok işime yaradı. tekrar teşekkür ederim.

(08 Nis, 13:46) emreer42 emreer42's gravatar image

Yardimci olduguma sevindim :) kucuk bir kod eklenmesi lazim suan ankara - tunali dayim. Yurda gecince ilgilenecegim insAllah. K.bakmayin biraz bekletecegim.

(08 Nis, 14:06) emrecan-oztas emrecan-oztas's gravatar image

K.bakmayın kodlarımı yeniden incelediğimde; $newContent yerine eski değeri ($content) eklediğimi gördüm / düzelttim. utf-8 sorunu içinde bir satır ekledim. Şimdi bir sorunu kalmadığını sanıyorum.

(08 Nis, 19:54) emrecan-oztas emrecan-oztas's gravatar image

Merhaba;

Veri çekme işlemlerini PDO ile yapmanı tavsiye ederim.

Veritabanımıza Bağlanalım.

try{
    $db = new PDO("mysql:host=localhost;dbname=veritabanı_ismi;charset=utf8", "root", "şifre(yoksa boş bırak)");
}catch(PDOException $e){
    print $e->getMessage();
}

Veri Çekme İşlemini Gerçekleştirelim.

<?php
$data = $db->prepare("SELECT postid,content FROM `posts` order by postid  DESC LIMIT 0,10 ");
$data->execute();
$result = $data->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row){
?>   
bundan sonra nereye listelemek istiyorsan(tablo vs.) $row ' u çağırarak veriyi listeleyebilirsin.
<?php echo $row["postid"]?>
<?php } ?>

Yeniden Veri Eklemek için "INSERT",veriyi değiştirmek (güncellemek için)"UPDATE" kullanabilirsin.

İyi Çalışmalar.

permanent link

cevaplandı: 08 Nis, 11:52

coder86's gravatar image

coder86
220223035
cevap kabul oranı: 0%

sanırım hosting firmam php'yi henüz güncellememiş :) mysqli kabul ediyor ancak pdo kabul etmiyor anlamadım garip bir durum :)

(08 Nis, 13:47) emreer42 emreer42's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×144
×8
×4
×1

Soruldu: 08 Nis, 07:55

Görüntüleme: 272 kez

Son güncelleme: 08 Nis, 19:56

powered by BitNami OSQA