2 въпроса за анкета..

aquafresh

Registered
http://web-tourist.net/login/login/view.php?st=910

това е системата.. значи искам да ви попитам как мога да направя отдолу да показва "Общо гласове"

и защо не ми се удължава картинката за статистиката..

ето ми index.php

Код:
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<div align="left">
<?php
include('config.php'); // Инклудваме конфиг файла
$ip= getenv("REMOTE_ADDR"); //Взимаме ИП адреса на потребителя
$sql="SELECT * FROM vaprosi ORDER BY v_id DESC LIMIT 0 , 1"; //Селектираме последния записан въпрос в БД
$rez=mysql_query($sql,$link);
$red=mysql_fetch_array($rez);
$vapros=$red['vapros'];//Това е променливата с въпроса
$v_id=$red['v_id']; //Това е променливата с ИД номера на въпроса

$sql1="SELECT * FROM ip WHERE `uip` LIKE '$ip' AND `v_id` LIKE '$v_id' ";//Селектираме от таблицата с ИП адреси дали има записан ИП адреса на потребителя и ИД на въпроса , т.е. дали е гласувал вече.
$rez1=mysql_query($sql1,$link);
$chekip=mysql_num_rows($rez1); //Ако даден потребител е гласувал ще върне резултат по голям от 0 в противен случаи ще върне 0

$sql1="SELECT * FROM ip WHERE `v_id` LIKE '$v_id'";
$rez1=mysql_query($sql1,$link);
$broiip=mysql_num_rows($rez1); //Взимаме броя на общо гласувалите в анкетата като селектираме ИП адресите които са записани за даден въпрос

echo $vapros."<br /><br />"; //Принтираме Въпроса


//Проверяваме дали потребителя е гласувал ако не е изписваме формата за гласуване
if($chekip==0){ 


$sql="SELECT * FROM otgovori WHERE v_id LIKE '$v_id'";//Селектираме всички отговори със ИД($v_id) на въпроса.
$rez=mysql_query($sql,$link) or die(mysql_error()); 


echo"<form action=\"anketa/sendvote.php\" method=\"POST\" >";

//С цикала while принтираме отговорите
while($red=mysql_fetch_array($rez)){
//С радио бутона изпращаме $о_id ( ид на въпроса) към формата такаче да бъде променено точно това поле от БД.
echo $red['otgovor']."<input type=\"radio\" name=\"vote\" value=\"".$red['o_id']."\" /><br />";
}
echo"<input type=\"Submit\" value=\"Гласувай!\">";
}


//Тази част от кода се изпалнява ако потребителя вече е гласувал т.е. акo $chekip получи стоиност по голяма от 0
else{
//Селектираме отговорите от таблица отговори за съответния въпрос
$sql="SELECT * FROM otgovori WHERE v_id LIKE '$v_id'";
$rez=mysql_query($sql,$link) or die(mysql_error()); 

//Отново с цикъл ги принтираме
while($red=mysql_fetch_array($rez)){

echo $red['otgovor']." [<strong>".$red['rezultat']."</strong>] <br>";
$procent=$red['rezultat']*(100/$broiip) ;//Пресмятаме ги в проценти

echo "<img src=\"anketa/bar_left.gif\" alt=\"\" border\"0\" /><img src=\"anketa/vote.gif\" style=\"width:$procent; height:9px\" alt=\"\" border\"0\" /><img src=\"anketa/bar_right.gif\" alt=\"\" border\"0\" /><br />";
}

}

mysql_close($link);
?> 
</body>
</html>
</div>
<br />
 
Ми не става ли да си вкарваш резултатите в отделни таблици, и ще викаш от тях таблици.

SELECT * FROM table WHERE едиси кво = 'на какво '

и вече си правиш цикъла. :?
 
И аз не разбирам много че да ти казвам кое как да го правиш но, аз лично бих го направил така ... щях да записвам записите в отделни таблици, всеки вот в отделна, и щах да извикавам например най-отдолу


Категория 1 : Гласа: И тук ще извикавам от функцията която съм направил. а тя ще е нещо подоно !


SELECT * FROM anketa WHERE PHP = '$ip'

mysql_query();

и вече си правил цикъла който ще извежда всичко в тази клетка.

но първо трябва да го направиш и записите в числа.

mysql_num_rows();


Успех. както казах и аз не знам много :?:
 
защо картинката vote.gif не ми се ратяга?


$procent=$red['rezultat']*(100/$broiip) ;

проблема е в тва.. как трябва да стане?
 
Точно така трябва да е , а пък за общото отговори , правиш нещо такова
Код:
$allv = mysql_result(mysql_query("SELECT COUNT(ip_id) FROM ip"),0);
echo " Общо гласували: $allv <br /> ";
 
Replace каза:
Точно така трябва да е , а пък за общото отговори , правиш нещо такова
Код:
$allv = mysql_result(mysql_query("SELECT COUNT(ip_id) FROM ip"),0);
echo " Общо гласували: $allv <br /> ";

да това стана.. а от какво може да е проблема с разтягането на картинката?
 
я добави още един ред преди тоя код
Код:
$procent=$red['rezultat']*(100/$broiip) ;
покажи двете променливи
Код:
echo " red: $red <br /> broiip: $broiip <br /> "; $procent=$red['rezultat']*(100/$broiip) ;
 
Защо ти е тоя LIKE като търсиш точно определено поле , т.е. не знам дали там е проблема , но пробвай да го направиш
Код:
$sql="SELECT * FROM otgovori WHERE v_id LIKE '$v_id'";
да стане на
Код:
$sql="SELECT * FROM otgovori WHERE v_id = '$v_id'";
 
еми в тоя файл ( index.php) имаше на 2 места с LIKE .. едитнах и 2-те .. не знам .. иначе всичко си е както преди :/
 
Имах предвид с echo-то да изкараш пак стойноста на $red[rezultat]
 
ето аз намерих правилната таблица
Код:
CREATE TABLE `poll` (
`id` int(10) NOT NULL auto_increment,
`vapros` varchar(250) COLLATE utf8_general_ci NOT NULL default '',
`podrejdane` int(1) NOT NULL default '1',
`status` int(1) NOT NULL default '1',
`otgovori_min` int(2) NOT NULL default '1',
`otgovori_max` int(2) NOT NULL default '1',
PRIMARY KEY (`id`)
);

CREATE TABLE `otgovori` (
`id` int(10) NOT NULL auto_increment,
`id_poll` int(10) NOT NULL,
`otgovor` varchar(250) COLLATE utf8_general_ci NOT NULL default '',
`broi` int(5) NOT NULL default '0',
PRIMARY KEY (`id`)
);

CREATE TABLE `ips` (
`id` int(10) NOT NULL,
`ip` varchar(25) COLLATE utf8_general_ci NOT NULL default ''
);
 

Back
Горе