Voting class for posting votings to your homepage, simple to use. Requires MySQL
By : ShiVAs
<?php class Voting {
var $db_host; // duomenų bazės adresas. var $db_user; // duomenų bazės vartotojo vardas. var $db_password; // duomenų bazės slaptažodis. var $db_name; // duomenų bazės vardas. var $db_table; // duomenų bazės lentelės vardas.
// jūsų klasės kodas.
function Voting($db_host,$db_user,$db_password,$db_name,$db_table) { // dabar gautus duomenis įraÅ¡ysim į vidinius klasės kintamuosius
function CreateTable() { // Dėmesio, duomenų bazei, bei lentelei naudojami tie parametrai kuriuos perdavėte kurdami klasę, t.y. perdavėte konstruktoriui.
// jungiamės prie duomenų bazės serverio $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);
// pasirenkame duomenų bazę su kuria dirbsime mysql_select_db($this->db_name,$db);
// o dabar sukursime pačia lentelę. // į kintamajį $sql įraÅ¡ysime SQL sakinį kuris sukuria mūsų lentelę.
$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į lentelės vardą kokį pasiėmėme per konstruktorių.
// pats kūrimas - užklausa siunčiama į serverį
if(!mysql_query($sql,$db)) return -2; // -2 pas mus bus DB klaida
// uždarome ryÅ¡į su serveriu. mysql_close($db); }
if(sizeof($atsakymai)<2) // vietoj sizeof() galima naudoti count() - laisvas pasirinkimas return -1; // klaida, atsakymų negali būti mažiau nei 2
// jungiamės prie duomenų bazės serverio $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);
// pasirenkame duomenų bazę su kuria dirbsime mysql_select_db($this->db_name,$db);
$atsakymu=sizeof($atsakymai); // kiek turėsime atsakymų
// uzdarome ryÅ¡į su serveriu. mysql_close($db);
return 0; // viskas gerai, apklausa įterpta. }
function Vote($anketos_id, $balso_nr) {
// vėl jungiamės prie serverio $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);
// pasirenkame duomenų bazę 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ėl jungiamės prie serverio $db=mysql_connect($this->db_host,$this->db_user,$this->db_password);
// pasirenkame duomenų bazę su kuria dirbsime mysql_select_db($this->db_name,$db);
// dabar pasiimsime iÅ¡ duomenų bazės paskutinį užduotą klausimą
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į gražinsime.
$grazinimui[2]=date("Y-m-d",$grazinimui[2]); // laika sekundėmis nuo UNIX epochos paverčiame į mums suprantama datą.
$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ų skaičius, kad mes lengviau galė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ūs suprastumėte kas vyksta, o vyksta atsakymų informacijos kabinimas prie jau mūsų turimo "array" kintamojo galo }
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.