İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

anket 'de oy yuzde lerinde hata?

akif

0
İyinet Üyesi
Katılım
15 Aralık 2004
Mesajlar
194
Reaction score
0
Merhaba

anket scripti hazırlıyorum..

anket,secenek ve oylar tablosundan verileri okutup ekrana basarken yudeleinde hata oluyor..
Yardımcı olursanız memnun olurum.

tablo yapısı
-----------
anket` (
`id` INT(3) NOT lisanssız AUTO_INCREMENT,
`soru` VARCHAR(255) NOT lisanssız,
`tarih` DATETIME NOT lisanssız,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

CREATE TABLE `secenekler` (
`id` BIGINT(5) NOT lisanssız AUTO_INCREMENT,
`anket_id` INT(3) NOT lisanssız,
`secenek` VARCHAR(255) NOT lisanssız,
KEY `id` (`id`),
KEY `anket_id` (`anket_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

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


ekran çıktısı aşağıdaki gibi
-----------------------
Yerli mi?, İthal mi?
Yerli 4 %100
İthal 3 %47

Toplam Oy:7
----------------------
z1.php
PHP:
<script>
function z2(ilanid) {
window.open("z2.php?id="+ilanid,"_blank","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=250,height=200,left=5,top=25")
}
</script>
</head>
<body oncontextmenu="return false" style="text-decoration: none;" leftmargin=0 topmargin=0 bgproperties="FIXED">
<center>
<? 
include ("../yol.php"); 
$oku = mysql_query("SELECT * FROM anket where aktif='e'"); 
echo "z1";
echo $okunan['baslik'];echo '<br>';
$id=$okunan['id'];
while ($okunan = mysql_fetch_array($oku)){ 
echo $okunan['tarih'];echo '<br>';
echo "<br><br>";
$okus = mysql_query("SELECT * FROM secenekler WHERE anket_id=".$okunan['id']);
?>
<table cellspacing="0" cellpadding="0" align="CENTER" bgcolor="#F0F0F0">
<form action="oyla.php" method="POST">
<tr><td colspan="2" bgcolor="#C5D9FA"> <?=$okunan[soru]?> </td></tr> 
<?
while ($okunans = mysql_fetch_array($okus)){ 
?>
<tr><td align="CENTER"><?=$okunans['secenek'];?> </td><td><input type="Radio" name="c1"> </td></tr>
<?
}
}
?>
<tr><td colspan="2" align="CENTER" bgcolor="#C5D9FA"> <input type="Submit" value="oyla" align="MIDDLE" style="background-color: #3399ff;"> </td></tr>
</table><br><br>
<a href="javascript:z2(<?=$id;?>)"><font face="Century Gothic" color="Maroon">Sonuc</font></a>

z2.php
PHP:
<?
include ("../yol.php");
$oku = mysql_query("SELECT * FROM anket where aktif='e'");
echo "z2";
echo $okunan['baslik'];echo '<br>';
while ($okunan = mysql_fetch_array($oku)){
echo $okunan['soru'];echo '<br>';
//echo $okunan['tarih'];echo '<br>';
echo "<br>";
$okus = mysql_query("SELECT * FROM secenekler WHERE anket_id=".$okunan['id']);
while ($okunans = mysql_fetch_array($okus)){
$okuo = mysql_query("SELECT * FROM oylar WHERE secenek_id=".$okunans['id']);
while ($okunano = mysql_fetch_array($okuo)){
    $toplam = ($toplam+$okunano['oy']);
    $yuzde=($okunano['oy']*100/$toplam);
    $yuzde=ceil($yuzde);
echo $okunans['secenek']."  ";
echo $okunano['oy']."  % ".$yuzde."<br>";
}
}
}
echo "<br>Toplam Oy : ".$toplam;
ob_end_flush();
?>

</div>
<br>
<a href="javascript:self.close()">Pencereyi Kapat</a>
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
Bu şekilde: (Tablo yapısını verirsen kodu optimize edebiliriz)

PHP:
<?
include ("../yol.php");
$oku = mysql_query("SELECT * FROM anket where aktif='e'");
echo "z2";
echo $okunan['baslik'];echo '<br>';
while ($okunan = mysql_fetch_array($oku)){
echo $okunan['soru'];echo '<br>';
//echo $okunan['tarih'];echo '<br>';
echo "<br>";
$okus = mysql_query("SELECT count(oy) as toplam_oy FROM secenekler WHERE anket_id=".$okunan['id']);
$okunans = mysql_fetch_array($okus);
$toplam = $okunans['toplam_oy'];
$okus = mysql_query("SELECT * FROM secenekler WHERE anket_id=".$okunan['id']);
while ($okunans = mysql_fetch_array($okus)){
$okuo = mysql_query("SELECT * FROM oylar WHERE secenek_id=".$okunans['id']);
while ($okunano = mysql_fetch_array($okuo)){
    $yuzde=($okunano['oy']*100/$toplam);
    $yuzde=ceil($yuzde);
echo $okunans['secenek']."  ";
echo $okunano['oy']."  % ".$yuzde."<br>";
}
}
}
echo "<br>Toplam Oy : ".$toplam;
ob_end_flush();
?>

