Autor Zpráva
loulie
Profil
Dobrý den, chtěl bych udělat, abych mohl určit, do jaké tabulky se má obsah odeslat. Uvedu příklad...
Mám <select> formulář. Napíšu nějaký obsah, poté vyberu určitou "skupinu" ze select formuláře a dám odeslat. Obsah se odešle do kategorie, která byla zvolena v <select>.
Konkrétně:

<option value="clanky">Hlavní</option>
<option value="clhry">Hry</option>
<option value="clfavourite">Zajímavosti</option>


Dále mám příkaz pro zapsání do Databáze clanky. Ale potřeubji, aby když zvolím třeba clhry, aby se to zapsalo do clhry. Za případné odpovědi děkuji :-)
Joker
Profil
loulie:
Mám <select> formulář.
To není formulář, ale jen formulářový prvek. Formulář je celý "kontejner" takových prvků.

Dělá se to tak, že prvku dáte jméno a kód po odeslání formuláře (tj. to co je v atributu action značky <form>) si pak ten prvek převezme a zjistí jeho hodnotu.
loulie
Profil
Ehm, to je na mou hlavu kapek těžký, chápu to správně? =>

<select name="kategorie">
<option value="clanky">Hlavní</option>
<option value="clhry">Hry</option>
<option value="clfavourite">Zajímavosti</option>
</select>


A potom musím napsat "nějak" kod, který odešle obsah do určené DB, jsem schopnej to sepsat na jednu kategorii, ale na víc ne. Přemýšlel jsem i o řešení, že bych měl na každou kategorii zvlášt formulář, ale to by jich pak bylo moc a byl by v tom nepořádek. Prostě to co nevím, je jak napsat "kontrolu / podmínku", která zjistí, co je vybráno a odešle to do vybrané kategorie.
Joker
Profil
loulie:
jsem schopnej to sepsat na jednu kategorii, ale na víc ne
Mno, jestli jste schopný v daném serverovém jazyce naprogramovat uložení do databáze, snad alespoň ty nejzákladnější znalosti máte. A mezi nejzákladnější znalosti bych řadil i schopnost napsat jednoduchou podmínku (Pokud hodnota kategorie je "clanky",...), ideálně i konstrukci typu switch-case v daném jazyce.

Takže kde přesně je problém?
loulie
Profil
Tak teď jste mi vyrazil dech, tu podmínku budu psát asi pomocí if ne? A o nějaké switch-case, se přiznám, nemám ani páru
panther
Profil
loulie:
tu podmínku budu psát asi pomocí if ne?
ano.

A o nějaké switch-case, se přiznám, nemám ani páru
tak studuj, hledej. Nebo manuál nefunguje?
loulie
Profil
panther:

tak studuj, hledej. Nebo manuál nefunguje?
Moje angličtina není moc na úrovni, jsem žákem 8 třídy (co si budeme povídat), jistě existuje Google překladač, ale ta kvalita. Jinak, kouknu na to if, vím že sem už jednou takovou podminku psal, jenom si nejsem jistej, kde a proč :-P

Nemohlo by to být nějak takto? Konkrétně k mému kódu...

if ($kategorie="clhry"){
$editor1=$_POST['editor1'];
$cara=$_POST['cara'];
mysql_query("INSERT INTO clhry (....) VALUES (....)");
echo mysql_error();
}
loulie
Profil
Už to funguje :-) Ale objevil se další problém - I když je zvolená kategorie např. clanky, tak se to odešle do všech
panther
Profil
if ($kategorie=="clhry")

porovnává se dvěma rovnítky, jedním se přiřazuje. Pokud se proměnná kategorie bere z formuláře, používej $_POST['kategorie'], resp. $_GET['kategorie'].
loulie
Profil
Tak teď jsem úplně vedle, nemohl by jste mi to prosím napsat?
Popřípadě okomentovat tento kód:

include('pripojeni.php');
if(isset($_POST['odeslat'])) {
if (!empty($_POST['editor1'])) {
$kategorie=$_POST['clanky']
$editor1=$_POST['editor1'];
$cara=$_POST['cara'];

mysql_query("INSERT INTO clanky (time, editor1, cara) VALUES (NOW(),'".($_POST['editor1'])."', '".($_POST['cara'])."')");
echo mysql_error();
}
}
Joker
Profil
loulie:
Moje angličtina není moc na úrovni, jsem žákem 8 třídy (co si budeme povídat)
Tak bych si sehnal nějakou knížku pro programátorské začátečníky, tohle se bude v programování hodit obecně, všechny (dobře navržené) strukturované programy se skládají jen ze tří programovacích struktur: posloupnost (sekvence), podmínka/větvení (selekce) a cyklus (iterace), takže tímhle je dobré začít :-)

Pokud jde o konstrukci switch-case, tak to je vpodstatě taková zkratka pro situaci, kdy mám nějakou proměnnou, ta může mít více hodnot a pro jednotlivé hodnoty chci provádět různé operace. Jde to samozřejmě napsat i řadou příkazů if - elseif - else, ale switch-case je přehlednější a kratší.
Příklad:
if($promenna == 1) 
  { /* kód pro první podmínku */}
elseif($promenna == 2) 
  { /* kód pro druhou podmínku */}
elseif($promenna == 3) 
  { /* kód pro třetí podmínku */}
else
  { /* kód pokud není splněna žádná z podmínek */}

se dá přes switch-case napsat takto:
switch($promenna)
{
  case 1:  /* kód pro první podmínku */
    break;
  case 2:  /* kód pro druhou podmínku */
    break;
  case 3:  /* kód pro třetí podmínku */
    break;
  default:  /* kód pokud není splněna žádná z podmínek */
}
loulie
Profil
Ahaa... takže bych to měl napsat následovně?:

if($kategorie == clanky) { 

if(isset($_POST['odeslat'])) {
if (!empty($_POST['editor1'])) {
$kategorie=$_POST['clanky']
$editor1=$_POST['editor1'];
$cara=$_POST['cara'];

mysql_query("INSERT INTO clanky (time, editor1, cara) VALUES (NOW(),'".($_POST['editor1'])."', '".($_POST['cara'])."')");
echo mysql_error();
}
}
}

elseif($kategorie == clhry) 
  { ....}
elseif($promenna == clfavourite) 
  { ....}
else
  { ....}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0