Php - mysql işlemleri [Örnekli]

Gencadult

New member
Katılım
4 Eyl 2006
Mesajlar
36
Reaction score
0
Puanları
0
Php ve mysql işlemleri ile ilgili örnekler sunmak istiyorum:

Örnek 1 = Veritabanından bir tablo içerisinde belirtilen şarta ait verileri çekmek

Örnek 2 = Veritabanından bir tablo içerisinden çektiğimiz verileri listeletmek



Fırsat buldukça bu şekilde örnekler yazacağım anlamadığınız noktalar olursa yanıtlamaya çalışırım.


*Not: Konu altından teşekkür etmek yerine teşekkür et butonunu kullanırsanız çok sevinirim. Böylece konu daha temiz olur. Şimdiden okuyan herkese çok teşekkürler iyi çalışmalar...
 
Örnek 1: Veritabanından bir tablo içerisinde belirtilen şarta ait verileri çekmek
PHP:
<?
///////////////////////////////////////
// Database bilgileri ve Bağlantı
///////////////////////////////////////
$vtkullanici = mysql_connect("localhost", "Veritabanı Kullanıcı Adınız", "Veritabanı Kullanıcı Şifreniz") or die(mysql_error());
mysql_select_db("Veritabanı Adınız",$vtkullanici) or die(mysql_error());
///////////////////////////////////////


// "dersler" veritabanımızdaki tablomuzun adıdır
// "id,baslik,icerik" ile dersler tablosundan bilgilerini çekmek istediğimiz sütunları belirliyoruz eğer "*" yaparsanız tüm sütunlar seçilmiş olacaktır
// " where id='3' " bölümü bir şarttır. id numarsı 3 olan kayda ait verileri alır
$sorgu = "select id,baslik,icerik from dersler where id='3'";

// Sorgulama işlemini başlatıyoruz
$sql = mysql_query($sorgu);

// Bilgi çekme işlemini yapan fonksiyonumuz: "mysql_fetch_array"
$yaz = mysql_fetch_array($sql);

// Ve ID si 3 olan kayda ait bilgilerimizi yazdırıyoruz
echo 'ID: '.$yaz[id].'<br />Başlık: '.$yaz[baslik].'<br />İçerik: '.$yaz[icerik];
?>

Şu anda kısıtlı zamanım olduğu için 1 örnek ile bırakıyorum ilk fırsatta diğer örnekleri de tek tek buradan yazacağım.


Örnek 2: Veritabanından bir tablo içerisinden çektiğimiz verileri listeletmek

PHP:
<?
///////////////////////////////////////
// Database bilgileri ve Bağlantı
///////////////////////////////////////
$vtkullanici = mysql_connect("localhost", "Veritabanı Kullanıcı Adınız", "Veritabanı Kullanıcı Şifreniz") or die(mysql_error());
mysql_select_db("Veritabanı Adınız",$vtkullanici) or die(mysql_error());
///////////////////////////////////////

// "dersler" veritabanımızdaki tablomuzun adıdır
// "id,baslik,icerik" ile dersler tablosundan bilgilerini çekmek istediğimiz sütunları belirliyoruz eğer "*" yaparsanız tüm sütunlar seçilmiş olacaktır
// Bu örnek için sorguya " where " şartı koyulmamıştır. Ama siz koyabilirsiniz. Mesela üyeleri listelerken bugün üye olanlar, yaşı 18den küçük olanlar gibi şartlar olabilir...
$sorgu = "select id,baslik,icerik from dersler";

// Sorgulama işlemini başlatıyoruz
$sql = mysql_query($sorgu);

// Bilgi çekme işlemini ("mysql_fetch_array") while döngüsü içerisinde ekleyeceğiz: 
while($yaz = mysql_fetch_array($sql)) {
// Şimdi "mysql_fetch_array" ile çektiğimiz verileri while içerisinde yazdırıyoruz
// Eğer her satırın sonuna <br /> eklersek alt alta listeleyecektir.Ya da tüm satırı <p></p>, <div></div> gibi taglar arasına da koyabilirsiniz... 
echo 'ID: '.$yaz[id].' - Başlık: '.$yaz[baslik].' - İçerik: '.$yaz[icerik].'<br />';
}
?>

while fonksiyonunu aşağıdaki şekilde yaparak sonuçları bir değişkene de atabilirsiniz:

