Autor Zpráva
jeniksoft
Profil
Dobrý den,
mám takový problém
na začátky kódu si vytvoím funkci:
function kateg()
{
switch ($kategorie) {
case 1:
echo ("Lidé - Moji známí");
break;
case 2:
echo ("Lidé - Celebrity");
break;
case 3:
echo ("Lidé - Významné osobrnosti");
break;
case 4:
echo ("Lidé - Ostatní");
break;
case 5:
echo ("Zvířata - Domácí mazlící");
break;
case 6:
echo ("Zvířata - Užitková zvířata");
break;
case 7:
echo ("Zvířata - Divoká zvěř");
break;
case 8:
echo ("Zvířata - Ostatní");
break;
case 9:
echo ("Věci - Knihy");
break;
case 10:
echo ("Věci - Auta");
break;
case 11:
echo ("Věci - Ostatní");
break;
}
}

a pak jí takto volám:
if((!empty( $_GET['kat']))&&($_GET['kat']*1>0))
{
$kat=$_GET['kat'];
$spojeni=mysql_connect("mysql.hustej.net","hn_pomlouvacka","kilokilo");
mysql_query("SET CHARACTER SET UTF8", $spojeni);
mysql_query("SET NAMES SET UTF8", $spojeni);
$co="SELECT id, cil, text, od, kategorie FROM pomluvy where kategorie=$kat order by id desc";
$navrat=mysql_db_query("hn_pomlouvacka", $co, $spojeni);
while (list($id, $cil, $text, $od, $kategorie) = mysql_fetch_row($navrat))
{
echo('<div class="post">');
echo('<h1 class="title">'.$cil.'</h1>');
echo('<div class="entry">');
echo('<p>'.$text.'</p>');
echo('<p class="meta"><table><tr><td width="50">Posted by '.$od.'</td>');
echo('<td>');

kateg();
echo('</td>');
echo('<td align="right">');
if ($od==$_SESSION['name'])
{
echo('   <a href=delete.php?id='.$id.'>X</a>');
}
echo('</td></tr></table>');
echo('</p>');
echo('</div>');
echo('</div>');
}
}

No a ono to prostě ne a ne fungovat, prostě mi to tu kategorii nevypíše.
Majkl578
Profil
musis tu promennou do te funkce nejak dostat:

function kateg($catg)


a

echo('<p class="meta"><table><tr><td width="50">Posted by '.$od.'</td>');
echo('<td>');

kateg($kategorie);
echo('</td>');


dal nepouzivej echo jako funkci, ale jako konstrukt:
ne
echo('string')
ale
echo 'string';
jeniksoft
Profil
Tak jsem si to poeditoval jak jsi řekl, ale pořád nic...
pEeLL
Profil
$_GET['kat']*1 kcemu je *1
mysql_query("SET NAMES SET UTF8", $spojeni); uz to mas o radek vys a navic se to primo na php nedoporucuje
misto mysql_db_query se uz taky pouziva jen mysql_query
$spojeni=mysql_connect("mysql.hustej.net","hn_pomlouvacka","kilokilo"); doufam ze ty prihlasovaci udaje jsou upravene jinak napis nejakemu modovi at ti to smazne


$kat=$_GET['kat'];
kdyz si tady vypises echo $kat; tak je to vporadku?
jeniksoft
Profil
Jo, ono to funguje, jen nefunguje to aby vypisoval jmeno kategorie....to jsem teď chtěl prřidat... ale to s tím nemá nic společného, to je jen pro určení toho, která kategorie se má vypisovat...
jeniksoft
Profil
a *1 je k tomu aby tam někdo třeba nevloži nějaký písmenka... protože když písmenka vynásobím 1x tak vznikne 0 a to je zakázaný v podmínce...
pEeLL
Profil
function kateg($kategorie)

kateg($kategorie);

misto toho *1 - (int)$_GET['kat']
tiso
Profil
jeniksoft - skôr než s budež snažiť niečo vytvoriť, mal by si sa najprv niečo naučiť. Takýmto spôsobom s teba programátor nebude...
jeniksoft
Profil
1. v *1 nevidím jedou chybu, přesto děkuji.
2. Radíte mi s něčím co mi funguje
3. tiso - jestli ty jsi programátor, mohl by jsi mi poradit s mím opravdovým problémem,což jest proč mi nefunguje vypisování jména kategorie...
pEeLL
Profil
jeniksoft
vazne se ti kategorie nezobrazi ani kdyz mas tyhle dva radky takto?
function kateg($kategorie) 

kateg($kategorie); 


potom me napada jen ze si zte databaze do promene $kategorie vytahnes nejakou blbost
jeniksoft
Profil
Ještě bych dodal: tiso - stačí že sem vytvořil tohle http://pomlouvacka.hustej.net na to abych na toto forum mohl dat problem bez toho aby mě někdo kritizoval?
jeniksoft
Profil
Tak... vyřešil jsem to tak že jsem prostě oddelal funkci a šoupnul jsem to tam normálně...
tiso
Profil
jeniksoft - s prolémom ti poradil Majkl578 i pEeLL, nechcel som sa opakovať. A preto, že si nebol schopný pochopiť riešenie od Majkl578, som napísal to, čo som napísal. Podľa motta, čo máš na tej stránke, mám nasvoj názor právo, alebo nie?
jeniksoft
Profil
pEeLL
A víš že jo?
To tady ještě nepadlo... Děkuji moc... Zajímavé... Ale stále neodvolávám že *1 je stejně dobré řešení jako (int):-)
peta
Profil
jeniksoft
*1 prevadidi na cislo, ale i typ real
1.2345 * 1 = 1.2345
int(1.2345) = 1
V tomto pripade na tom asi nesejde, ale.

Vyhoda je to pak pro programatory, kteri prijdou po tobe, ze vi, ze prevadis cislo na integer a kdyby se tam dostala nahodou realna hodnota, ze je asi neco spatne a neco rozbili upravami :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: