Miscellaneous Code

  Home arrow Miscellaneous Code arrow MySQL and PHP simple voting class
MISCELLANEOUS CODE

MySQL and PHP simple voting class
By: Codewalkers
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 7
    2002-06-28

    Table of Contents:

     
     

    SEARCH CODEWALKERS

    TOOLS YOU CAN USE

    advertisement
    Voting class for posting votings to your homepage, simple to use. Requires MySQL

    By : ShiVAs

    <?php
    class Voting {

    var $db_host; // duomen&#371; baz&#279;s adresas.
    var $db_user; // duomen&#371; baz&#279;s vartotojo vardas.
    var $db_password; // duomen&#371; baz&#279;s slaptažodis.
    var $db_name; // duomen&#371; baz&#279;s vardas.
    var $db_table; // duomen&#371; baz&#279;s lentel&#279;s vardas.

    // j&#363;s&#371; klas&#279;s kodas.

    function Voting($db_host,$db_user,$db_password,$db_name,$db_table)
    {
    // dabar gautus duomenis &#303;rašysim &#303; vidinius klas&#279;s kintamuosius

    $this->db_host=$db_host; // neapsigaukit, po -> pries db_host ženklo "$" nereikia
    $this->db_user=$db_user;
    $this->db_password=$db_password;
    $this->db_name=$db_name;
    $this->db_table=$db_table;

    }


    function CreateTable()
    {
    // D&#279;mesio, duomen&#371; bazei, bei lentelei naudojami tie parametrai kuriuos perdav&#279;te kurdami klas&#281;, t.y. perdav&#279;te konstruktoriui.

    // jungiam&#279;s prie duomen&#371; baz&#279;s serverio
    $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);

    // pasirenkame duomen&#371; baz&#281; su kuria dirbsime
    mysql_select_db($this->db_name,$db);

    // o dabar sukursime pa&#269;ia lentel&#281;.
    // &#303; kintamaj&#303; $sql &#303;rašysime SQL sakin&#303; kuris sukuria m&#363;s&#371; lentel&#281;.

    $sql="CREATE TABLE ".$this->db_table." ( id int(11) NOT NULL auto_increment, maminis_id int(11) NOT NULL default '0', atsakymo_nr int(11) NOT NULL default '0', tekstas varchar(255) NOT NULL default '', starto_data bigint(20) NOT NULL default '0', pabaigos_data bigint(20) NOT NULL default '0', balsai tinyint(4) NOT NULL default '0', PRIMARY KEY (id), KEY id_2(id) )";

    // kaip matome, mes naudojame tok&#303; lentel&#279;s vard&#261; kok&#303; pasi&#279;m&#279;me per konstruktori&#371;.

    // pats k&#363;rimas - užklausa siun&#269;iama &#303; server&#303;

    if(!mysql_query($sql,$db))
    return -2; // -2 pas mus bus DB klaida

    // uždarome ryš&#303; su serveriu.
    mysql_close($db);
    }

    function AddPoll($klausimas, $atsakymai)
    {

    if(empty($klausimas))
    return -1; // klaida, klausimas tuš&#269;ias.

    if(sizeof($atsakymai)<2) // vietoj sizeof() galima naudoti count() - laisvas pasirinkimas
    return -1; // klaida, atsakym&#371; negali b&#363;ti mažiau nei 2

    // jungiam&#279;s prie duomen&#371; baz&#279;s serverio
    $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);

    // pasirenkame duomen&#371; baz&#281; su kuria dirbsime
    mysql_select_db($this->db_name,$db);

    $atsakymu=sizeof($atsakymai); // kiek tur&#279;sime atsakym&#371;

    // paruošiame klausim&#261; d&#279;jimui &#303; duomen&#371; baz&#281;
    $klausimas=addslashes(htmlspecialchars($klausimas));

    // pasiimam dabartin&#303; laik&#261; nuo UNIX epochos sekund&#279;mis
    $laikas=time();

    // Dabar &#303;terpiame klausim&#261; &#303; lentel&#281;
    if(!mysql_query("INSERT INTO ".$this->db_table." (id, maminis_id, atsakymo_nr, tekstas, starto_data, pabaigos_data, balsai) VALUES ('','0','0','$klausimas','$laikas','0','0')",$db))
    return -2; // pas mus -2 bus duomen&#371; baz&#279;s klaida.

    // taigi, klausimas &#303;terptas, pasiimam jo id.
    $klausimo_id=mysql_insert_id();

    // dabar suksim cikl&#261; kol &#303;terpsime visus atskymus.

    for($i=0;$i<sizeof($atsakymai);$i++)
    {
    $atsakymas=addslashes(htmlspecialchars($atsakymai[$i])); // paruošiam atsakymo tekst&#261; d&#279;jimui &#303; DB.

    if(!mysql_query("INSERT INTO ".$this->db_table." (id, maminis_id, atsakymo_nr, tekstas, starto_data, pabaigos_data, balsai) VALUES ('','$klausimo_id','".($i+1)."','$atsakymas','0','0','0')",$db))
    return -2; // klaida - gryžtam.
    }

    // uzdarome ryš&#303; su serveriu.
    mysql_close($db);

    return 0; // viskas gerai, apklausa &#303;terpta.
    }

    function Vote($anketos_id, $balso_nr) {

    // v&#279;l jungiam&#279;s prie serverio
    $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);

    // pasirenkame duomen&#371; baz&#281; su kuria dirbsime
    mysql_select_db($this->db_name,$db);

    if(!$result=mysql_query("UPDATE ".$this->db_table." SET balsai=balsai+1 WHERE id='$anketos_id'",$db))
    return -2; // klaida
    else {
    if(!$result=mysql_query("UPDATE ".$this->db_table." SET balsai=balsai+1 WHERE maminis_id='$anketos_id' AND atsakymo_nr='$balso_nr'",$db))
    return -2; // klaida
    else {
    return 0; // viskas gerai, balsas užskaitytas
    }
    }

    }

    function GetResults() {

    // v&#279;l jungiam&#279;s prie serverio
    $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);

    // pasirenkame duomen&#371; baz&#281; su kuria dirbsime
    mysql_select_db($this->db_name,$db);

    // dabar pasiimsime iš duomen&#371; baz&#279;s paskutin&#303; užduot&#261; klausim&#261;

    if(!$result=mysql_query("SELECT id, tekstas, starto_data, balsai FROM ".$this->db_table." WHERE maminis_id='0' ORDER BY id DESC LIMIT 1",$db))
    return -2; // klaida
    else {
    $klausimas=mysql_fetch_row($result);
    mysql_free_result($result); // atlaisvinam rezultatus.

    $klausimo_id=$klausimas[0];
    $grazinimui=$klausimas; // priskiriame klausimo informacija kintamajam kur&#303; gražinsime.

    $grazinimui[2]=date("Y-m-d",$grazinimui[2]); // laika sekund&#279;mis nuo UNIX epochos paver&#269;iame &#303; mums suprantama dat&#261;.

    $result=mysql_query("SELECT atsakymo_nr, tekstas, balsai FROM ".$this->db_table." WHERE maminis_id='$klausimo_id' ORDER BY atsakymo_nr ASC",$db);
    $grazinimui[]=mysql_num_rows($result); // iš kart po klausimo informacijos seks atsakym&#371; skai&#269;ius, kad mes lengviau gal&#279;tume atspausdinti rezultatus.
    while($arow=mysql_fetch_row($result))
    {
    $grazinimui[]=$arow[0];
    $grazinimui[]=$arow[1];
    $grazinimui[]=$arow[2];
    // taip parašyta tik tam kad j&#363;s suprastum&#279;te kas vyksta, o vyksta atsakym&#371; informacijos kabinimas prie jau m&#363;s&#371; turimo "array" kintamojo galo
    }

    mysql_free_result($result); // atlaisvinam rezultatus
    }

    return $grazinimui; // graziname array'ju.
    }

    }
    ?>

    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

    More Miscellaneous Code Articles
    More By Codewalkers

    blog comments powered by Disqus

    MISCELLANEOUS CODE ARTICLES

    - Creating a Web Page Controller with the HMVC...
    - Coding Controllers and Views for the HMVC De...
    - A Sample Web Application with the HMVC Desig...
    - Adding a Class to Parse Views to an HMVC Des...
    - Building a Model Class for the HMVC Design P...
    - Filtering Input Data and Generating HTML For...
    - The HMVC Design Pattern: Working with MySQL ...
    - Dispatching Requests to MVC Triads with the ...
    - Implementing the Hierarchical Model-View-Con...
    - A Web App Based on a Model for the CodeIgnit...
    - Completing a Model for the CodeIgniter PHP F...
    - Validating Input Data with the CodeIgniter P...
    - Deleting Database Records with the CodeIgnit...
    - Inserting Database Records with a CodeIgnite...
    - Fetching Database Rows with a Model for the ...


    © 2003-2012 by Developer Shed. All rights reserved. DS Cluster 9 - Follow our Sitemap