Chyba php + mysql

Zdravim vsechny mam mensi problem a nevim jak to udelat mohl by mi nekdo pomoci ?

$zobraz=mysql_query("SELECT * FROM slovicka WHERE limit $PocSlovicek ORDER BY $cesky");
echo ("<table border=1>");
echo ("<tr><td><b> Cesky </b></td> <td><b>Anglicky</b></td> <td><b>Lekce</b></td></tr>");
while ($zaznam=MySQL_Fetch_Array($zobraz)):
echo "<tr><td>".$zaznam["cesky"]."\n </td>" ;
echo "<td>".$zaznam["anglicky"]."\n </td>";
echo "<td>".$zaznam["lekce"]."<BR>\n </td></tr>" ;
endwhile;
echo ("</table>");
echo ("<br><br>Vsechny slovicka byli zobrazeny !");

toto by mi melo delat zobrazeni slovicek podle zadaneho poctu v jinem formulari a taky podle lekce kdyby mi s tim nekdo pomohl jo a taky mi pise tuto chybu

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\slovicka\vyber1.php on line 22

(radek 22 je while)

diky moc za odpoved
tak problem uz jsem vyresil:
$zobraz=mysql_query("SELECT * from slovicka where 1 LIMIT 0, $PocSlovicek");
echo ("<table border=1>");
echo ("<tr><td><b> Cesky </b></td> <td><b>Anglicky</b></td> <td><b>Lekce</b></td></tr>");
while ($zaznam=MySQL_Fetch_Array($zobraz)):
/* Pokud se lekce schoduje s vybranou lekci tak*/
if (($zaznam["lekce"]==$lekce) Or ($lekce=="11"))
{
echo "<tr><td>".$zaznam["cesky"]."\n </td>" ;
echo "<td>".$zaznam["anglicky"]."\n </td>";
echo "<td>".$zaznam["lekce"]."<BR>\n </td></tr>" ;
}
endwhile;
echo ("</table>");
echo ("<br><br>Vsechny slovicka byli zobrazeny !");


ale nedokazu tam dat jeste aby to tridil podle lekci a ceskych slovicek to mi pak pise chybu kdyby mi to jen nekdo mohl napsat diky moc
Nějak vůbec nevadí, že řádek 22 je cyklus while. V něm je totiž proměnná $zobraz a tu si najdi o pár řádků výše:

$zobraz=mysql_query("SELECT * FROM slovicka WHERE limit $PocSlovicek ORDER BY $cesky");

Je potřeba znát základy SQL. Jednak limit AFAIK patří na konec dotazu. To co je dál za klauzulí WHERE je taky nějaký divný. Aspoň by chtělo vědět, co obsahují ty proměnný uvnitř SQL dotazu.
Jsem nějakej pomalej. Ani teď mi není ten tvůj SQL dotaz jasnej, resp. to, co je za klauzulí WHERE.
Třídění podle lekce a českých slovíček (v tomto pořadí) se provede takhle:

$zobraz=mysql_query("SELECT * from slovicka ORDER BY lekce, cesky LIMIT 0, $PocSlovicek");

Poznámka: Klauzule WHERE tam není třeba, pokud nechceš filtrovat jen určitá slovíčka - např. WHERE lekce=11.

Příklad výstupu (čistě jen jako ukázka - třídí se nejprve podle čísla lekce a pak podle českých slovíček):

Cesky - Anglicky - Lekce
anakonda - anaconda - 1
jablko - apple - 1
pomeranc - orange - 1
stul - table - 2
kreslo - armchair - 3
zidle - chair - 3
nadseni - enthusiasm - 11


Snad je to to, co jsi chtěl. ;-)
Toto se netyka programovani, ne pise se nahodou slovicka bylY, ma tam bejt trdy "y".. :)
No když už tak "Vsechna slovicka byla zobrazena"... ;-)
:) ta gramatika to je jedno to se doladi dekuji vsem co mi pomohli rozchodil jsem to uz :) pred prectenim ale ted resim jinej problem

potrebuju udelat nejakou kontrolu jestli uz neni ulozeno to slovicko v databazy nenapadlo me nic jineho ze nez odesle formular tak se koukne do promene anlicky a tu srovna s databazi anglicky ale nevim jak na to zkousel jsem neco jako toto nepise zadnou chybu ale nefunguje :(

if ($anglicky==(mysql_query("select anglicky from slovicka")))
{
echo (" CHYBA toto slovicko je jiz ulozeno v databazi");
}
else
{
mysql_query("INSERT INTO slovicka (id, anglicky, cesky, lekce) VALUES ('', '$anglicky', '$cesky', '$lekce')");

echo ("Do databaze byli vlozeny tyto udaje:<br> ");
echo ("<br><b>Anglicky zadane slovicko:</b> $anglicky");
echo ("<br><b>Cesky zadane slovicko:</b> $cesky");
echo ("<br><b>Zadana lekce:</b> $lekce");

kdyby mi s tim nekdo pomohl byl bych mu moc vdecny :)
}
kurňa chlape, tohle fakt nejde, chybí ti byť základní pochopení principů. radši nejdřív ještě postuduj...

