Ana Sayfa   Weblog   Realtime   Galeri   Arşiv   İletişim-Referanslar

Sayfa Yükleniyor...
blank
  Merhaba , kişisel weblog alanıma hoşgeldiniz...  
    Anket Sihirbazı Bölüm I11 Mayıs, Perşembe 2006  

 
 

Çevreden gelen yoğun istek üzerine Wink Anket Sihirbazı 'nı sonsuz seçenek yaratabilecek şekilde güncellemeye karar verdim. Sadece aşağıdaki 3 tabloyu yaratmanız ve tek dosya formatındaki scripti kullanmanız yeterli olacak. Bu script ile artık test bile hazırlayabilirsiniz Smile .Haydi tekrar başlayalım...

İlk önce 3 adet tablomuzu yaratıyoruz. Anket,Seçenekler ve Oylar tabloları. Bu tabloların yapılarını veri çekerken çok faydası olacağı için incelemenizi tavsiye ederim (tablo ilişkilendirmeleri vs.)


CREATE TABLE `anket` (
  `id` INT(3) NOT NULL AUTO_INCREMENT,
  `baslik` VARCHAR(255) NOT NULL,
  `soru` VARCHAR(255) NOT NULL,
  `tarih` DATETIME NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
 

CREATE TABLE `secenekler` (
  `id` BIGINT(5) NOT NULL AUTO_INCREMENT,
  `anket_id` INT(3) NOT NULL,
  `secenek` VARCHAR(255) NOT NULL,
  KEY `id` (`id`),
  KEY `anket_id` (`anket_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
 
CREATE TABLE `oylar` (
  `id` BIGINT(10) NOT NULL AUTO_INCREMENT,
  `anket_id` INT(3) NOT NULL,
  `secenek_id` BIGINT(5) NOT NULL,
  `oy` BIGINT(5) NOT NULL DEFAULT '0',
  `kullanici_ip` VARCHAR(25) NOT NULL,
  `tarih` DATETIME NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `anket_id` (`anket_id`),
  KEY `secenek_id` (`secenek_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

Şimdi sorumuzu, seçeneklerimiz ve anket adımızı belirleyeceğimiz bir form ile scripte girelim:

<?php
/***********************************/
/*     ANKET SIHIRBAZI                    */
/***********************************/
/*      (C)2006 - AZIZ(R)          */
/*                                */
/* Lütfen bu kısmı değiştirmeyiniz */
/*        Alihan Çetin             */
/***********************************/

/* Ilk Evvel dinamik Anket oluşturucusu yaratıyoruz */
//////////////////////////////////////////////////////

@mysql_connect("localhost", "root", "") || die ("CONN_ERR_1");
@mysql_select_db("test") || die("CONN_ERR_2");
@mysql_query("SET NAMES 'latin5' ");

if (! $_POST['submit'] && ! $_POST['submit2']){

?>
<html>
<body>
   <form action="<?php $_SERVER['$PHP_SELF'] ?>" method="POST">
   <table align="center" width="50%" border="1" cellpadding="0" cellspacing="2">
      <tr> <!-- ADIM I -->
         <td colspan="2">Anket Yaratıcı:</td>
      </tr>
      <tr>
         <td width="50%">Soru: (Max 255 )</td>
         <td width="50%"><input type="text" maxlength="255" name="soru"></td>
      </tr>
      <tr>
         <td width="50%">Anket Adı: (Max 255 )</td>
         <td width="50%"><input type="text" maxlength="255" name="anket_adi"></td>
      </tr>
      <tr>
         <td width="50%">Kaç Seçenekli</td>
         <td width="50%"><input type="text" name="secenek_sayisi" maxlength="5"></td>
      </tr>
      <tr>
         <td>&nbsp;</td>
         <td><input type="reset" name="reset" value="TEMIZLE">
             <input type="submit" name="submit" value="ADIM I"></td>
      </tr>
   </table>
   </form>
</body>
</html>

Şimdi sırada gelen verileri ayrıştırmak ve seçenek sayısını belirleyerek, oluşacak tabloda dolduracağımız seçenek alanlarını yaratmaya geldi iş. Bu arada 3. kısımda kullanacağımız değişkenleri de hidden bir taşıyıcıya yüklüyoruz :

<?php
}

if ($_POST['submit']){
//session_start();
        $soru = $_POST['soru'];
        $secenek_sayisi = $_POST['secenek_sayisi'];
    $anket_adi = $_POST['anket_adi'];

          echo "<html><body>
                <form action=\""
.$_SERVER[$PHP_SELF]. "\" method=\"POST\">
                <table align=\"center\" width=\"50%\" border=\"1\" cellpadding=\"0\" cellspacing=\"2\">
            <tr>
                <td width=\"50%\">&nbsp;</td>
                <td width=\"50%\"><input type=\"hidden\" name=\"soru\" value=\"$soru\">
                                  <input type=\"hidden\" name=\"secenek_sayisi\" value=\"$secenek_sayisi\">
                                  <input type=\"hidden\" name=\"anket_adi\" value=\"$anket_adi\">
                $soru</td>
            </tr>"
;

      for ($i=0; $i<$secenek_sayisi; $i++) {
        $secenek_no= intval($i+1);
        $secenek_adi[] = $_SESSION['secenek'.$secenek_no.''];
      echo "
      <tr>
         <td width=\"50%\">Seçenek -$secenek_no-</td>
         <td width=\"50%\"><input type=\"text\" name=\"secenek_$secenek_no\" value=\"$secenek_adi[$i]\"></td>
      </tr>"
;
      }

      echo "<tr>
                <td width=\"50%\">&nbsp</td>

                <td width=\"50%\">
                <input type=\"reset\" name=\"reset\" value=\"TEMIZLE\">
                <input type=\"submit\" name=\"submit2\" value=\"ADIM II\">
            </tr>
            </table>
            </form>
            <body>
            </html>"
;

}

3. form kısmı en civcivli kısım. Daha önceki scriptte olduğu gibi bu scriptin de kalbi burada atıyor. Bu kısmı Anket Sihirbazı Bölüm II de bulabilirsiniz...
 
     
  EkleBunu Sosyal Paylaşım Butonu
 
 



* Opsiyonel : Web Adresiniz
Güvenlik Sorusu:    9 ile 4 sayısının toplamı kaçtır?
 
 
blank
#Sayfa Başı
Arama İpucu
blank
  Temel Kaynaklar
  •  Giriş
  •  Üyelik
  •  
  • Arşiv Arşiv
  • RSS 2.0 RSS
  • Smart RSS Smart RSS
blank
  Kategoriler
blank
  Tavsiye Linkler