</div>
<br>
<a href="javascript:self.close()">Pencereyi Kapat</a>
 

akif

0
İyinet Üyesi
Katılım
15 Aralık 2004
Mesajlar
194
Reaction score
0
yukarıya tablo yapısını ve z1.php yi ekledim. z2.php de sonuclar gözükecek...
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
Tablo yapında hata var. anket_id yi tanımlamamışsın.
Her tablo içim id tanımlaması yaparken sadece id deme, kodlama yaparken karışıklık olur.

Şu şekilde yap:

tablo yapısı
-----------
anket` (
`anket_id` INT(3) NOT lisanssız AUTO_INCREMENT,
`soru` VARCHAR(255) NOT lisanssız,
`tarih` DATETIME NOT lisanssız,
PRIMARY KEY (`anket_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

CREATE TABLE `secenekler` (
`secenek_id` BIGINT(5) NOT lisanssız AUTO_INCREMENT,
`anket_id` INT(3) NOT lisanssız,
`secenek` VARCHAR(255) NOT lisanssız,
KEY `id` (`secenek_id`),
KEY `anket_id` (`anket_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

CREATE TABLE `oylar` (
`oy_id` BIGINT(10) NOT lisanssız AUTO_INCREMENT,
`anket_id` INT(3) NOT lisanssız,
`secenek_id` BIGINT(5) NOT lisanssız,
`oy` BIGINT(5) NOT lisanssız DEFAULT '0',
`kullanici_ip` VARCHAR(25) NOT lisanssız,
`tarih` DATETIME NOT lisanssız,
PRIMARY KEY (`oy_id`),
KEY `anket_id` (`anket_id`),
KEY `secenek_id` (`secenek_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
 

akif

0
İyinet Üyesi
Katılım
15 Aralık 2004
Mesajlar
194
Reaction score
0
anket oylama

//1 Hata'da yazan yerlerde aşağıdaki hatayı aldım.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

//2 hata da Warning: Division by zero in

PHP:
echo "<br>";
$okus = mysql_query("SELECT count(oy) as toplam_oy FROM secenekler WHERE anket_id=".$okunan['id']);
$okunans = mysql_fetch_array($okus);    //hata
$toplam = $okunans['toplam_oy'];
$okus = mysql_query("SELECT * FROM secenekler WHERE anket_id=".$okunan['id']);
while ($okunans = mysql_fetch_array($okus)){
$okuo = mysql_query("SELECT * FROM oylar WHERE secenek_id=".$okunans['id']);
while ($okunano = mysql_fetch_array($okuo)){
    $yuzde=($okunano['oy']*100/$toplam);    //hata
    $yuzde=ceil($yuzde);
echo $okunans['secenek']."  ";
echo $okunano['oy']."  % ".$yuzde."<br>";
 

AykutBey

0
İyinet Üyesi
Katılım
27 Kasım 2005
Mesajlar
202
Reaction score
0
Konum
Mersin
Tabloları iyinet'in verdiği gibi değiştirdiysen koddaki sql komutlarını da ona göre değiştireceksin.

Örnek: WHERE anket_id=".$okunan['anket_id']);

gibi ..
 

akif

0
İyinet Üyesi
Katılım
15 Aralık 2004
Mesajlar
194
Reaction score
0
anket oy yuzdeleri

Merhaba

iyinet'in yazdığı gibi vt'yi değiştirdim.
Sonra yazdığı gibi z2.php yi yazdım...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/danis.freehostia.com/anket3/z2.php on line 13
hatasını aldım.

http://danis.freehostia.com/anket3/ buradan bakabilirsiniz.

z2.php

$oku = mysql_query("SELECT * FROM anket where aktif='e'");
while ($okunan = mysql_fetch_array($oku)){
echo $okunan['soru'];echo '<br>';
echo "<br>";
$okus = mysql_query("SELECT count(oy) as toplam_oy FROM secenekler WHERE anket_id=".$okunan['anket_id']);
$okunans = mysql_fetch_array($okus);
$toplam = $okunans['toplam_oy'];
$okus = mysql_query("SELECT * FROM secenekler WHERE anket_id=".$okunan['anket_id']);
while ($okunans = mysql_fetch_array($okus)){
$okuo = mysql_query("SELECT * FROM oylar WHERE secenek_id=".$okunans['anket_id']);
while ($okunano = mysql_fetch_array($okuo)){
$yuzde=($okunano['oy']*100/$toplam);
$yuzde=ceil($yuzde);
echo $okunans['secenek']."  ";
echo $okunano['oy']."  % ".$yuzde."<br>";
}
}
}
echo "<br>Toplam Oy : ".$toplam;
ob_end_flush();
?>

</div>
<br>
<a href="javascript:self.close()">Pencereyi Kapat</a>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst