« 1 2 »
Autor Zpráva
seti
Profil *
Zdravím,
napsala jsem si návštěvní knihu a chtěla jsem si do ní vložit odstránkování příspěvků. Postupovala jsem podle různých návodů na internetu a nevím si s tím rady. Tady je výsledek mého snažení:

<form name="navstevnikniha" action="kniha1.php?poz=0" class="formular_kniha" method="get" id="form">

…...

<input type="submit" name="odeslat" value="ODESLAT" />

…....


//strankovani
$max = "15"; //pocet prispevku, kolik se ma zobrazit na 1 strane

$prispevku = mysql_query("SELECT count(*) FROM kniha ORDER BY id_kniha DESC"); //zjistime, kolik je celkem prispevku
$celkem = mysql_fetch_array($prispevku);
$str = ceil($celkem[0]/$max);//podelime celkovy pocet prispevku poctem prispevku kolik ma byt na strance

echo"<br><center>Strana:";
for($i=0;$i<$str;$i++) { //cyklus na vypsani stranek

if(($i*$max)==$poz)echo $i+1; else //pokud jsme na dane strane, nevypisujeme ji jako odkaz, ale jako text

echo "<a href='kniha1.php?poz=".($i*$max)."'>".($i+1)."</a>";

}
echo "</center><br><br>";

//konec strankovani



$dotaz= "SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT $poz,$max"; //dotaz k vypsani vsech vzkazu v databazi
$qq = mysql_query($dotaz);
if ($qq) {

…....


a tady to vypisuje chybu: chyba pri provadeni dotazu SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT ,15 k DB: 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 '15' at line 1


poradíte mi někdo pls, kde dělám chybu?
gaminn
Profil *
Vyzkoušej si SQL dotaz, něco v něm není správně, zkontroluj, zda existuje jméno tabulky, ze které získáváš data a zda v ní jsou uvedené sloupce.
Glacier
Profil
LIMIT ,15 ta čárka tam rozhodně nepatří ale nevím jestli to pomůže
seti
Profil *
Dokud v tom dotazu nebyl ten LIMIT, tak to fungovalo. Nemohlo by to být tou proměnnou $poz? Když jsem tam vložila $poz=1, tak databáze funguje. Vypíše se 15 vzkazů a dva odkazy na další stránky. Na stránku 1 (na ten když kliknu tak v url je kniha1.php?poz=0) a na stránku 2 (na ten když kliknu, tak je v url kniha1.php?poz=15 (zde by asi mělo být kniha1.php?poz=2?)).
Tak mě to připadá, jakoby ta proměnná poz byla prázdná, ale nevím, jak ji nadefinovat, aby to fungovalo jak má.

Jestli někdo víte, prosím poraďte. Předem díky.
seti
Profil *
před tou čárkou, tam by měla patřit hodnota té proměnné poz.
seti
Profil *
nevíte nikdo, co s tím?
djlj
Profil
Vlož si těsně před select

echo $poz;
die();

A hned budeš vědět, co je v $poz a jestli je to touto proměnnou ;).
seti
Profil *
no, není tam nic.....
djlj
Profil
No... a kde máš tu proměnnou definovanou? Vidím ji tam jen jednou v podmínce a to je všechno ...
seti
Profil *
No to je právě to, dělala jsem to podle návodu, co jsem našla na internetu a taky to tam nikde nevidím.

Je to tohle: http://www.pcsvet.cz/art/article.php?id=5219 . Návštěvní knihu jsem použila svou a odstránkování odtud.

Moc tomuto kódu nerozumím, tak nevím, jak to upravit, aby to fungovalo.
djlj
Profil
Proto, musí být url adresa na knihu nějak takto: kniha.php?poz=0. Pokud tam nebude napsáno poz=0, tak skript vypíše chybu.

Vypisuješ adresu knihy v tomto formátu? Případně si tam někam na začátek dej podmínku:

if($poz==""){
$poz=0;
}
seti
Profil *
Když jsem tam dala tuto podmínku, tak to nevypsalo vůbec nic z databáze. Před dotazem na databázi jsem dala vypsat co je v $poz, byla tam ta na začátku nastavená nula.
djlj
Profil
A co to vypíše, když zadáš SQL dotaz v phpmyadminu

SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT 0,15 ?
seti
Profil *
To vypadá v pořádku. Vypíše to 15 záznamů těch nejčerstvějších.
djlj
Profil
ok, jak máš $dotaz = ...
tak pod to si dej

echo $dotaz;
die();

co to vypíše?
seti
Profil *
vůbec nic.
djlj
Profil
seti
Určitě jsi to dala až pod
$dotaz= "SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT $poz,$max";
??
seti
Profil *
určitě.
djlj
Profil
Hmm, zajímavé :). Už mě jen napadá, že tam můžou být blbě uvozovky, tak zkus

$dotaz= "SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT ".$poz.",".$max."";
seti
Profil *
úplně to stejný. To vypadá dost beznadějně, co?
djlj
Profil
A píšeš adresu té knihy ve formátu "kniha.php?poz=0" (můžeš sem napsat odkaz)?
Raider
Profil
Nie som si istý, ale podľa mna je chyba v tom, že používaš nesprávne ORDER BY id_kniha. Skús iba normálne ORDER BY id. Viď nasledovný kód:


$dotaz= "SELECT jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id DESC LIMIT $poz,$max";
Raider
Profil
A tuto sa mi to tiež nezdá:

$prispevku = mysql_query("SELECT count(*) FROM kniha ORDER BY id_kniha DESC");

Skús toto:

$prispevku = mysql_query("SELECT count(*) FROM kniha ORDER BY id DESC");


Napíš či ti to pôjde. Malo by to ísť.
djlj
Profil
Raider
Slečna (snad jsem se trefil :)) psala, že si z kódu na intervalu vzala jen to stránkování, takže tohle má snad dobře ... no uvidíme ...
seti
Profil *
ten sloupeček jsem pojmenovala id_kniha. Odkaz je tady: http://obec-studnice.cz/pok/kniha1.php?poz=0 . Do té doby, než jsem se pokusila o stránkování, tak to fungovalo. Dotazy jsou stejný.
djlj
Profil
Ta 0 dole je echo $poz; ?
seti
Profil *
jo, to je ono
Raider
Profil
djlj
Slečna (snad jsem se trefil :))
Hehe, tak toto sa mi ešte nestalo.
Podľa čoho si to usúdil ? Inak som muž (pozri slovo "Raider" v slovníku) ;-)

seti
Aha. Tak potom skús pridať to id_kniha aj do SELECT-u.

$dotaz= "SELECT id_kniha,jmeno, e_mail, web, vzkaz, datum FROM kniha ORDER BY id_kniha DESC LIMIT $poz,$max";
djlj
Profil
Raider
To vím, myslel jsem totiž "seti" (přečti si můj příspěvek ještě jednou).


Čím tomu pomůže, že to tam přidá?


seti, nechceš někam v texťáku hodit komplet zdroják? Líp by se v tom orientovalo ...

Ta proměnná $poz; se ti někde přepisuje na nulu!
seti
Profil *
Udělala jsem to tak a zase nic.
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.

0