Webmaster общности: Predpriemach.com | SearchEngines.bg

    Анкета с PHP и MySQL

    Автор: miro91

    Реших да си направя една анкета която да ползва база данни и реших да я споделя със вас. Veryhappy
    Анкетата се състои от два файла. Единия е от който се гласува а от другия се преглеждат резултатите.
    така първо правим vote.php

    <?php
    $username = "username";
    $pass = "parola";
    $host = "localhost";
    $db = "bazadanni";
    $conn = mysql_connect($host, $username, $pass);
    mysql_select_db($db, $conn);
    if ($_POST['submit']) {
    $ip = $_SERVER['REMOTE_ADDR']; // vzimame IP to na usera
    $otg = $_POST['otgovor']; //vzimame otgovora poso4en ot potrebitelq
    $time = time(); // vzimame sega6noto vreme
    $result = mysql_query("SELECT * FROM vote WHERE ip LIKE '$ip%' ORDER BY time DESC LIMIT 1"); // izvejdame posledniq vot na potrebitelq s tova IP
    $res = mysql_fetch_array($result);
    $newtime = $res[time] + (24 * 60 * 60); // kym nego vreme dobavqme 1 den
    $result1 = mysql_query("SELECT * FROM vote WHERE ip LIKE '$ip%' AND time < $newtime"); // tuk proverqvame dali e minal 1 den ot posledniq vot na potrebitel s tova IP
    $res = mysql_num_rows($result1);
    if ($res == 0) { // ako proverkata dade rezultat 0 koeto ozna4ava 4e sa minali 24 4asa otkakto e glasuval za posledno usera
    mysql_query("INSERT INTO vote (`otg`, `ip`, `time`) VALUES ('$otg', '$ip', '$time')"); // dobavqme vota na potrebitelq
    echo "Вие гласувахте успешно";
    echo "<a href='viewvote.php'>Виж анкетата</а>";
    }
    else
    {
    echo "Вие вече сте гласували през последните 24 часа."; // kazvame 4e ne sa minali 24 4asa otkakto e glasuval.
    echo "<a href='viewvote.php'>Виж анкетата</а>";
    }
    }
    else
    { // tuka po4va html koda na anketata
    ?>
    Харесва ли ви анкетата?
    <form name="vote" method="POST">
    <select name="otgovor">
    <option value="Да">Да</option>
    <option value="Не">Не</option>
    </select>
    <input type="submit" name="submit" value="Гласувай">
    </form>
    <?
    } // tuka svar6va
    ?>

    тук първо си променяте името, парола, хоста и базата данни на хоста.
    В края на кода където вече е HTML си сменяте въпроса и може да добавяте други отговори.
    сега правим файла от който ще гледаме резултатите.
    той се казжа viewvote.php

    <?php
    $username = "username";
    $pass = "parola";
    $host = "localhost";
    $db = "bazadanni";
    $conn = mysql_connect($host, $username, $pass);
    mysql_select_db($db, $conn);
    $res1 = mysql_query("SELECT * FROM vote WHERE otg='Да'");
    $da = mysql_num_rows($res1);
    $res2 = mysql_query("SELECT * FROM vote WHERE otg='Не'");
    $ne = mysql_num_rows($res2);
    echo "За отговор Да: ".$da; // izvejdame kolko glasuvali ima za da
    echo "<br>За отговор Не: ".$ne; // izvejdame kolko glasuvali ima za ne
    ?>

    Тук също попълвате име парола хост и база данни.
    Ако в vote.php сте добавили още отговори тук копирвате тези редове.
    $res1 = mysql_query(„SELECT * FROM vote WHERE otg=’Да'“);
    $da = mysql_num_rows($res1);
    като $res1 го правите на 3 и 4 зависи колко отговора ще имате и otg=’вашия отговор’
    $da също я променяте може да е като отговора. mysql_num_rows($res3) или вашата заявка.
    ето го и SQL кода на тази анкета.

    CREATE TABLE `vote` (
    `otg` varchar(10) character set cp1251 collate cp1251_bulgarian_ci NOT NULL,
    `ip` varchar(20) character set cp1251 collate cp1251_bulgarian_ci NOT NULL,
    `time` varchar(11) character set cp1251 collate cp1251_bulgarian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

    това е. Демо ще дам след малко само да я кача на хоста ми.
    Урока е подготвен специално за web-tourist.net
    надявам се да съм ви бил полезен.