|
G?osowanie na losowy cytat we wtyczce Cytaty
|
| Szapko |
Dodany dnia 10.02.2010 01:15:34
|

Bywalec

Postów: 888 Pomógł: 66
Data rejestracji: 19.08.2007 19:49
|
Witam!
Od jakiego? czasu próbuj? napisa? proste g?osowanie na losowy cytat z wtyczki Cytaty.
Panel, który losuje cytat zdo?a?em napisa? samemu, ale z g?osowanie ju? nie idzie tak g?adko.
Za?o?enie jak to mia?o wygl?da?:
S? dwa przyciski + i - i gdy naci?niemy np. + to wysy?amy formularz, który pobiera liczb? z tabeli cytaty, pola cytat_plus i dodaje do niej 1 po czym z powrotem wysy?a warto?? do pola (ju? z dodan? jedynk?). G?os mo?e odda? tylko u?ytkownik i tylko raz, na plus albo minus.
Cz??? panelu odpowiedzialna za g?osowanie:
if (isset($_POST['dodaj']) && trim($_POST['dodaj']) != "") {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=".$_POST['dodaj']." WHERE cytat_id='".$data['cytat_id']."' ");
}
$plu = $data['cytat_plus'] + 1;
$minu = $data['cytat_minus'] + 1;
echo "<form action='news.php?plus=$plu' method='post'>
<input type='hidden' name='dodaj' value='".$plu."'>
<input type='submit' value='' class='plus'>
</form>";
Na razie doda?em tylko formularz dodaj?cy g?os na + ale i tak nie dzia?a. Nie wiem gdzie zrobi?em b??d, ale pola w bazie szalej?. Punkty dodaj? si? raz do dobrego pola (to chyba tylko, dlatego, ?e nie raz losuje ten sam cytat dwa razy), a nie raz do innego pola. Warto?? jednak jest dobra. Nie wiem czemu tak si? dzieje, ale powinno pobiera? ID cytatu, który si? wy?wietla aktualnie, a nie kolejnego.
Pola w bazie wygl?daj? tak:
cytat_plus varchar(100), latin2_general_ci, domy?lnie: 0
cytat_minus varchar(100), latin2_general_ci, domy?lnie: 0
Ca?y panel wygl?da tak:
openquote('');
$result = dbquery("SELECT * FROM ".$db_prefix."cytat ORDER BY RAND()");
if (dbrows($result)) {
if ($data = dbarray($result)) {
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
$result = dbquery("SELECT * FROM ".$db_prefix."cytat_cat WHERE cytat_cat_id='".$data['cytat_cat']."'");
if (dbrows($result)) {
if ($data2 = dbarray($result)) {
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data2['cytat_cat_name']."</div>";
if (iMEMBER) {
//TUTAJ
if (isset($_POST['dodaj']) && trim($_POST['dodaj']) != "") {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=".$_POST['dodaj']." WHERE cytat_id='".$data['cytat_id']."' ");
}
$plu = $data['cytat_plus'] + 1;
$minu = $data['cytat_minus'] + 1;
echo "<form action='news.php?plus=$plu' method='post'>
<input type='hidden' name='dodaj' value='".$plu."'>
<input type='submit' value='' class='plus'>
</form>";
//TUTAJ
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/+.png' border='0'></a> ";
echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/-.png' border='0'></a> ";
echo "| <a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
}
}
}
}
closequote();
Edytowane przez Pieka dnia 10.02.2010 01:39:51
|
| |
|
|
| W?cibski Go?? |
Dodany dnia 27.10.2025 08:38:09
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
| IP: localhost |
|
|
| kefirek |
Dodany dnia 10.02.2010 10:16:23
|

Zaawansowany

Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
Spróbuj tak
I pola w bazie zmie? na INT a nie VARCHAR
openside("name");
$result = dbquery("SELECT cytat_cat, cytat_cat_name, cytat_name, cytat_cat cytat_description, cytat_id FROM ".$db_prefix."cytat LEFT JOIN ".$db_prefix."cytat_cat ON (cytat_cat=cytat_cat_id) ORDER BY RAND() LIMIT 1");
if (dbrows($result)) {
$data = dbarray($result);
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data['cytat_cat_name']."</div>";
if (iMEMBER) {
//TUTAJ
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$data['cytat_id']."' ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus-1 WHERE cytat_id='".$data['cytat_id']."' ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='submit' name='add' value='+' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='submit' name='substract' value='-' class='plus'>
</form>";
echo "<a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
}
closeside();
|
| |
|
|
| Szapko |
Dodany dnia 10.02.2010 17:04:11
|

Bywalec

Postów: 888 Pomógł: 66
Data rejestracji: 19.08.2007 19:49
|
Prawie dzia?a, jednak dodaje i odejmuje nie do cytatu, który aktualnie si? wy?wietla (ten, na który g?osuje) tylko do cytatu, który pojawia si? po zag?osowaniu.
Wiadomo?? doklejona:
Jednak ju? sobie poradzi?em.
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$_POST['id']."' ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus+1 WHERE cytat_id='".$_POST['id']."' ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='submit' name='add' value='' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='submit' name='substract' value='' class='minus'>
</form>";
Wiadomo?? doklejona:
G?osowanie jest dla widoczne tylko dla userów, ale nie wiem jak zrobi? by jeden user móg? odda? tylko jeden g?os, na plus albo na minus do danego cytatu.
Edytowane przez Szapko dnia 10.02.2010 17:12:12
|
| |
|
|
| kefirek |
Dodany dnia 10.02.2010 17:29:24
|

Zaawansowany

Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
Zrób sobie dodatkow? tabele w bazie danych z kolumnami
Cytat_id | user_id | ocena |
I potem sprawdzasz czy id cytatu oraz usera istnieje w bazie. Je?li tak user g?osowa? ju? je?li nie znaczy ?e nie g?osowa?.
|
| |
|
|
| Szapko |
Dodany dnia 10.02.2010 23:12:49
|

Bywalec

Postów: 888 Pomógł: 66
Data rejestracji: 19.08.2007 19:49
|
Zrobi?em tylko dwie kolumny, trzeciej nie b?d? potrzebowa?:
cytat_id int(10), Atrybut: UNSIGNED, Null: Nie
user_id int(10), Atrybut: UNSIGNED, Null: Nie
Kod wygl?da teraz tak:
openquote('');
$result = dbquery("SELECT * FROM ".$db_prefix."cytat ORDER BY RAND()");
if (dbrows($result)) {
if ($data = dbarray($result)) {
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
$result = dbquery("SELECT * FROM ".$db_prefix."cytat_cat WHERE cytat_cat_id='".$data['cytat_cat']."'");
if (dbrows($result)) {
if ($data2 = dbarray($result)) {
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data2['cytat_cat_name']."</div>";
if (iMEMBER) {
$result4 = dbquery("SELECT * FROM ".$db_prefix."cytat_vote WHERE cytat_id='".$data['cytat_id']."'");
if (dbrows($result4)) {
if ($data4 = dbarray($result4)) {
if ($data4['user_id'] = $user_data['user_id']) {
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='add' value='' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='substract' value='' class='minus'>
</form>";
} else {
echo "Ju? g?osowa?e? | ";
}
}
}
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/+.png' border='0'></a> ";
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/-.png' border='0'></a> ";
echo "<a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
}
}
}
}
closequote();
Napis ju? g?osowa?e? wy?wietla si? prawid?owo przy tych cytatach, na które zag?osowa?em, ale gdy jeszcze nie g?osowa?em na jaki? cytat to nie wy?wietlaj? mi si? przyciski do g?osowania.
Wiadomo?? doklejona:
Problem rozwi?zany przez @kefirka:
openquote('');
$result = dbquery("SELECT * FROM ".$db_prefix."cytat LEFT JOIN ".$db_prefix."cytat_cat ON (cytat_cat=cytat_cat_id) ORDER BY RAND()");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data['cytat_cat_name']."</div>";
if (iMEMBER) {
$rows = dbcount("(*)", $db_prefix."cytat_vote WHERE cytat_id='".$data['cytat_id']."' AND user_id='".$userdata['user_id']."'");
if(!$rows > 0 ) {
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='add' value='' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='substract' value='' class='minus'>
</form>";
} else {
echo "Ju? g?osowa?e? | ";
}
}
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/+.png' border='0'></a> ";
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/-.png' border='0'></a> ";
echo "<a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
closequote();
Edytowane przez Szapko dnia 12.02.2010 22:43:01
|
| |
|
|
| Ummm |
Dodany dnia 08.06.2010 00:50:12
|

Przedszkolak

Postów: 18
Data rejestracji: 05.05.2010 20:37
|
Jak chc? doda? panel mam taki error:
Fatal error: Call to undefined function openquote() in /home/gta2/domains/gta2.unl.pl/public_html/administration/panel_editor.php(128) : eval()'d code on line 1
Wiadomo?? doklejona:
dan_0803 napisa?/a:
Zrobi?em tylko dwie kolumny, trzeciej nie b?d? potrzebowa?:
cytat_id int(10), Atrybut: UNSIGNED, Null: Nie
user_id int(10), Atrybut: UNSIGNED, Null: Nie
Kod wygl?da teraz tak:
openquote('');
$result = dbquery("SELECT * FROM ".$db_prefix."cytat ORDER BY RAND()");
if (dbrows($result)) {
if ($data = dbarray($result)) {
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
$result = dbquery("SELECT * FROM ".$db_prefix."cytat_cat WHERE cytat_cat_id='".$data['cytat_cat']."'");
if (dbrows($result)) {
if ($data2 = dbarray($result)) {
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data2['cytat_cat_name']."</div>";
if (iMEMBER) {
$result4 = dbquery("SELECT * FROM ".$db_prefix."cytat_vote WHERE cytat_id='".$data['cytat_id']."'");
if (dbrows($result4)) {
if ($data4 = dbarray($result4)) {
if ($data4['user_id'] = $user_data['user_id']) {
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='add' value='' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='substract' value='' class='minus'>
</form>";
} else {
echo "Ju? g?osowa?e? | ";
}
}
}
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/+.png' border='0'></a> ";
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/-.png' border='0'></a> ";
echo "<a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
}
}
}
}
closequote();
Napis ju? g?osowa?e? wy?wietla si? prawid?owo przy tych cytatach, na które zag?osowa?em, ale gdy jeszcze nie g?osowa?em na jaki? cytat to nie wy?wietlaj? mi si? przyciski do g?osowania.
Wiadomo?? doklejona:
Problem rozwi?zany przez @kefirka:
openquote('');
$result = dbquery("SELECT * FROM ".$db_prefix."cytat LEFT JOIN ".$db_prefix."cytat_cat ON (cytat_cat=cytat_cat_id) ORDER BY RAND()");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c'></td>\n";
echo "</tr>\n<tr>\n";
echo "<td>\n";
echo "<table cellpadding='0' cellspacing='0'>\n<tr>\n";
echo "<td class='c2'></td>\n";
echo "<td class='c3' valign='top'>".$data['cytat_description']."</td>\n";
echo "<td class='c4'></td>\n";
echo "</tr>\n</table>\n";
echo "</td>\n";
echo "</tr>\n<tr>\n";
echo "<td class='c5'></td>\n";
echo "</tr>\n</table>\n";
echo "<div style='color: #deb72f; font-weight: bold; float: right;'>".$data['cytat_cat_name']."</div>";
if (iMEMBER) {
$rows = dbcount("(*)", $db_prefix."cytat_vote WHERE cytat_id='".$data['cytat_id']."' AND user_id='".$userdata['user_id']."'");
if(!$rows > 0 ) {
if (isset($_POST['add'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_plus=cytat_plus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
if (isset($_POST['substract'])) {
$result_add = dbquery("UPDATE ".$db_prefix."cytat SET cytat_minus=cytat_minus+1 WHERE cytat_id='".$_POST['id']."' ");
$result_add2 = dbquery("INSERT INTO ".$db_prefix."cytat_vote SET cytat_id=".$_POST['id'].", user_id=".$_POST['userid']." ");
}
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='add' value='' class='plus'>
</form>";
echo "<form action='".FUSION_SELF."' method='post'>
<input type='hidden' name='id' value='".$data['cytat_id']."'>
<input type='hidden' name='userid' value='".$userdata['user_id']."'>
<input type='submit' name='substract' value='' class='minus'>
</form>";
} else {
echo "Ju? g?osowa?e? | ";
}
}
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/+.png' border='0'></a> ";
//echo "<a href='#' style='font-decoration: none;'><img src='".THEME."images/-.png' border='0'></a> ";
echo "<a href='".INFUSIONS."eXtreme_cytat/cytat.php?cat_id=".$data['cytat_cat']."' style='color: #ffffff;'>Wi?cej cytatów...</a>";
}
closequote();
Witam móg?bym dosta? kodzik do wklejenia w myphpadmina aby mi utworzy? takie tabelki?
Edytowane przez Ummm dnia 12.06.2010 19:26:40
|
| |
|