PHP:
$sonuc = '';
while($yaz = mysql_fetch_array($sql)) {
// Şimdi "mysql_fetch_array" ile çektiğimiz verileri while içerisinde yazdırıyoruz
// Eğer her satırın sonuna <br /> eklersek alt alta listeleyecektir.Ya da tüm satırı <p></p>, <div></div> gibi taglar arasına da koyabilirsiniz... 
$sonuc .= 'ID: '.$yaz[id].' - Başlık: '.$yaz[baslik].' - İçerik: '.$yaz[icerik].'<br />';
}
// son olarak da yazdırmak için 
// echo $sonuc;
// şeklinde kullanabilirsiniz.
 
Ben bir konuda yardım rica ediyorum tabi mümkünse ???

Şimdi elimde bir oyun var bu oyunda cron ile çalıştırdığım bir dosya var bu dosyada aşağıdaki kod bulunuyor ancak benim bu kodu değiştirmem lazım ::

Mevcut KOD=

$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

Yani her cron işleminde 1000*Level + 400*Madeni + 200*Odunu uGold hesabına yansıt denmiş.
Ancak benim istediğim şöyle bişey şimdi uKasa diye bir değer ekledim db ye ve uGoldda bulunan Altınlarını uKasaya sevkediyor oyuncu belli bir süreleiğinine.ve bu cron doasyasında Önce uKasayı kontrol edip uKasada Altın varsa 1000*Level + 400*Madeni + 200*Odunu direkt uKasaya yansıtacak eğer uKAsa kontrolünde Altın yoksa normal işlemini devam edip 1000*Level + 400*Madeni + 200*Odunu uGold hesabına yansıtacak.Eger böyle bir kodlama mümkünse ve bana bu konuda yardımcı olursanız çok minnettar olacağım..
 
Ben bir konuda yardım rica ediyorum tabi mümkünse ???

Şimdi elimde bir oyun var bu oyunda cron ile çalıştırdığım bir dosya var bu dosyada aşağıdaki kod bulunuyor ancak benim bu kodu değiştirmem lazım ::

Mevcut KOD=

$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

Yani her cron işleminde 1000*Level + 400*Madeni + 200*Odunu uGold hesabına yansıt denmiş.
Ancak benim istediğim şöyle bişey şimdi uKasa diye bir değer ekledim db ye ve uGoldda bulunan Altınlarını uKasaya sevkediyor oyuncu belli bir süreleiğinine.ve bu cron doasyasında Önce uKasayı kontrol edip uKasada Altın varsa 1000*Level + 400*Madeni + 200*Odunu direkt uKasaya yansıtacak eğer uKAsa kontrolünde Altın yoksa normal işlemini devam edip 1000*Level + 400*Madeni + 200*Odunu uGold hesabına yansıtacak.Eger böyle bir kodlama mümkünse ve bana bu konuda yardımcı olursanız çok minnettar olacağım..


anladığım kadarıyla yardım edeyim:
uKasa 'yı users tablosu içinde varsayıyorum.



PHP:
$ugold_query = $db->query("SELECT uGold FROM users");
$ugold = mysql_fetch_array($ugold_query);

// uKasa  Tablocuğu boş ise 

if($ugold == "") {

          // uGold'a at

$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

}

// Diğer Durumda

else {

          // uKasa'ya at

$db->query( "UPDATE users SET uKasa=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

}

söylediğini anlamamış da olabilirim.Daha açık bi şekilde anlatırsan yardımcı olurum yine ;)
 
Çok teşekkür ediyorum ..hemen deniyorum sonucu buraya yazarım..ama ne olursa olsun alakanıza minnetarım..

Oldu Allah razı olsun sizden,Ne kadar teşekkür etsem azdır sağolun,Sizden mümkünse son bir ricam olacak...

