[]

PHP (for döngüsüyle ilgili bir soru)

veritabanımdaki tablomda "kategoriler" diye bir sütunum var. buna göre her verimin belli bir kategorisi var tabi.

ing kategorisinde 7
isp kategorisinde 8
uga kategorisinde 3
tur kategorisinde 4 veri var.

diye gidiyor. bu kategori türü sürekli değişiyor diyelim. yani 15 kategori varsa, ertesi gün 18 kategori, öbür gün 9 kategori olabilir.

istiyorum ki for döngüsü yapayım bu kategorilere.
nasıl ki, $i 0'dan 100'e kadar diyorsak, ben de $i tüm kategorilerime sırayla uğrasın istiyorum.

Umarım anlatabilmişimdir yav. Nasıl yapabilirim ki bunu?

Yani ilk olarak kaç farklı kategorim olduğunu,
sonra da for($i) döngümün de her bir kategoriye tek tek uğramasını istiyorum.:S

 
sql sorgusunun yanıtını fetch_array ile alıp, ardından foreach kullanabilirsin.


  • turkay  (13.03.12 13:39:37) 
eğer yanlış anlamadıysam şöyle olacak,

<?php
$query_cat = mysql_query("select kategori from tablo group by kategori");
while ($record_cat = mysql_fetch_array($query_cat)) {
$kategori = $record_cat["kategori"];
$query_veri = mysql_query("select * from tablo where kategori = '".$kategori."'");

while ($record_veri = mysql_fetch_array($query_veri)) {
$veriID = $record_veri["id"];
$veriKategori = $record_veri["kategori"];
}
}
?>

pastebin.com

her bir kategori elemanlarını neden ayrı ayrı alıyorsun onu anlamadım tabii.
  • ocanal  (13.03.12 13:45:50 ~ 13:46:38) 
gidişatınız yanlış olsa da,

Kategoriler sütununuza sql üzerinden id (unique değil) atayın ardından, verilerinizi kaydederken;

// Burda maksimum kategori id'sini buluyoruz ki kaydederken bir arttıralım;
$sql = "SELECT MAX(Kategoriler) AS meks FROM table";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);

// Veriler..

$sql = "INSERT INTO table (id, bok, kategori) VALUES ($veri1, $veri2, $row["meks"]+1)";
$res = mysql_quert($sql);

Çekerken ise yine max kategori sayısını alıyoruz, ona göre bir for ya da while döngüsü, ardından kategorilere göre veriyi döndürmüş oluyoruz.

Aslında sağ kulağı sol elle tutmaya benziyor, daha kısa bir yöntem biliyordum fakat hamlamış olmamdan kelli bulduramadım. Umarım anlamış ve anlatabilmişimdir, saygılarımla.
  • Dr. Kissingher  (13.03.12 14:26:49) 
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.