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