PHP ile bir veri kaç tane ise saydırtıp çektirmek
Merhabalar. Elimde bir verim olduğumu düşünelim. Bu veriyi safyaya çektirirken demem lazım ki ".. verisini saydır kaç tane ise getir" demem lazım.
Nasıl yapabilirim?
NOT: VERİLERİN HEPSİNİ ÇEKTİRMEK İSTEMİYORUM ÇÜNKÜ BU ÇEKTİRİLEN VERİLER BOŞ İNPUTLARA HAZIR OLARAK GELİYOR VE EĞER BENİM SİSTEMİNDE 5 VERİDEN AZ VERİ EKLERSEM ÖRNEĞİN 3 EKLEDİM 2 İNPUT BOŞTA KALIYOR
benim tablondan anladığım kadarıyla, Sıkça Sorulan Sorular tarzında bir şey yapmaya çalışıyorsun gibi duruyor. bu genelde önceden belli olan soruları içerir, "Siparişimi Nasıl İptal edebilirim?" gibi bir başlık olur ve tıklayınca altında cevabı yazar. ama sen diyorsan ki ben kullanıcıların buraya gireceği ve sorularla cevapların önceden belli olmadığı spesifik bir içerik oluşturacağım. o zamanda durum pek farklı değil aslında. script yazmak, kodları bilmekten değil, düşünmekten geçiyor. sen nasıl kaydedip sıralayabileceğine dair bir fikire sahipsin ve bunu uygulamaya çalışıyorsun. ama yeterince düşünmeden bunu uygulamışsın. bu tabloyu ders ile ilişkili bir tablo olarak ele alalım ve özünde sınav sistemine benzer soru cevap gibi bir senaryosu olsun.
bir tablo oluşturdum ve resimde de gördüğün gibi tablonun yapı kısmındayım.
1 numaralı kolon id değeri ve her girdi de (veritabanına yapılan yeni kayıtta) otomatik olarak artıyor 1-2-3 gibi.
2 numaralı kolon ise sorunun başlığını içeriyor seninkinden farklı olarak Question1 gibi sonuna sayısal ek almıyor. sen bu sayısal ek ile sıralama yaparken eşleşme sağlamayı planlamıştın. ama gereken tüm içerik tek sütunda (satır) olduğu için biz buna id değeri ile erişebiliriz. yani id 1 dediğimiz zaman, soruyu ve cevapları alabiliriz.
3 numaralı kolon ise cevap kolonu
mantığı bu şekilde olmalıydı. hatta bunu biraz daha ilerletmek istersen, bir kolon daha açıp (yapı kısmında gördüğün id, cevap vb. kolondur) kategori diyebilirdin.
şimdi yeni bir tablo yapısı oluşturdum. bu tabloyu standart çoktan seçmeli bir sınav gibi düşünebiliriz. bir soru var ve sorunun altında şıklar şeklinde a) b) c) d) cevapları mevcut. soru kolonu sorumuzu sormak için, cevap kısmını doğru cevabımızı saklamak için, cevap_a ve diğerlerini de şıkları saklamak için kullanabiliriz. Örneğin doğru cevap b ise, kişi cevap seçtiğinde, doğru cevabımız da "cevap" kolonunda tutulduğundan, $secim == $row["cevap"] diyerek kişinin yanıtı doğru verip vermediğini de kolayca anlayabiliriz. ekstradan ne demiştik, kategori. örneğin bu sorular fen dersini içeriyor olsunlar, ben daima veritabanına sayısal değer kullanmayı tercih ederim byte değerleri daha düşük olduğu için. yani benim için fen dersi 6 numara olabilir, bu yüzden yapıda da gördüğün gibi kategori kısmı int(2) bu da en fazla 0 ile 99 arasında bir sayı belirtebileceğimi yani 100 kategoriden fazla kategorim olmadığı anlamına gelir. nasıl doğru cevabı eşleştirme yaparak bulduysak, tüm soruları listelemek yerine kategorilere göre soruları listelemek için böyle bir yöntem kullanabiliriz. ben her zaman mantıksal açıdan insanlara anlatımda bulunmayı tercih ediyorum. çünkü sen zaten veritabanına bağlanabiliyorsun, verileri listeleyebiliyorsun, ekleyebiliyorsun... benim anlattıklarım için ekstra bir kod yazmana veya bilmene gerek yok, sadece analitik düşünmüyorsun. düşünmen gerekiyor.
sadece soru ve cevabı görüntülemek istedim ve hedefim de 1. sıradaki soru yani id 1 değerine sahip olan olsun
birde sınav benzer bir bir soru olsun ve kategorisi sosyal bilgiler (buna 3 dedim) olsun ve tüm soruları getirelim
şimdi kullanıcı bir şık seçmiş gibi doğru cevabı arayalım
önce cevabı D olarak seçtim ve veritabanı sonuç bulamadı, bu da yanlış cevap verdim demek.
sonra cevabı A olarak işaretledim ve Ankara sonucunu aldım, yani cevap doğruymuş.