Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php ile çekilen veriyi kaydetme

merhaba arkadaşlar
php ile siteden veriyi çekiyorum fakat kaydedemiyorum. 13. ve 17. satırlarda sorun oluyor.
acaba yardımcı olabilirmisiniz? yanlışımı görmem açısında. şimdiden teşekkürler

<?php
include ("ayar.php");
$site=file_get_contents("http://www.bayrampasaportal.com/fikra.php?id=25");		//site adresi yaz
$baslikalan='#<title>(.*?)<\/title>#si';	
preg_match($baslikalan,$site,$baslikfonksiyon);		
$fikraalan='#<div align="left" class="fikra-paragraf">(.*?)<\/div>#si';		
preg_match($fikraalan,$site,$fikrafonksiyon);	
$fikra=$fikrafonksiyon[1];		
$baslik=$baslikfonksiyon[1];	
echo "$baslik<br>$fikra";		

$sorgu=mysql_query("SELECT * FROM fikralar WHERE f_baslik='$baslik'");	
if(mysql_num_rows($sorgu)>0)
{
echo "".$baslik." ile ayni fikra bulunmaktadir.";
}else{
$sor=mysql_query("INSERT INTO fikralar (f_baslik,f_fikra)values('$f_baslik','$f_fikra')");	
echo "".$baslik." Eklendi";
}
?>
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • -1
    sagoral adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    38 cevap - 2 soru
    Çektiğin değişkenlerin çalıştığını varsayıyorum:
    <?php 
    include ("ayar.php"); 
    $site=file_get_contents("http://www.bayrampasaportal.com/fikra.php?id=25");	 //site adresi yaz 
    $baslikalan='#<title>(.*?)<\/title>#si';	
    preg_match($baslikalan,$site,$baslikfonksiyon);	
    $fikraalan='#<div align="left" class="fikra-paragraf">(.*?)<\/div>#si';	
    preg_match($fikraalan,$site,$fikrafonksiyon);	
    $fikra=$fikrafonksiyon[1];	
    $baslik=$baslikfonksiyon[1];	
    echo "$baslik$fikra";	
    
    $sorgu=mysql_num_rows(mysql_query("SELECT * FROM fikralar WHERE f_baslik='$baslik'"));	
    if($sorgu>0) 
    { 
    echo "".$baslik." ile ayni fikra bulunmaktadir."; 
    }else{ 
    mysql_query("INSERT INTO fikralar (f_baslik,f_fikra)values('$f_baslik','$f_fikra')");	
    echo "".$baslik." Eklendi"; 
    } 
    ?>


    Bu şekilde dene bakalım birde ;)
  • madpoet adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    84 cevap - 1 soru
    Öncelikle "sorun oluyor" derken ne gibi bir sorun olduğunu yazarsanız insanlar cevap verebilir. Parse error hatası mı veriyor, SQL hatası mı var diyor, yoksa hata vermiyor ama çalışmıyor mu nedir?

    İlk bakışta gözüme çarpanlar:

    1) Sayfanın title'ında tek tırnak işareti varsa çalışmaz
    2) 17. satırdaki $f_baslik ve $f_fikra nerden geliyor?

    12. satırdan önce şöyle birşey eklerseniz işinizi görecektir sanırım:

    $baslik = mysql_real_escape_string($baslik);
    $fikra = mysql_real_escape_string($fikra);
    


    Bir de önemli tavsiyem var bununla ilgili: SQL injection nedir bir araştırın...
    • GozcuWeb adlı üyenin fotoğrafı GozcuWeb
      Localhost'a kurup çalıştırdığımda aldığım hata

      Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.3.1\www\set\c1.php on line 12

      Notice: Undefined variable: f_baslik in C:\Program Files\EasyPHP-5.3.3.1\www\set\c1.php on line 17

      Notice: Undefined variable: f_fikra in C:\Program Files\EasyPHP-5.3.3.1\www\set\c1.php on line 17

      yani mysql ile ilgili olan bölümlerde hata alıyorum.
      12 yıl önce yazılmış
    • madpoet adlı üyenin fotoğrafı madpoet
      Şöyle yapın o zaman, böylece hatayı görebilirsiniz:

      $q = mysql_query("SELECT * FROM fikralar WHERE f_baslik='$baslik'") or die(mysql_error());
      $sorgu = mysql_num_rows($q);
      
      12 yıl önce yazılmış
    • GozcuWeb adlı üyenin fotoğrafı GozcuWeb
      veriyi sorunsuz bir şekilde çekti fakat verinin hemen sonunda "Unknown column 'f_baslik' in 'where clause'" yazısı var. dosyaya include ettiğim ayar.php dosyası aşağıdakidir. ve halen kaydedilmiş bir veri olarak tablolarda göremiyorum.

      <?php
      $dbhost ="localhost";
      $dbuser ="root";//kullanim adimda root
      $dbpass ="";//benim sifrem 123 oldugu için 123 yaziyorym
      $dbadi ="data";//Burada phpmyadmin kismindan olusturulan veri tabaninin adi olacak
      $baglanti=@mysql_connect($dbhost,$dbuser,$dbpass) or die("Veri tabani ile baglanti saglanamiyor!");
      mysql_select_db($dbadi,$baglanti) or die("Veri tabanina baglanilamadi!");
      ?>
      12 yıl önce yazılmış
    • madpoet adlı üyenin fotoğrafı madpoet
      Tabloda f_baslik diye bir alan yok...
      12 yıl önce yazılmış
    • GozcuWeb adlı üyenin fotoğrafı GozcuWeb
      f_baslik adında tablom var.
      resimden bakabilirsiniz.
      http://img268.imageshack.us/i/21325054.jpg/
      12 yıl önce yazılmış
    • madpoet adlı üyenin fotoğrafı madpoet
      Amanın bu ney :)

      Arkadaşım hepsini birbirine karıştırmışsın...
      O tabloların hiçbiri olmayacak onlar bi tablonun alanları olur anca.
      Yani bir tane tablon olacak (sanıyorum fikralar tablosu o tablo da), o tablonun içinde id, baslik, fikra gibi alanlar olacak.

      Sen tablo yaratmışsın bissürü...
      12 yıl önce yazılmış
    • GozcuWeb adlı üyenin fotoğrafı GozcuWeb
      dediğin şekilde fikralar tablosun oluşturdum 5 alan atadım(id,baslik,f_baslik,fikra,f_fikra), veriler ekraba geldi ve şu şekilde 3 hata verdi :) :)

      Warning: mysql_num_rows() expects parameter 1 to be resource, integer given in C:\Program Files\EasyPHP-5.3.3.1\www\set\sonbot3.php on line 14

      Notice: Undefined variable: f_baslik in C:\Program Files\EasyPHP-5.3.3.1\www\set\sonbot3.php on line 18

      Notice: Undefined variable: f_fikra in C:\Program Files\EasyPHP-5.3.3.1\www\set\sonbot3.php on line 18
      12 yıl önce yazılmış