İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

sql sorgulama

_MuCaHiD_

0
İyinet Üyesi
Katılım
16 Eylül 2006
Mesajlar
218
Reaction score
0
Konum
konya
merhabalar

özgür çaycının mysql php kitabına goz atıyordum..

php mysql baglantısında verdiği bi örnegi çalıştıramadım..

PHP:
$sqlarama="";
if($_POST["AD"]!="")
$sqlarama=$sqlarama ."AD='$_POST[AD]' AND ";
if($_POST["SOYAD"]!="")
$sqlarama=$sqlarama ."SOYAD='$_POST[SOYAD]' AND ";
if($_POST["ADRES"]!="")
$sqlarama=$sqlarama ."ADRES LIKE '%" . $_POST["ADRES"] . "%' and ";
if($_POST["SEHIR"]!="")
$sqlarama=$sqlarama . "SEHIR='$POST[SEHIR]' AND ";
if (($_POST["yaskucuk"]!="") and ($_POST["yasbuyuk"]!=""))
$sqlarama=$sqlarama . "YAS between $_POST[yaskucuk] and $_POST[yasbuyuk] and ";
else
{
	if ($_POST["yaskucuk"]!="")
		$sqlarama=$sqlarama ."YAS > $_POST[yaskucuk] and ";
	if ($_POST["yasbuyuk"]!="")
		$sqlarama=$sqlarama ."YAS < $_POST[yasbuyuk] and";
}

bos arama yapınca tum kayıtları listeliyor ama bi değer girilince sql sorgusunda hata var mesajı veriyor
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
özgür çaycıyi foruma cagiralim o aciklasin olmazmi?
 

sempaty

1
İyinet Üyesi
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaction score
19
Konum
hawaii. ama sanal tur.
daha detaylı bilgi verirseniz daha çok yardımcı olunabilir.

mesela arama formu. veya bu sql kodlarının öncesi ve sonrası.

bu kodlar sadece ilgili alanların doldurulduğu zaman bu alanlarda da arama yapması için
 

Mywedding

1
İyinet Üyesi
Katılım
26 Eylül 2006
Mesajlar
5,893
Reaction score
96
Konum
www.odatv.com
kodlar yetersiz. bi kısmı var burda.
select * kısmı filan yok. yani bu, mysql_query("select * "); satırının sadece bi kısmını belirtmek için.

bunun öncesi ve sonrası gerek
 

_MuCaHiD_

0
İyinet Üyesi
Katılım
16 Eylül 2006
Mesajlar
218
Reaction score
0
Konum
konya
özgür çaycıyi foruma cagiralim o aciklasin olmazmi?

öyle bi imkanımız varsa çok güzel olur ;)


arama.html
PHP:
<html>
<head>
<meta http-equiv="cache-control" content="no-cache, must-revalidate">
<title>Adres defterinde arama</title>
</head>
<body style="font-family: Verdana; font-size:8pt">
<form name="aramaformu" action="ara.php" method="POST">
<table border="0" style="font-family: Verdana; font-size:10pt; border:1 solid #808080" cellspacing="0" cellpadding="0">

<tr bgcolor="#800000">
<td colspan="4" align="center" height="24">
<font color="#ffffff" size="2">Adres defterinde Arama</font>
</td></tr>
<tr>
<td height="35" width="60">  Ad:</td>
<td height="35">  <input type="text" name="AD" size="12"></td>
<td height="35" width="60">  Soyad:</td>
<td height="35">   <input type="text" name="SOYAD" size="12"></td>
</tr>
<tr>
<td height="35" width="60">  Adres:</td>
<td colspan="35">  <textarea name="ADRES" rows="4" cols="30"></textarea></td>
</tr>
<tr>
<td height="35" width="60"> Şehir</td>
<td height="35"> <input type="text" name="SEHIR" size="12"></td>
<td height="35" width="60"> Yaş</td>
<td height="35"><input type="text" name="yaskucuk" size="1">-<input type="text" name="yasbuyuk" size="1"></td>
</tr>
<tr>
<td colspan="4" align="center" height="30">
<input type="submit" value="ara"></td>
</tr>
</table></form></body></html>

ara.php

PHP:
<html>
<head>
<meta http-equiv="Cache-control" content="no-cache, must-revalidate">
<title>arama sonuçları</title>
</head><body style="Font-family: Verdana; font-size: 8pt">
<?php
// ilk yapmamız gereken sql sorgu cümlemizi oluşturmak. bunu ana bir sorgu cümlesi oluşturup, ziyaretçilerimizin istediği aramaları tek tek bu sql cümlemize ekleyerek gerçekleştireceğiz.
//ana sql cümlemiz..

$sql="select * from adresler";
//sql cümlemize yapılması gerekli aramaları tek tek ekleyeceğiz. eğer ziyaretcimiz bir kutuyu bos bırakmışsa o kutu arama dışı olacak.

