[]
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.
---------------------------------------------------------------------
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.
$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.
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.
$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?
{
$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.
ş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