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
$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ė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);
}
function AddPoll($klausimas, $atsakymai)
{
if(empty($klausimas))
return -1; // klaida, klausimas tuÅ¡čias.
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ų
// paruoÅ¡iame klausimą dėjimui į duomenų bazę
$klausimas=addslashes(htmlspecialchars($klausimas));
// pasiimam dabartinį laiką nuo UNIX epochos sekundėmis
$laikas=time();
// Dabar įterpiame klausimą į lentelę
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ų bazės klaida.
// taigi, klausimas įterptas, pasiimam jo id.
$klausimo_id=mysql_insert_id();
// dabar suksim ciklą kol įterpsime visus atskymus.
for($i=0;$i<sizeof($atsakymai);$i++)
{
$atsakymas=addslashes(htmlspecialchars($atsakymai[$i])); // paruoÅ¡iam atsakymo tekstą dėjimui į 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Å¡į 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
}
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
developerWorks - FREE Tools! |
Join this webcast, to learn how the Rational Process Library can help with compliance issues, drive process improvement, and assist in service-oriented architecture (SOA) or Agile development. We will take a peek into the Rational Process Library with content around software and systems engineering (including RUP), operations and systems management, program and portfolio management, and asset and SOA governance. FREE! Go There Now!
|
|
|
|
Attend this launch webcast with Scott Hebner, Vice President of IBM Rational Marketing and Strategy, for an overview of Rational’s new software offerings and resources to help modernize and accelerate software innovation on i on Power Systems – while ensuring past application investments are protected and continue to grow. Learn how these solutions are helping customers extend their core i5/OS solutions toward modern architectures such as SOA and web technologies to deliver business improvements that stand the test of time. FREE! Go There Now!
|
|
|
|
You probably have thousands of lines of COBOL code loaded with business intelligence and being used to run your business, along with an army of developers maintaining these applications. Learn how to prepare your applications and developers so you can keep that competitive edge and move to a service-oriented architecture with the IBM Rational Enterprise Modernization solutions. Replay is available for 9 months. FREE! Go There Now!
|
|
|
|
Analysts, architects, and developers who have existing COBOL or PL/I skills and want to extend those skills to deploy new workloads on the mainframe can use the IBM Enterprise Modernization Sandbox for System z to find hands-on walkthroughs of common real world scenarios. The scenarios provide examples of how to rapidly design, create, assemble, test, and deploy high-quality Web, Web services, portal, and SOA applications for IBM CICS, IBM IMS, and IBM WebSphere Application Server. FREE! Go There Now!
|
|
|
|
Asset Reuse is a key strategy for companies looking to create innovative solutions to solve complex software development problems. Searching for, identifying, updating, using and deploying software assets can be a difficult challenge. Listen to this webcast, to learn about strategies and tools that you can leverage for a successful project, including Rational Asset Manager, Rational Software Architect and WebSphere Service Registry and Repository. FREE! Go There Now!
|
|
|
|
Rational Modeling Extension for Microsoft .NET enhances usability for code generation supporting a more intelligent refactoring. The latest enhancements enable organizations with Java and .NET systems and software development maintain architectural integrity across heterogeneous platforms. FREE! Go There Now!
|
|
|
|
This paper is about the critical role that a discipline called integrated requirements management can play in helping to ensure that your business goals and IT investments are continuously aligned—whether you are sourcing, integrating, building or maintaining software. It also looks at ways that automated IBM Rational® products can work together to help you use requirements in the very best way. FREE! Go There Now!
|
|
|
|
As businesses grow increasingly dependent upon Web applications, these complex entities grow more difficult to secure. Most companies equip their Web sites with firewalls, Secure Sockets Layer (SSL), and network and host security, but the majority of attacks are on applications themselves – and these technologies cannot prevent them. This paper explains what you can do to help protect your organization, and it discusses an approach for improving your organization’s Web application security. FREE! Go There Now!
|
|
|
|
User communities play an important role in communication and collaboration around products, solutions and other areas of special interest to members. Successful communities are able to provide the right mix of content and services to deliver a value proposition that resonates with each audience. Join Tom Inman, VP of Marketing for Information and Platform Solutions as he introduces the new LeverageINFORMATION community. During this webcast, learn about the value provided by the community and how customers and partners derive value from the community in addressing their own technical and business challenges. FREE! Go There Now!
|
|
|
|
The unprecedented scope of a service-oriented architecture (SOA) initiative brings to the forefront a number of management and governance issues that were sidestepped in the past. The key to a successful SOA implementation is managing and governing activities throughout the entire SOA delivery lifecycle by ensuring that services conform to the needs of all of the business’s stakeholders. Learn how service lifecycle management allows the business to ensure that the process by which services are defined, created, tested, deployed, optimized and retired is manageable, repeatable and auditable. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |