[]

Mysql/Php Sorusu

Elimde skorlar isimli bir tablo var ve bu tabloya veriler şu şekilde girilmiş (burada aynı takım onlarca kez yer almakta farklı skorlarla):

---------------------------------------------------------------------
id-------takim--iyatti-iyyedi--msatti-msyedi--homeaway--macsayisi
12105---Swansea-1-----0--------1-----1---------1---------1
12106---QPR-----0-----1--------1-----1---------2---------1
12107---Norwich-0-----0--------0-----2---------1---------1
12110---Wolves--1-----1--------1-----1---------2---------1
12137---Everton-0-----0--------1-----0---------1---------1
12138---Swansea-0-----0--------0-----1---------2---------1

iyatti: ilk yarı attığı golü
msatti: maç sonucunda attığı golü
homeaway: o maç evsahibi ise "1" deplasman takımıysa "2" kodunu girdiriyor.
macsayisi: ileride, yüzde hesabı alabilmem için koyduğum amaçsız bir şey.

---------------------------------------------------------------------

Ben istiyorum ki şu verileri şu tabloya yerleştireyim:

id---takimlar---sonuc---iysonuc---altust---homeaway

Burada sorunum nedir?
Sorunum şu: Php'de insert into yaparak bu kadar çok formül ve if-else kullanamıyorum. Muhtemelen ben yapamıyorum zaten.

Mesela;

altust: msatti+msyedi>2 ise 1, değilse 2 yazdırmalı bu kolona. Tek başına bunu yaptırabilirim. Ama aynı zamanda da;
sonuc: msatti>msyedi ise 1, msatti<msyedi ise 2, msatti=msyedi ise 0 yazdırmalıyım ve aynı zamanda da
iysonuc: iyatti>iyyedi ise 1, iyatti<iyyedi ise 2, iyatti=iyyedi ise 0 yazdırmalıyım.

Dediğim gibi bunları teker teker zaten yapabiliyorum ancak aynı anda nasıl belirtebilirim insert into yaparken? Karmaşık anlattıysam eğer lütfen söyleyin, tekrar anlatmaya çalışayım bayadır uğraşıyorum ama bir türlü beceremedim bu işi.

 
if else kullanarak niye yapamıyosun anlayamadım.

$sql ="insert into table values"; diye bi tane ana sqlin olsun.

if (bilmemneyse) {
$sql .= "(bilmemne)";
}
else if()
$sql .= "(asdsa)";
buraya eklenecek değerleri girersin bütün farklı koşullar için yapınca olur.
  • contavolta  (29.12.11 10:47:49) 
3'lü olarak nasıl yapıcam peki?

if (attığı yediğinden büyükse)
insert into (sonuc) values (1)
if else
..........................(2)
else
...........................(0)

yazdırabiliyorum zaten. ama aynı anda nasıl uygulayacağım? yani tek bir if'le nasıl alt üst, ilkyarı, maç sonucu gireceğim? sorunum sadece bu.
  • calimdor  (29.12.11 11:01:11) 
değerleri ayrı ayrı iflerde al
$bilmemne diye tanımla
sonra verdiğin ifler ile bunun değerini belirle, birden fazla değişken varsa onları da aynı şekilde ayarla ondan sonra tek kodla insert into yu stringleri birleştirerek oluştur
$bilmemne = 5 diye bir if'ten çıktıysak işte

$query = "insert into bilmemne bilmemne = " . $bilmemne . " bıdı bıdı";

şeklinde.
  • yuto  (29.12.11 12:18:55) 
if ($evsahibigol > $deplasmangol);
{
$sonuc = "1";
}
else if ($evsahibigol = $deplasmangol);
{
$sonuc = "0";
else
{
$sonuc = "2";
}

gibi mi? bir de alt üst için hemen altına aynı kodu yazıp, alt ust versiyonunu mu ekliycem? böylesi çalışır mı iki if alt alta?
  • calimdor  (29.12.11 13:35:09) 
işe yaradı hakikaten. daha önce de yapmaya çalışmıştım ama kodda ufak bir hata yapmışım şimdi işe yaradı. teşekkürler herkese.


  • calimdor  (29.12.11 14:16:55) 
bunun için php ye ihtiyaç yok sql üzerinden query ile yapılabilir;

şu şekilde bir query işini görecektir diye dusunuyorum:

INSERT INTO tablo2(takimlar,sonuc,iysonuc,altust,homeaway)
SELECT takim,CASE WHEN msatti > msyedi THEN 1 WHEN msatti < msyedi THEN 2 ELSE 0 END,CASE WHEN iyatti>iyyed THEN 1 WHEN iyatti<iyyedi THEN 2 ELSE 0 END,CASE WHEN msatti+msyedi > 2 THEN 1 ELSE 0 END,homeaway

daha fazla bilgi için mysql case şeklinde aratabilirsin.
  • yasaluyari  (29.12.11 18:58:45) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.