ilişkili tablolardan döküm..
Veri tabanımda 3 tablo var.
ilk tablo adı "isim"
id isim
1 ahmet
2 mehmet
2.tablo adi "urun"
id urun
1 patates
2 sogan
3. tablo adi da "satis".
id isim urun
1 mehmet patates
2 mehmet sogan
3 ahmet patates
Şimdi isimler urunleri satınca "satis bölümüne ekleniyor.
ben bir <table> oluşturup ilk satırın hücrelerine ürünleri sıralatmak istiyorum.
$dsql = "SELECT * FROM urun";
$dsorgu=@mysql_query($dsql) ordie(" Arama yapilamadi! ".mysql_error());
while($row = @mysql_fetch_array($dsorgu)){
$urun=$row['urun'];
echo'<td>'.$urun.'</td>';}echo'</tr>';
Çünkü ürünler artabilir. Şimdi bu kısım basit ancak aklıma takılan satış sorgularını numrows yaparak saydırıp, ikinci satırdan itibaren "isim" ve ürünlerin altına gelecek şekilde numrows değerleri.
tahmin: isim bölümünde for döngüsü kurarak $gelenisim[$i] şeklinde cekip,
$dsql = "SELECT * FROM urun WHERE isim='$gelenisim[$i]'"; sorgusunda aratmak. ama tam nasıl yaparım bilemiyorum :D
Php
$asql = "SELECT * FROM satis";
$asorgu = @mysql_query($asql) or die(" Arama yapilamadi! ".mysql_error());
while($row = @mysql_fetch_array($asorgu)){
$satis=$row['isturu'];
for($i=0;$i<count($satis);$i++){echo '<td>'.$satis[$i].'</td>';}}
şeklinde döndürdügüm zaman echo komutu hücre içerisine satis tablosunun isturu sütunundaki değerlerin sadece ilk harflerini yazıyor .. neden hepsini yazmıyor ? :D
Php
Şu satırda aradığın bilgiyi zaten kelime olarak çıkarmışsın.
$satis=$row['isturu'];
Bunu yazdırırken
$satis[$i] şeklinde sorarsan harflere böler. çünkü harfler de bir kelimenin dizi halidir.
Php
Sorunun cevabı, yeni tablo üretmene gerek yok.
LEFT JOIN komutunu kullanırsan kolaylıkla yaparsın.
Sayın hocam;
verdiğin komut acaip faydalı ancak benim çömezliğim yüzünden sonuç almadım. (başta veritabanında değişik tablolardan değişik kategoriler ve içerisinede iş türlerini kaydettirdim. ) bunun bedelide acaip bir döngü girişimiyle çözüldü. birdahaki program denememde bu hatalar olmayacak inş. ilgine teşekkürler.