Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 13/09/2007, 23:21   #1 (permalink)
Üye
 
Üyelik Tarihi: 09/2007
Mesaj: 3
Varsayılan Mysql de aynı tablodan isterik sorgulama

iyi günler diliyorum herkese...

Şöyle bi sorunum var.
bir adet tablom var

Alanlar

adi varchar (20)
soyadi varchar (20)
sehir varchar (20)
alan1 varchar (1)
alan2 varchar (1)

php den database e kayıt yapıyorum.. Kayıt aramaya gelince halledemedim.. Aramada da aynı alanlara göre arama yapılabilecek. yani giren kullanıcılar bu alanlardan isteğine bilgi girecek ve girilen alanlara göre arama yapılacak..

ben söyle bi yöntem geliştirtim. Hangi kutucuklara bilgi girilmiş ise ona göre bi cumle oluşturdum yani
if ($adi!='') {$cumle=" adi=".$adi}
if ($soyadi!='') {$cumle="And soyadi=".$soyadi}
bu şekilde bütün alanları belirledim ve neticesinde hangi alanlara bilgi girişmişse ona göre bi cumle oluşturdum. Buraya kadar sorun yok Cumle oluşumu doğru olarak tamamlanıyor. Yani tüm alanlara bilgi girilse bile
adi=cafer and soyadi=deneme and sehir=mersin and alan1=1 and alan2=1
şekline geliyor.
ancak bu cumleyi sorguda kullandığımda hiç bir kayıt dönmüyor geri. sadece adı alanına bilgi girsem bile cevap gelmiyor.