if ($anglicky==(mysql_query("select anglicky from slovicka")))
- tohle je naprosta blbost která nikdy nemůže dělat to, co požaduješ. neřeknu ti proč, dokud to nebudeš vědět sám tak nemá cenu, abys pokračoval...
Ses na nej moc zlej, ale mas pravdu :)
OBECNE
------
$slovicko = mysql_query("select slovicko from slovicka");
if (mysql_num_rows($slovicko)==1) echo "CHYBA, to tam uz je "

{
else
vloz ...

}
23k:
kdepak, kdepak... možná by pomohla nějaká podmínka... třeba ve WHERE, což? ;-)

chjo, expert radí...
Za předpokladu, že proměnná $anglicky obsahuje slovo zadané ve tvém formuláři, tak asi ne úplně pohledné, ale rozhodně funkční řešení je např. toto:

if (mysql_num_rows(mysql_query("SELECT anglicky FROM slovicka WHERE anglicky like '$anglicky'"))==1)
{
... existuje v DB
}
else
{
... vložení do DB
}
kua ... mam otevreny 4 fora najednou :/ ... voe neser ;p ... tohle je totiz desne zajimavy ...


http://www.jaknaweb.com/ukazuj.php?f=1&i=16866&t=16866
Dis tvoje reseni mi z nejakeho duvodu nechtelo fungovat nevim proc :(

23k tvoje reseni bez upravy taky nechtelo fungovat (jednalo se o to ze jsem tech slov stejnych uz tam mel vic :) )

OBECNE
------
$slovicko = mysql_query("select anglicky from slovicka");
if (mysql_num_rows($slovicko)>=1)
{
echo ("CHYBA, to tam uz je ");
}
else
{
/*vkladani*/
}




no jinak dekuji vsem uz jsem asi pochopil celej princip pokud se nemylim je to nacteni do promene vsechny anglicky slovicka kdyz pocet radku v te promene je roven nebo vetsi 1 tak pokracuje jako chyba chyba :)

ale nechapu jak to dela ze vraci pocet radku jen tech stejnych :(
hmmm tak pripominka 23k nejede to presne to co jsem nechapal jak to dela to nedela :) ale asi vraci celkovy pocet radku jinak diky
tak uz jsem to vymyslel dam sice pomoci vasi myslenky za kterou jsem vam vdecny

$slovicko = mysql_query("select anglicky from slovicka where anglicky like '$anglicky'");
if (mysql_num_rows($slovicko)>=1)
{
echo (" CHYBA toto slovicko uz tam je!");
}
else
{
/*vkladani*/
}


funguje to dobre diky vsem
mysql_num_rows vraci pocet radku na zaklade urcite podminky.

Treba takhle divej.. .budes mit v databaz 20x jmen a z toho treba 5x Novák.

Takze das treba toto

$sql = mysql_query(select jmeno from JMENA where jmeno = 'Novák');

a ted muzes zjistit pocet radku ktery ti to vratilo

echo mysql_num_rows($sql); // ukaze cislo 5

a v tvem pripade kdyz zjistujes jestli tam to slovicko neni tak si pak zavolas tuhle funkci a zjistis kolik tam tech slovicek neni a mel by vratit 0 abys tam mohl pridat dalsi ..jinak to znamena ze tam to slovicko je.


Predtim sem to mel spatne bez WHERE podminky..bze sem to rychle nabastlil a nepremyslel sem u toho...tohle mam uz jako rutinu... takze SORRY, priste budu o 5s dele premyslet .)
<OT>upozorňuju že autor výše uvedených příspěvků Dis nejsem já :D
to jen pro pořádek (a pro 23k)</OT>
23k diky za ten popis objasnil jsi mi to uplne dokonale omlouvat se nemusis proste jsi se seknul vubec nic se nestalo ba naopak jsem ti mozna vdecnejsi protoze jsem to aspon lepe pochopil (nemam rad kdyz mi jen nekdo napise toto vloz do sveho scriptu -> vsechno to chci znat :) )
;) kup si book

PHP a MYSQL - rozvoj webovych aplikaci II.vydani ..autor WELLING & naka zenska

stoji 800,- ale je skvela ...tam to vse mas