$sqlarama="";
if($_POST["AD"]!="")
$sqlarama=$sqlarama ."AD='$_POST[AD]' AND ";
if($_POST["SOYAD"]!="")
$sqlarama=$sqlarama ."SOYAD='$_POST[SOYAD]' AND ";
if($_POST["ADRES"]!="")
$sqlarama=$sqlarama ."ADRES LIKE '%" . $_POST["ADRES"] . "%' and ";
if($_POST["SEHIR"]!="")
$sqlarama=$sqlarama . "SEHIR='$POST[SEHIR]' AND ";
if (($_POST["yaskucuk"]!="") and ($_POST["yasbuyuk"]!=""))
$sqlarama=$sqlarama . "YAS between $_POST[yaskucuk] and $_POST[yasbuyuk] and ";
else
{
	if ($_POST["yaskucuk"]!="")
		$sqlarama=$sqlarama ."YAS > $_POST[yaskucuk] and ";
	if ($_POST["yasbuyuk"]!="")
		$sqlarama=$sqlarama ."YAS < $_POST[yasbuyuk] and";
}

// en son sql cümlemizi oluşturduğumuz ana sql cümlesi ile arama sql cümlesini birleştirerek elde edebiliriz. daha sonraeğer bir arama varsa, sql cümlemizin sonunda artan "and" kısmını sondan 5 karakter silerek temizleyeceğiz.

if ($sqlarama!="")
{
	$sql=$sql. "where".$sqlarama;
	$sql=substr($sql,0,-5);
}
//sorgu cümlemiz hazır . artık mysql ile bağlantı kuralım..

$baglanti=@mysql_connect("localhost","root","root");
if(!$baglanti)
{
	echo"şu anda veritabanı sunucumuz ile bağlantı kuramıyoruz.<br>"
	."lütfen bir süre sonra tekrar dene ulan";
	exit();
}
// veritabanımızı seçelim.
if(!@mysql_select_db("adresdefteri",$baglanti))
{
	echo " şu anda kullanacağımız veritabanı ile bağlantı kuramadık.<br> ";
	exit();
}
//daha öneceden hazırladığınmız sql cümlesini sorgulatıp cevabını isteyek.
$sorgu=@mysql_query($sql,$baglanti);
if(!$sorgu)
{
	echo "hatalı bir sql sorgulaması yapılmış bulunuyor.<br> ".
		"lütfen sorgulamayı kontrol ediniz..";
	exit();
}
mysql_close($baglanti);
// sorgulamamizi başari ile tamamladık, ve artık sorgulama sonucumuz $sonuç değiskeninde bulunuyor. simdi tek yapmamız gereken bu değiskenden aldığımız her sıra veriyi web sayfamızda göstermek önce tablo yapımızı hazırlayacağımz. daha sonra her aldığımız bir sıra veri içcin tablomuzda bir bira ekleyeceğiz.
?> 
Arama Sonuçları:<br> <br> 
<table border="1" style="font-family: Verdana; font-size: 10pt; border:1 solid #800000" cellspacing="0" cellpadding="0"> 
<tr bgcolor="#800000"> 
<td align="center" height="24" width="30"> 
<font color="#ffffff" size="2"> No</font>
</td> 
<td align="center" height="24" width="75"> 
<font color="#ffffff" size="2"> ad </font> 
</td>
<td align="center" height="24" width="75"> 
<font color="#ffffff" size="2"> soyad </font> 
</td>
<td align="center" height="24" width="150"> 
<font color="#ffffff" size="2"> adres </font> 
</td>
<td align="center" height="24" width="75"> 
<font color="#ffffff" size="2"> sehir </font> 
</td>
<td align="center" height="24" width="30"> 
<font color="#ffffff" size="2"> yas </font> 
</td>
<tr>

<?php
//sorgu sonuclarını yayınlayalım mı ?
while($sira=mysql_fetch_array($sorgu))
{
	echo"<tr>";
	echo"<td height=\"35\"> ".$sira["NO"]."</td>\n";
	echo"<td height=\"35\"> ".$sira["AD"]."</td>\n";
	echo"<td height=\"35\"> ".$sira["SOYAD"]."</td>\n";
	echo"<td height=\"35\"> ".$sira["ADRES"]."</td>\n";
	echo"<td height=\"35\"> ".$sira["SEHIR"]."</td>\n";
	echo"<td height=\"35\"> ".$sira["YAS"]."</td>\n";
	echo"</tr>\n";
}
echo"</table><br>";
// kullandığımız sql cümlesinide görmek istiyordum hellal olsun ozgur caycı bunuda dusunmus..

echo $sql
?>
<a href="arama.html">Geri Dön Ula</a>
</body></html>

sql..