Sorgu cumlesiini söyle oluşturuyorum
$sql = mysql_query(" select * from kayitlar where" .$cumle");

bu cümleyle boş dönüyor ancak bu cümle içine
$sql = mysql_query(" select * from kayitlar where Adi='$adi'");
yazınca sorgudan uygun kayıtlar geliyor.. Acaba cumle değişkenini sorguya nasıl dahil ederim. Veya bir tablodan girilen bilgilerin alanlarına göre nasıl kayıt çekiliyor..

Yardımcı olursanız çok sevinirim...

Bu arada $cumle değişkeninde adi=$adi yani adi='cafer' bilgisi olsa bile sorgulama olmuyor. Bu sorguyu ( Kullanıcının istediği alanlara veri girerek sorgulama yapması) nasıl çalıştırabilirim.. Çok zorlandım çözüm için...
SAHAN33 hatta değil   Alıntı Yaparak Yanıtla
Eski 15/09/2007, 20:51   #2 (permalink)
Üye
 
Üyelik Tarihi: 04/2006
Mesaj: 5
Varsayılan

dikkatimi çeken bi hata var sanırım o yüzden sonuç dönmüyor olabilir. Şöyleki
$cumle değişkenine veri atarken dikkatinden kaçmış snırım adi=$adi olarak atamısşın. sql de eger arattığın şey metin se bunu tırnak içinde vermelisin
sayı olduğunda tırnak kullanman gerekmez. Ayrıca cumle değişkenine ekleme yaparken ilkini sildirmişsin. yani cumle değişkenine ekleme yapacağında
.=$cumle
şeklinde başlaman gerekir ve sql cümleciğini oluştururken de
adi='$adi'
şeklinde kullanman gerekir.
SkandaL hatta değil   Alıntı Yaparak Yanıtla
Eski 16/09/2007, 02:14   #3 (permalink)
Üye
 
Üyelik Tarihi: 09/2007
Mesaj: 3
Varsayılan

Ben cümle oluşumunda sorun yaşamadım. $cumle değişkeni duruma göre doğru bir şekilde sonuçlanıyor. ekrana yazdırıyorum ve girdiğim alanlara göre $cumle değişkeni biçimleniyor. Yani adı ve soyadı alanlarına bilgi girildiğince Bu fonksiyona giren $cumle değişkeni
adi=cafer and soyadi=deneme
şekline geliyor. Eğer diğer alanlara da bilgi girince cümle ona göre uzuyor veya kısalıyor. Bu cümle değişkenini sorguya aldığımda

$sql = mysql_query(" select * from kayitlar where" .$cumle"); yaptığımda Ekrana

Select * from kayitlar where adi=cafer and soyadi=deneme

yazıyor ama bu sorguya girince kayıtları döndürmüyor. Bende başka bi şekliyle cafer ve deneme kelimelerini özel olarak tek tırnak içine de aldırdım ozaman $cümle değişkeni

adi='cafer' and soyadi='deneme'

haline geliyor. Aynı cümleyi dinamik olarak yazınca sorgulama yapılıyor ama $cumle değişkenine alınca sorgulamıyor. kafayı yiycem nasıl iş bu anlayamadım...

Sizler aynı tablodan isterik kayıtlar çekerken nasıl bi yöntem uyguluyorsunuz. Ben Borland delphi mantığıyla düşündüm ve aklıma başka bi çözüm gelmiyor....
SAHAN33 hatta değil   Alıntı Yaparak Yanıtla
Eski 16/09/2007, 02:18   #4 (permalink)
Üye
 
Üyelik Tarihi: 09/2007
Mesaj: 3
Varsayılan

<?php
include ("baglan.php");
$adi=$_REQUEST['EAdi'];
$soyadi=$_REQUEST['ESoyadi'];
$memleket=$_REQUEST['Esehir'];
$alan1=$_REQUEST['onay1'];
$alan2=$_REQUEST['onay2'];
$cumle='';
//************************************************** ***
// kutucuklar işaretlenmiş mi yoksa işaretlenmemiş mi $alanı='' ise
işaretlenemiş ve 0 değerini veriyoruz
//************************************************** ***
if ($alan1=='')
{
$alan1='0';
}
if ($alan2=='')
{
$alan2='0';
}
//************************************************** ***
// kutucuk kontrolunun sonu...
//************************************************** ***
if ($adi!='')
{
$cumle=" adi = ".$adi;
}
if ($soyadi!='')
{
if ($cumle!='')
{ $cumle=$cumle." and soyadi=".$soyadi;
}
else $cumle=" soyadi=".$soyadi;
}
if ($memleket!='')
{
if ($cumle!='')
{
$cumle=$cumle." and sehir=".$memleket;
}
else $cumle=" sehir=".$memleket;
}
if ($alan1=='1')
{
if ($cumle!='')
{
$cumle=$cumle." and alan1=".$alan1;
}
if ($cumle=='')
{
$cumle="and alan1=".$alan1;
}
}
if ($alan2=='1')
{
if ($cumle!='')
{
$cumle=$cumle." and alan2=".$alan2;
}
else $cumle="and alan2=".$alan2;
}
//************************************************** ***
// buradan sonra Sorgulama işlemleri başlaması gerekiyor.....
//************************************************** ***
if ($cumle!='')
{
$cumle="Select * From Kayitlar Where ".$cumle;
Echo $cumle; echo "<br>";
$sorgu = mysql_query($cumle);
}
Else
{
$sorgu = mysql_query(" Select * From Kayitlar");
}
if(!$sorgu)
{
echo "Sorgunuz gerçekleştirilemedi";
exit;
}
if (mysql_num_rows($sorgu)=="0")
{
Echo "Listelenecek Uygun kayıt Bulunamadı...";
} else
{
while ($yaz=mysql_fetch_array($sorgu))
{
//************************************************** ***
// bulunan kayıtları listelemeye başla.....
//************************************************** ***
$aadi=$yaz['adi'];
$ssoyadi=$yaz['soyadi'];
$mmemleket=$yaz['sehir'];
$aalan1=$yaz['alan1'];
$aalan2=$yaz['alan2'];
if ($aalan1!='0')
{$aalan1='Evet';
}
Else {$aalan1='Hayır';
}
if ($aalan2!='0')
{$aalan2='Evet';
}
Else {$aalan2='Hayır';
}
// kayıtlar Listeleniyor...
Echo "<b>";Echo "Kullanıcı Adı :";Echo "</b>"; Echo $aadi."<br>";
echo "<b>";Echo "Kullanıcı soyadı :";echo "</b>"; Echo $ssoyadi."<br>";
Echo "<b>";Echo "Memleketi :";Echo "</b>"; Echo $mmemleket."<br>";
Echo "<b>";Echo "Parası Çok mu :";Echo "</b>";Echo $aalan1."<br>";
Echo "<b>";Echo "Ev Satın Alacak :";Echo "</b>";Echo $aalan2."<br>";
echo "--------------------";echo "<br>";
}

Bu dosya da benim ara.php dosyam. tam komutlar buranın içinde.... Arama Kriterlerine hiç bi bilgi girmeden tüm kayıtları Listeliyor Ama kriter girince olmuyor....
SAHAN33 hatta değil   Alıntı Yaparak Yanıtla
Eski 01/10/2007, 15:28   #5 (permalink)
Üye
 
Üyelik Tarihi: 04/2006
Mesaj: 5
Varsayılan

$sql = mysql_query(" select * from kayitlar where" .$cumle");

bu kısmı bide şu şekilde denermisin
$sql = mysql_query(" select * from kayitlar where " .$cumle.";");

tabi yine metinsel verileri tırnak içinde aratırsan iyi olur kanaatindeyim..
SkandaL hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
3 tablodan aynı 2 veri enginna Veritabanları & SQL 9 07/09/2007 01:20
mysql ile aynı tablodan farlklı kriterlerde veri çekmek termoni Veritabanları & SQL 0 22/06/2007 19:12
5 tablodan aynı anda silme stripe1916 Veritabanları & SQL 10 15/10/2006 02:10
aynı anda tek veya çok sorgulama yapabilmek... rccinar Veritabanları & SQL 5 27/04/2005 00:06
Aynı tablodan 4-5 basamak yukarı çıkarak kontrol etmek... Scorpion PHP 10 01/06/2004 13:50


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 10:39.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net