ФорумПрограммированиеPHP для идиотов → реализация голосования

реализация голосования

  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо

    Spritz 23 декабря 2008 г. 13:31, спустя 26 минут 20 секунд


    md5, хочу что бы ты пыхослет организовал! :-)
    будет..
    в новом году точно :) сначала все утрястись должно
    украинскую сторону посещу уже совсем скоро, потом будем думать о захвате всего мира :)
    все умрут, а я изумруд
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 23 декабря 2008 г. 13:32, спустя 1 минуту 5 секунд

    Одним запросом выбрать из
    vote_questions
    id | question
    vote_answers
    id | answer | question_id

    вопрос  и все ответы к нему
    ???
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 23 декабря 2008 г. 14:06, спустя 34 минуты 27 секунд


    лучше по куке и по ip вместе, это ведь не сложно
    понятно, что 100% предохранения не будет
    мне хватило выбеленной фразы. дальше даже читать не стал. подумал что тема про флуд)
    Сапожник без сапог
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 23 декабря 2008 г. 14:20, спустя 13 минут 36 секунд


    Одним запросом выбрать из
    vote_questions
    id | question
    vote_answers
    id | answer | question_id

    вопрос  и все ответы к нему
    ???


    и все таки =)
  • sap

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 23 декабря 2008 г. 14:40, спустя 20 минут 4 секунды

    SELECT T.*, TA.* FROM `vote_questions` AS T,
    JOIN `vote_answers` AS TA
    ON T.`id` = TA.`question_id`
    WHERE T.`id`={$question_id}

    Если я правильно понял задачу.
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 23 декабря 2008 г. 14:42, спустя 1 минуту 25 секунд


    SELECT T.*, TA.* FROM `vote_questions` AS T,
    JOIN `vote_answers` AS TA
    ON T.`id` = TA.`question_id`

    Если я правильно понял задачу.


    помогло, спасибо. хм =( надо учить sql
  • sap

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 23 декабря 2008 г. 14:42, спустя 49 секунд

    Добавил условие чтобы один вопрос выбирать, потому как без условия выберет все :)
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 23 декабря 2008 г. 16:16, спустя 1 час 33 минуты 22 секунды

    вот что в общем получилось, хотелось, что-то исправить, что-то улучшить

    <?php 
    $db_link = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;&#39;);

    $db_link->select_db(&#39;voting&#39;);

    $gentime = microtime(true);
    $geennss = time();

    $query = &#39;select `id`, `question` from `vote_questions` limit 1&#39;;
    $result = $db_link->query($query);
    $assoc = $result->fetch_assoc();
    $question = $assoc[ &#39;question&#39; ];
    $question_id = $assoc[ &#39;id&#39; ];

    $query = &#39;select `id`, `answer`
    from `vote_answers`
    where question_id = &#39;.$question_id;

    $result = $db_link->query($query);
    $answers = array();
    while ($assoc = $result->fetch_assoc())
    {
    $answers[] = $assoc;
    }


    $ip = $_SERVER[ &#39;REMOTE_ADDR&#39; ];
    $ip = addslashes($ip);
    $ip = $db_link->real_escape_string($ip);

    $query = &#39;select * from `vote_voted` where `ip` = &#39;.$ip.&#39; limit 1&#39;;
    $result = $db_link->query($query);

    $voted = (!$result) ? false : true;

    $show_vote_result = true;

    if (!isset($_COOKIE[ &#39;vote&#39; ]) &amp;&amp; $voted)
    {
    $vote = trim($_POST[ &#39;vote&#39; ]);
    if ($vote)
    {
    $answer_id = intval($vote);
    // adding information
    $query = &quot;insert into vote_voted
    values(&#39;$ip&#39;, $question_id, $answer_id, &quot;.time().&quot;)&quot;;
    $db_link->query($query);

    setcookie(&quot;vote&quot;, $vote, time() + 3600 * 24 * 7 * 365);
    }
    else
    $show_vote_result = false;
    }


    if ($show_vote_result)
    {

    $query = &#39;select `answer_id` as `id` from vote_voted where question_id = &#39;.$question_id;
    $result = $db_link->query($query);
    $sum = $result->num_rows;

    $procent_answers = array();
    $sum_answers = array();
    foreach ($answers as $key => $value)
    {
    $sum_answers[ $value[ &#39;id&#39; ] ] = 0;
    }

    while ($assoc = $result->fetch_assoc())
    {
    $sum_answers[ $assoc[ &#39;id&#39; ]]++;
    }

    $procent_answers = array();
    foreach ($sum_answers as $key => $value)
    {
    $procent_answers[ $key ] = ceil($value / $sum * 100);
    }

    echo &#39;<pre>&#39;;
    print_r($sum_answers);
    echo &#39;</pre>&#39;;
    echo &#39;<pre>&#39;;
    print_r($procent_answers);
    echo &#39;</pre>&#39;;
    }
    else
    {
    echo &#39;<form method=&quot;post&quot; action=&quot;&quot;>&#39;;
    echo $question.&#39;<br />&#39;;
    foreach ($answers as $key => $value)
    {
    echo &#39;<input type=&quot;radio&quot; name=&quot;vote&quot; value=&quot;&#39;.$value[ &#39;id&#39; ].&#39;&quot; />&#39;.$value[ &#39;answer&#39; ].&#39;<br />&#39;;
    }
    echo &#39;<input type=&quot;submit&quot; value=&quot;click it&quot; />&#39;;
    echo &#39;</form>&#39;;
    }

    $gentime = microtime(true) - $gentime;
    echo &#39;<br />gentime = &#39;.($gentime*1000);
    ?>
  • Frukts

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 11:22, спустя 1333 дня 18 часов 5 минут

    Как на киевском вокзале
    Два попа маячили.
    Маячили, маячили,
    Да кассу охуячили.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!