PHP:
CREATE TABLE `adresler` (
  `NO` int(3) unsigned NOT lisanssız auto_increment,
  `AD` varchar(16) default lisanssız,
  `SOYAD` varchar(16) default lisanssız,
  `SEHİR` varchar(25) NOT lisanssız default '',
  `ADRES` text NOT lisanssız,
  `YAS` int(3) unsigned default lisanssız,
  PRIMARY KEY  (`NO`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

-- 
-- Tablo döküm verisi `adresler`
-- 

INSERT INTO `adresler` VALUES (1, 'FATİH', 'ÇELEN', 'KONYA', 'MERAM', 21);
INSERT INTO `adresler` VALUES (2, 'MUSTAFA', 'ÇELEN', 'KARAMAN', 'KARABEKİR', 18);
INSERT INTO `adresler` VALUES (3, 'OZGUR', 'ÇAYCI', 'ANKARA', 'KECİOREN', 30);
INSERT INTO `adresler` VALUES (4, 'HAKKI', 'ÖCAL', 'İSTANBUL', 'EMİNONU', 40);
 

_MuCaHiD_

0
İyinet Üyesi
Katılım
16 Eylül 2006
Mesajlar
218
Reaction score
0
Konum
konya
Var tabi, sen davet et ben sana gonderecek davetiye veririm.

sen davetiyeyi ver mail adresinide bilen bi arkadas versin benim için bi problem yok davet ederim.. davete icab etmeyecek olan düşünsün.. kitabına goz attım bulamadım mailini

edit; buldum davetiye hakkı ver iyinet ;)
 

_MuCaHiD_

0
İyinet Üyesi
Katılım
16 Eylül 2006
Mesajlar
218
Reaction score
0
Konum
konya
yukardaki aramadaydı. simdi de eklemede var sanırım ikiside aynı eksiklikten çalışmıyor ve o eksiklik muhtemelen su sql sorgu cümlelerindeki tırnaklar diye tahmin ediyorum..

ekleme.html
PHP:
<html> 
<head> 
<meta http-equiv="cache-control" content="no-cache, must-revalidate"> 
<title> adres defterine kayıt yapılması</title> 
</head> 
<body style="font-family: Verdana; font-size: 8pt"> 
<form name="arama formu" action="ekle.php" method="POST"> 
<table border="0" style="font-family: Verdana; font-size: 10pt; border:1 solid #808080" cellspacing="0" cellpadding="0"> 
<tr bgcolor="#800000"> 
<td colspan="4" align="center" height="24"> 
<font color="#ffffff" size="2"> yeni kayıt</font> </td> </tr> 
<tr> 
<td height="35" width="60"> ad: </td> 
<td height="35">  
<input type="text" name="AD" size="12"></td> 
<td height="35" width="60">  soyad:</td> 
<td height="35">  
<input type="text" name="SOYAD" size="12"> </td> </tr> 
<tr> 
<td height="35" width="60">  adres:</td> 
<td colspan="3">  
<textarea name="ADRES" rows="4" cols="30"> </textarea> </td> 
</tr> <tr> 
<td height="35" width="60">  şehir:</td> 
<td height="35">  
<input type="text" name="SEHIR" size="12"> </td> 
<td height="35" width="60">   yas:</td> 
<td height="35">  
<input type="text" name="YAS" size="1"> </td> </tr> 
<tr> 
<td colspan="4" align="center" height="30"> 
<input type="submit" value="ekle"> </td> </tr> </table> </form> </body> </html>

ekle.php

PHP:
<html> 
<head> 
<meta http-equiv="cache-control" content="no-cache, must-revalidate"> 
<title> veri eklenmesi</title> 
</head> 
<body style="font-family: Verdana; font-size: 8pt"> 
<?php
//iletilen verileri mysql isletmek icin bi sql sorgu cümlesi hazırlamak..

$sql="insert into adresler (AD,SOYAD,ADRES,SEHIR,YAS) values('$_POST[AD]','$_POST[SOYAD]','$_POST[ADRES]','$_POST[SEHIR]','$_POST[YAS]')";

//SORGU CÜMLESİ HAZIR MYSQL BAGLAN

$baglanti=@mysql_connect("localhost","root","root");
if (!$baglanti)
{
	echo " suan veritabanına baglanamıyoz<br>sonra tekrar dene";
	exit();
}
//veritabanımızı seçelim..
if(!@mysql_select_db("adresdefteri",$baglanti))
{
	echo " veritabanı baglantısı oluşturulamadı<br>sonra tekrar dene";
	exit();
}
//daha önceden hazırladığımız sql sorgu cumlesini mysql a iletelim ve cevabını isteyelim..

$sorgu=@mysql_query($sql,$baglanti);
if(!$sorgu)
{
	echo "hatalı bir sorgulama yapıldı<br> lütfen yapılan sorguyu kontrol ediniz.<br>".$sql."<br>";
	exit();
}
mysql_close($baglanti);
//sorgu başarı ile bitti
?>
veritabanına yeni kayıt başarıyla inset edildi..<br>
<a href="ekleme.html">geri dön yigenim</a>
</body></html>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst