İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

php mysql veri yazma sorunu

yakamoz01

0
İyinet Üyesi
Katılım
7 Haziran 2005
Mesajlar
359
Reaction score
0
PHP:
$q = mysql_query("SELECT `a`, `b` FROM `tablo` ORDER BY `a` DESC LIMIT 0,1") or die(mysql_error());

$row = mysql_fetch_assoc($q);

foreach($row as $k => v)
{
  $$k = $v;
}

$a = !empty($a) ? $a : 1; // Boşsa 1 olsun
$b = !empty($b) ? $b : 1; // Boşsa 1 olsun
$c = !empty($c) ? $c : 1; // Boşsa 1 olsun

$yeni_a = $a + 1; // a'nın yeni değeri a + 1
$yeni_b = ($b < 5) ? $b + 1 : 1; // b'nin yeni değeri 5'ten küçükse b + 1, değilse 1
$yeni_c = ($b == 5) ? $c + 1 : $c; // c'nin yeni değeri b 5'ten küçükse c + 1, değilse kendisi

$q = mysql_query("INSERT INTo `tablo` (`a`, `b`, `c`) VALUES ('$yeni_a', '$yeni_b', '$yeni_c')") or die(mysql_error());

kodunda b değeri 5 olunca c değirinin de 1 artmasını istiyorum ancak çalışmıyor. b değeri 5 olunca c 1 oluyor, sonra c 0 a geri dönüyor. istediğim b tekrar 5 olunca c 2 olsun. nerde hata var?
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
$a = !empty($a) ? $a : 1; // Boşsa 1 olsun

Bu boşsa değil, boş değilse demek. Database'den gelen değerleri var_dump ile ekrana basın. empty() fonksiyonunu kaç senelik programcılar bile yanlış kullanıyor çoğu zaman. String 0, Integer 0, boş array, bunların hepsi empty() TRUE döndürür. Değer olup olmadığını 0'a, lisanssız'a ya da boş stringe eşit olup olmadığına göre kontrol etmek daha iyidir her zaman.
 

yakamoz01

0
İyinet Üyesi
Katılım
7 Haziran 2005
Mesajlar
359
Reaction score
0
$a = !empty($a) ? $a : 1; // Boşsa 1 olsun

Bu boşsa değil, boş değilse demek. Database'den gelen değerleri var_dump ile ekrana basın. empty() fonksiyonunu kaç senelik programcılar bile yanlış kullanıyor çoğu zaman. String 0, Integer 0, boş array, bunların hepsi empty() TRUE döndürür. Değer olup olmadığını 0'a, lisanssız'a ya da boş stringe eşit olup olmadığına göre kontrol etmek daha iyidir her zaman.

olaya tam hakim değilim açıkcası. yeni yeni öğreniyorum. burda c yi arttıracak kodu yazabilir misiniz?
 

Vi.ncent

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
12
Reaction score
1
Kısa if-else kullanmak yerine if(){}else{} kullanmanız daha yerinde olacak. Her satırı yorumlama yapmanıza gerek yok. İşlerinizi daha çok karıştıracaktır.

İlk SQL sorgusunda 'c' belirtilmemiş. Sorun büyük ihtimalle bundan kaynaklandı.
 

yakamoz01

0
İyinet Üyesi
Katılım
7 Haziran 2005
Mesajlar
359
Reaction score
0
sorunu hallettim arkadaşlar teşekkür ederim
 

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