#4 z_moravec
Oki ještě jednou díky. A mrknu na to:)
Příspěvky odeslané z IP adresy 95.173.217.–
Zdravím všechny, chtěl bych se optat jestli se dá pomocí souboru htaccess nastavit kapacita úložného prostoru na webu? Nebo popřípadě jak jinak se toho dá docílit poud to nejde přes soubor htaccess? Moc vám děkuji za pomoc.
#7 peter
Děkuji za pomoc. Příkaz sem vložil od SQL a vyhodil mi toto
Pravděpodobně máte v SQL dotazu chybu. Níže uvedený výstup MySQL serveru (pokud je nějaký) vám také může pomoci při zkoumání problému
ERROR: Neznámé interpunkční znaménko @ 25
STR: =>
SQL: $data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'ip' = $_SERVER['REMOTE_ADDR']
); $data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'ip' = $_SERVER['REMOTE_ADDR']
); $data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'ip' = $_SERVER['REMOTE_ADDR']
); $data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'ip' = $_SERVER['REMOTE_ADDR']
); $data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'ip' = $_SERVER['REMOTE_ADDR']
);
SQL-dotaz:
$data = array( 'type' => $type, 'parent_id' => $parent_id 'vote' => 0, 'browser' => $_SERVER['HTTP_USER_AGENT'], 'ip' = $_SERVER['REMOTE_ADDR'] );
MySQL hlásí: Dokumentace
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$data = array(
'type' => $type,
'parent_id' => $parent_id
'vote' => 0,
' at line 1
V databázi mám toto:
Tabulka je filmy a v ní je
id film odkaz date type parent_id vote browser ip time
Děkuji za odpověď, ale nějak to nechápu :( v php se nevyznám... já když vypisuji použiji toto:
require_once("votesCore.php");
$vote = new voteClass;
$vote->load_template("1");
Tento kód mi zobrazí to hodnocení u článku, ale když ho dám tam kdy vypisuji ty články, tak se mi to hodnocení opakuje a není ke každému článku zvlášť... v tom votesCore.php je ten kód co jsem posílal v prvním příspěvku.
Takhle tedy vypadá jak momentálně vypisuji články:
//********************************* výpis článků *********************************
while($row = mysql_fetch_array($vypis))
{
require_once("votesCore.php");
$vote = new voteClass;
$vote->load_template("1");
echo "<div class='vlozenydatum'><div class='vlozenydatumtext'>".$row["date"]."</div></div>\n"; //zobrazíme datum
echo "<div class='nadpis'>".$row["film"]."</div>\n"; //zobrazíme nadpis
echo "<div class='vlozenytextz'>".$row["odkaz"]."</div>\n"; // zobrazíme text
Jak to mám tedy zapsat do tohoto kousku, aby se hodnocení zobrazilo pro každý příspěvek svoje a neopakovalo se?
Díky za pomoc..
Opravdu nikdo nepomůže?
Ahoj lidi potřeboval bych poradit jak zapsat hodnocení k již existujícímu článku... Na webu mám články a na netu sem našel skript na honocení a chtěl bych ho začlenit k těm článkům. Databázi sem si udělal, ale vždy když ohodnotím, tak se mi vytvoří nové id toho hodnocení. Bude to chtít něco doplnit aby se to zapisovalo k už existujícímu ID. Já PHP nějak neholduji, tak nevím co a jak upravit. Děkuji za pomoc...
Tady je ten kód:
<?php
require ("pripoj.php");
/**
* @class voteClass
* @author Patrik "Szkandy" Szkandera
* @website http://php.cekuj.net
*/
class voteClass {
private $table_votes; // Tabulka hodnocení
private $time_limit; // Počet dní pro další hlasování
private $use_cookies; // Pro kontrolu využití cookies nebo DB
private $check_browser_db; // Při kontrole DB, využít kontorlu prohlížeče
public function __construct() {
$this->table_votes = "filmy";
$this->time_limit = "30";
$this->use_cookies = false;
$this->check_browser_db = true;
}
public function vote($type, $parent_id, $vote) {
$can_vote = true;
if ($vote >= 0 && $vote <= 5) {
// Kontrola pomocí cookies
if ($this->use_cookies) {
if (isset($_COOKIE['vote_'.$type."_".$parent_id]))
$can_vote = false;
}
// Kontrola pomocí DB
else {
// Kontrola prohlížeče
if ($this->check_browser_db)
$browser_and = "AND browser = '".$_SERVER['HTTP_USER_AGENT']."'";
else
$browser_and = "";
$query = "SELECT id FROM ".$this->table_votes." WHERE type = '$type' AND parent_id = '$parent_id'
$browser_and AND ip = INET_ATON('".$_SERVER['REMOTE_ADDR']."')
AND time + INTERVAL ".$this->time_limit." DAY > NOW()";
$result_check_ip = mysql_query($query) or
die(mysql_error());
if (mysql_num_rows($result_check_ip) > 0)
$can_vote = false;
}
// Pokud kontrola proběhla bez problémů
if ($can_vote) {
$query = "INSERT INTO ".$this->table_votes." (type, parent_id, vote, browser, ip)
VALUES('$type', '$parent_id', '$vote', '".$_SERVER['HTTP_USER_AGENT']."', INET_ATON('".$_SERVER['REMOTE_ADDR']."') )";
$result = mysql_query($query) or
die(mysql_error());
$return['error'] = "";
// Pokud se používá kontrola pomocí cookies -> vytvoření cookie s danými parametry
if ($this->use_cookies)
setcookie('vote_'.$type."_".$parent_id, "1", time()+$this->time_limit*24*60*60);
}
else
$return['error'] = "already voted";
}
else
$return['error'] = "cheater";
// Vrácení případné chyby jQuery
echo json_encode($return);
}
// Načtení templatu pro hodnocení
public function load_template($parent_id, $type="article") {
echo "<div class='vote_template' id='$type-$parent_id'>";
$this->rating_info($parent_id, $type);
echo "</div>";
}
// Načtení informací o hodnocení
public function rating_info($parent_id, $type) {
$query = "SELECT AVG(vote) AS avg, COUNT(*) AS sum FROM ".$this->table_votes." WHERE parent_id = '$parent_id' AND type = '$type' ";
$result_votes = mysql_query($query) or
die(mysql_error());
$votes = mysql_fetch_array($result_votes);
for ($i=1; $i<=round($votes['avg']); $i++)
echo "<img src='images/star.gif' class='vote_image' id='$type-$parent_id-$i' alt='Hodnocení $i' />";
for ($i=round($votes['avg'])+1; $i<=5; $i++)
echo "<img src='images/empty_star.gif' class='vote_image' id='$type-$parent_id-$i' alt='Hodnocení $i' />";
// Počeštění
if ($votes['sum'] == 1)
$suffix = "";
if($votes['sum'] > 1)
$suffix = "y";
if($votes['sum'] > 4)
$suffix = "ů";
echo "<span class=\"vote_hodnoceni\">(".$votes['sum']." hlas".$suffix.", ";
echo "průměr: ".number_format($votes['avg'], 1, ',', '')." z 5)</span>";
}
}
?>
Tak problém vyřešen... Problém nebyl mysql ani phpmyadminovi, ale měl jsem v php kódech webu před vypsáním textu z db za echo htmlentities s tento prevít to způsoboval... Mátlo mě totiž to, že na windows to nešlo... Tak vám děkuji za pomoc.
#3 peter
Také mi toto nejde. Hostuji na svém serveru a Verze MySQ je 5.5.24-0ubuntu0.12.04.1 a phpMyAdmina mám verzi 3.4.10.1deb1 , takže podpora by tam být měla... Ony některé texty s databáze jsou zobrazeny dobře jen titulky se zbrazují špatně. Ale na windows serveru je vše OK. Jinak jsem ještě zkoušel doplnit do souboru my.cnf toto:
[mysqld]
character-set-server=utf8
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysql]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqldump]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
#end
jenže potom se do phpMyAdmina vůbec nejde přihlásit. Asik se to kódování nějak pohaší... Možná to mám špatně, tak proto.
Jak tedy nastavit výchozí utf8 místo latin1? Tak ja to mám na windows... Díky moc za pomoc