Autor Zpráva
Vitality
Profil
Zdravím
Mohl by mi prosím někdo pomoci s řešením.
Jedná se o anketu kde uživatel si voli mezi 4 možnými volbami, oni se započítávají a hlas se vyhodnocuje procentuálně, viz : odkaz.
Potřeboval bych vytvořit .sql soubor kde se bude ukládat IP adresa uživatele který hlasoval, co hlasoval a kolikrát hlasoval pomocí temp MySQL tabulky. Hledal jsem to všude možně na internetu a mají to napsáno hodně složitě, nedokážu to zjednodušit a aplikovat. Mohl by mi prosím někdo poradit jak by měl takový kod vypadat? Prosím o co nejjednodušší řešení pro lajka jako mě to stačí :)
function anketa(){
     global $question="Máte se?";
     global $choice1="jo";
     global $choice2="ne";
    
     $obsah_souboru = precti_soubor('anketa.txt');
     $hlasy = explode("|",$obsah_souboru);            //0|0|0|0
     $celkem = $hlasy[0]+$hlasy[1]+$hlasy[2]+$hlasy[3];
     
     echo "<table>";
     echo "<tr><th colspan=\"2\">".$question."</th></tr>";
    
     //Volba 1
     
     //Výpočet ąířky sloupečku
     if($celkem!=0)
       $sirka=round((100*$hlasy[0])/$celkem);
     else  
       $sirka=0;  
     
     //Tisk odkazu
     echo "<tr><td><a href=\"hlasuj.php?volba=0\">".$choice1."</a></td>";
     //Tisk sloupečku
     echo "<td><img src=\"sloupek.png\" height=\"16\" width=\"".$sirka."\" alt=\"-\" />  ( ".$hlasy[0]." hlasů / ".$sirka." %)"; 
     echo "</td></tr>";
//Volba 2
.
.

hlasuj.php řeší timelimit přes cookies a započteni hlasu
<?
    //Získá z URL adresy 
    $id=$_GET["volba"];
    
    //Někdo se pokouší hacknout skript a provést nepřípustnou volbu
    if ($id>3){
     header("Location: anketa/anketa.php");
     exit();
    }
    
    $susenka = "ankety";
    $neprijmouthlas = 60*2; // 2 minuty nehlasovat = nastaví platnost cookie
    if (($$susenka) <> 1) //pokud nehlasoval, tak
    {
     
     //Pošli cookie
     setcookie($susenka,1,Time()+$neprijmouthlas); 
     
     //Načtení dat
     $soubor=fopen("anketa.txt", "r"); //otevře soubor pro čtení
     $data=fread($soubor, filesize("anketa.txt")); //načte obsah celého souboru do proměnné data
     fclose($soubor); //uzavře soubor
     $hlasy = explode("|",$data);
     //Navýší hlasy
     $hlasy[$id]=$hlasy[$id]+1;
     $data=$hlasy[0]."|".$hlasy[1]."|".$hlasy[2]."|".$hlasy[3];
     
     //Otevře soubor v režimu zápis (parametr "w")
     $soubor=fopen("anketa.txt", "w");
     //Zapíše nová data do souboru
     fwrite($soubor,$data);
     //Zavře soubor
     fclose($soubor);
   }
    //Pošle hlavičku pro přesměrování na původní stránku s anketou
    header("Location: anketa.php");
?>
Str4wberry
Profil
Což o to. Tabulka pro hlasy bude triviální. Pokud je potřeba anketa jen jedna, stačí dva sloupce (IP adresa a číslo možnosti):
CREATE TABLE `anketa` (
  `ip` varchar(15) NOT NULL,
  `volba` int(1) NOT NULL
)
A vše potřebné už z toho lze dopočítat.
Vitality
Profil
ok diky
Vitality
Profil
ff
Kajman
Profil
$nazev_promenne='variable'.$id;
echo $$nazev_promenne;

Lepší je ale použít pole.
$variable=array();
$variable[1] = $xml->prvni_odpoved;
$variable[2] = $xml->druha_odpoved;
$variable[3] = $xml->treti_odpoved;
$variable[4] = $xml->ctvrta_odpoved;

echo $variable[$id];

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0