![]() |
![]() | Anketa... | ![]() |
WarMaker
![]() |
![]() |
Imam probleme z anketo... Imam sledeče skripte:
povezi_se.php <?php $_host = "localhost"; $_database = "anketa"; $_username = "anketa"; $_password = "**********"; @mysql_connect( $_host, $_username, $_password) or die( "ERROR: ". mysql_error() ); @mysql_select_db( $_database ) or die( "ERROR: ". mysql_error() ); ?> dodaj_anketo.php <?php include_once("povezi_se.php"); if ( $_POST ) { $vprasanje = trim( $_POST["vprasanje"] ); $odgovori = trim( $_POST["odgovori"] ); if ( $vprasanje && $odgovori ) { mysql_query( "UPDATE poll_q SET active=0" ) or die( mysql_error() ); mysql_query( "INSERT INTO poll_q (q,a,active) VALUES ('$vprasanje','$odgovori',1)" ) or die( mysql_error() ); mysql_close(); header( "location: ankete.php" ); exit; } } ?> <form action="<?=$_SERVER["PHP_SELF"];?>" method="post"> Vprašanje:<br /> <input name="vprasanje" type="text" style="width: 300px;" /><br /><br /> Odgovori:<br /> <textarea name="odgovori" cols="" rows="8" style="width: 300px;"></textarea><br /><br /> <input type="submit" value="Dodaj" /> </form> anketa.php <?php include_once("povezi_se.php"); $sql = mysql_query( "SELECT * FROM poll_q ORDER BY active DESC" ) or die( mysql_error() ); $num = mysql_num_rows( $sql ); $votes = array_unique( explode(",", $_COOKIE["odgovori"]) ); for ($i=0; $i < $num; $i++) { $assoc = mysql_fetch_assoc( $sql ); $answers = explode("n",$assoc["a"]); $sql2 = mysql_query( "SELECT COUNT(*) FROM poll_a WHERE poll_id=$assoc[id]" ) or die( mysql_error() ); $votes_num = mysql_result($sql2, 0); echo"<p style="width: 100%; font-size: 10pt; font-family: verdana;">n"; if ( in_array($assoc["id"],$votes) ) { echo $assoc["active"]? "Trenutna anketa >>><br />n": null; echo "$assoc[q]: $votes_num glasov<br />n"; foreach ($answers as $a_id => $answer) { $current_num = mysql_result( mysql_query( "SELECT COUNT(*) FROM poll_a WHERE (a=$a_id && poll_id=$assoc[id])" ), 0 ); @$procent = round( $current_num * 100 / $votes_num ,1); echo"$answer: $current_num glasov ($procent%)<br />"; echo"<table cellspacing="0" style="width: 500px;">n"; echo"<tr>"; echo"<td style="width: ". $procent ."%; background-color: #808080; border: 1px solid #808080;"> </td>"; echo"<td style="width: ". (100 - $procent) ."%; background-color: #EAECF5; border: 1px solid #808080;"> </td>"; echo"</tr>"; echo"</table>n"; } echo"<br />"; } else { echo"<form action="dodaj_glas.php" method="post" style="">n"; echo"<input type="hidden" name="poll_id" value="$assoc[id]" />n"; echo $assoc["active"]? "Trenutna anketa<br /><br />n": null; echo "$assoc[q]:<br />n"; foreach ($answers as $a_id => $answer) echo"<input type="radio" name="answer" value="$a_id" /> $answer<br />n"; echo"<input type="submit" value="Glasuj" />n"; echo"</form>n<br />"; } echo"</p>n"; } ?> in dodaj_glas.php <?php include_once("povezi_se.php"); if ( $_POST ) { $poll_id = (int)$_POST["poll_id"]; $answer = (int)$_POST["answer"]; $sql = mysql_query( "SELECT * FROM poll_q WHERE id=$poll_id LIMIT 1" ) or die( mysql_error() ); $assoc = mysql_fetch_assoc( $sql ); $votes = explode("n", $_COOKIE["odgovori"]); if ( $assoc && isset($_POST["answer"]) && !in_array($poll_id,$votes) ) { mysql_query( "INSERT INTO poll_a (poll_id,a) VALUES($poll_id,$answer)" ) or die( mysql_error() ); array_push($votes,$poll_id); setcookie("odgovori"); setcookie("odgovori",implode(",",$votes),time()+3600*24*300); } } mysql_close(); header("location: ankete.php"); exit; ?> Vse skupaj je na www.slo-games.net/anketa/ Problem pa je v tem, da mi noče naredit nove ankete... v bazi sem naredil točno tako, kot piše: Tabela poll_q: 1 CREATE TABLE poll_q ( id int(10) unsigned NOT NULL auto_increment, q varchar(255) NOT NULL default '', a text NOT NULL, active tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; Tabela poll_a: 1 CREATE TABLE poll_a ( id int(10) unsigned NOT NULL auto_increment, poll_id int(10) unsigned NOT NULL default '0', a int(10) unsigned NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; Sej si lahko greste ogledat -> up ime in geslo je tako in tako zgoraj napisano ![]() hvala, lp |
|||||||||||
_________________ I know what you did last summer!
|
![]() |
![]() | ![]() |
![]() |
![]() | ![]() |
WarMaker
![]() |
![]() |
OK... hvala za spremembo gesla
![]() Heh... s temi query-mi si me zelo zmedel... ki se ne raumem toliko v to... Kaj problem je v MySql bazi.. al PHP skripti? |
|||||||||||
_________________ I know what you did last summer!
|
![]() |
![]() | ![]() |
Pico
Site Admin
![]()
![]() |
![]() |
Ja tkole nared, recimo:
takoj za SQL stavkom naredi ECHO tega stavka, pa ga ročno vnašej, pa glej, kaj se dogaja, npr., namesto: $sql = mysql_query( "SELECT * FROM poll_q ORDER BY active DESC" ) or die( mysql_error() ); narediš nekaj podobnega, s tem da sproti vidiš vse SQL QUERY-je: $sqls = "SELECT * FROM poll_q ORDER BY active DESC"; $sql = mysql_query($sqls) or die( mysql_error() ); echo "<br> " . $sqls; Potem lahko ročno vnašaš vsak SQL stavek v bazo in vidiš, kje zadeva zašteka. |
|||||||||||
_________________ Site admin alias Labsy Vsi nasveti in tehnične rešitve so podani v dobri veri in za ljudi z razčiščenimi pojmi o veljavni zakonodaji. Odgovornost prevzemam izključno in samo za tiste posege, ki jih opravim lastnoročno.
|
![]() |
![]() | ![]() |
WarMaker
![]() |
![]() |
hmmm... nisem še tak PHPjevc... samo sem šel na www.3delavnica.com in sem najdel eno skripto, ki tudi ne dela! zdej.. sprašujem se zakaj mi nobena skripta ne dela.. Kaj morajo imet datoteke kej posebnega (kar Win server ne ponuja) al je samo - ker sem tako butast, da ne znam naštimat.. ?
link do ankete, ki jo imam na serverju : http://www.slo-games.net/index.php link do ankete, ki se nahaja na 3delavnica: http://3delavnica.com/index.php?main=ucilnica_clanek&oddelek=6&clanek=96 PS: Če sledim navodilom... nekje na sredini strani piše tole:
Ne razumem, KAM MORAM VSTAVIT TO:
Pa še nekaj... ne piše, kako dodajat vprašanja in odgovore.. in sem vprašal kolega, pa mi je rekel, da se to postavlja v bazi... kako? Hvala, lp |
|||||||||||||
_________________ I know what you did last summer!
|
![]() |
![]() | ![]() |
Pico
Site Admin
![]()
![]() |
![]() |
Tale koda:
Prav je takole:
Drugače pa PHP deluje odlično na vseh naših Win serverjih, je pa res, da se v določenih podrobnostih razlikuje od PHP-ja na Linux platformi. Predvsem je razlika v avtentikaciji uporabnikov, ki se tukaj rešuje drugače, pa tudi kjer je PHP skripta narejena tako, da uporablja, recimo, sendmail za pošiljanje pošte (kar nekateri programerji kar vzamejo za privzeto), je potrebno skripto v tem delu predelati, ker sendmaila ni instaliranega. To so glavne razlike. Je še par manjših razlik, na splošno pa vse dela identično in brez problemov. |
|||||||||||||
_________________ Site admin alias Labsy Vsi nasveti in tehnične rešitve so podani v dobri veri in za ljudi z razčiščenimi pojmi o veljavni zakonodaji. Odgovornost prevzemam izključno in samo za tiste posege, ki jih opravim lastnoročno.
|
![]() |
![]() | ![]() |
WarMaker
![]() |
![]() |
OK... sem popravil, samo ne znam vstavit v tabele podatke...
Mi lahko poveste, kako?! lp |
|||||||||||
_________________ I know what you did last summer!
|
![]() |
![]() | Anketa... | ![]() |
|
||
![]() |
![]() |
Za pogon skrbi modificirana verzija php BB engine © 2001-2005 php BB Group
Stilska oprema foruma by Morpheus. Code edited by Pico.
HTML in XML verziji foruma: HTML forum | XML SiteMap
Stilska oprema foruma by Morpheus. Code edited by Pico.
HTML in XML verziji foruma: HTML forum | XML SiteMap