uGolda baktı altin yok , dört kasa var "Kasa2 ,Kasa4 ,Kasa6 ,Kasa12" bu dört kasadan hangisinde Altin var ise (("UPDATE users SET uKasa=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" bunları o Kasaya yansıtacak...bunun imkanı varsa ve bu konudada yardımcı olursanız sevinirm.İmkanı yok isede sağolun en azından Tek Kasa olayını çözmüş olurum ve dört kasa yerine tek kasa sunarım oyunculara...



EDit :
Şimdi deniyordumda şöyle bir sorun var...uGolda Altın yansıtmıyor,yani uGolda bakıyor diyelim ama uGolda altın olsada olmasada uKaleye yansıtıyor yeni değerleri..
 
peki aşağıdakini dene o zaman.

bu oyun scripti sanırım, kullanıcı ID de kullanalım.
id'imizi 5 diyelim mesela (onu sen ayarlarsın kullanıcının id'sini),
kullanıcı id'si tablocuğunuda userid olarak varsayıyorum

PHP:
$id = "5";
$ugold = $db->query("SELECT uGold FROM users WHERE userid='$id' ");

// uKasa  Tablocuğu boş ise 

if($ugold != "") {

          // uKasa2'ye at

$db->query( "UPDATE users SET uKasa2=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

$ukasa2 = $db->query("SELECT uKasa2 FROM users WHERE userid='$id' "); 
$ukasa4 = $db->query("SELECT uKasa4 FROM users WHERE userid='$id' ");
$ukasa6 = $db->query("SELECT uKasa6 FROM users WHERE userid='$id' ");
$ukasa12 = $db->query("SELECT uKasa12 FROM users WHERE userid='$id' ");
 
                           // uKasa2 boşsa
if($ukasa2 == "") {

## Ukasa4'e at
$db->query( "UPDATE users SET uKasa4=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );

                           // uKasa4 boşsa     

if($ukasa4 == "") {

## Ukasa6'ya at
$db->query( "UPDATE users SET uKasa6=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );   

}

                           // uKasa6 boşsa     

if($ukasa6 == "") {

## Ukasa12'ye at
$db->query( "UPDATE users SET uKasa12=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" );   

}

}

// Tüm kasalar Boşsa

else {

          // uGold'a at

$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" WHERE userid='$id');

}
 
En sonkini cron.php 'de denediğimde bu hatayı veriyor..
PHP:
Parse error: syntax error, unexpected T_STRING in /usr/home/kullanıcı/public_html/oyun/crons/cron.php on line 62

62. satır = "else { " den sonra verilen komut =


PHP:
$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" WHERE userid='$id');
Ancak bu satırı ve öncesini sonrasını sildiğimdede

PHP:
Parse error: syntax error, unexpected $end in

hatasını veriyor..


Oyuncuların id'si users tablosunda uID olarak belirtilmiş ..

Birde belirtmek istediğim şudur ki uGold ve uKasa diye iki tablo yok,uGold var bu Tabloda Oyuncuların Oyunda ürettikleri Madenden veya savaştan kazandıkları Altınlar mevcut......(uKasa2 den örnek vereyim),bende uKasa2yi oluşturup yeri geldiğinde Oyuncuların uGold'da yani nakitte görünen Altınlarını Korumaya almak istediklerinde belli bir süre (misal Kasa2 deki süre 2 saattir) uKasa2ye aktararak koruma altına almayı istedim.Süre olayını oluşturacağım cron ile uKasa2'den Altını uGold'a rahatca aktarabilirim.Ancak bu süre içinde Oyunucun üreticileri durmayacağından ürettikleri altınlar normal olarak nakitte yani uGold'da görünecek bende bundan dolayı önce uKasa2 yi kontrol edecek eğer uKasa2 boş ise (yani Oyuncu Altınlarını uKasa2'ye aktarmamış ve koruma altına almamış ise) normal işlemi olan üretilen Altınları uGold'a yansıtmasıydı..Ancak ben böyle birşey yapacak bilgiye sahip değilim ...


Alakanıza tekrar teşekkür ediyorum sizi fazla yormak istemiyorum,bu oyunda oyunculara KASA hizmeti vermeyiz olur biter,yinede çok sağolun vakit ayırdınız...
 
şu elseden sonra ki dediğin kodu

PHP:
$db->query( "UPDATE users SET uGold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" WHERE userid='$id' ");
yap.

bide dostum şuanda kafam gerçekten yazdıklarını almakta zorlanıyor =)
demek istediğine göre bi nevi yedekleme yapmak istiyosun.

o zaman şöyle yap, kasa1 kasa2 cart curt olmasın,
users tablosu içine yedekgold diye bi tablocuk oluştur, INT olarak oluştur varsayılan değeri 0 olsun.

kullanıcı istediğinde de
PHP:
$userid = "1" // Tanımlarsın burda
// Aşağıdaki kod ile yedek tabloya aktarırsın, istersende bu kod ile de varolan uGold'u silersin,yani tamamen ugold kısmı yedek tabloya taşınmış olur
// $db->query( "UPDATE users SET uGold='' WHERE uID='$userid');  

$db->query( "UPDATE users SET yedekgold=uGold+((1000*uMineLevel)+(400*uMiners)+(200*uKalles))" WHERE uID='$userid');

 
tamam çok teşekkür ediyorum alakanıza..
 
Geri
Üst