Autor Zpráva
Jack06
Profil
Dobrý den chtěl bych poprosit o radu. Mám formulář, ze kterého dostávám data do MySql, ale potřebuji následující věc a nevím jak na ni.
Ve formuláři mám výběr select a pak 18 x option které jsou např:

            <select name="posty">
            <option value="důstojník">důstojník</option>
            <option value="kapitán">kapitán</option>
            <option value="velitel">velitel</option>
            <option value="vojín">vojín</option>
 ....a další
           </select>



A potřebuju aby když si někdo vybere vojína, aby si ho již nikdo další vybrat nemohl, což znamená nějaká podmínka asi na mysql ne.?? Děkuji za rady
Jan Tvrdík
Profil
Jack06
Předpokládejme, že v PHP existuje pole všech dostupných možností získaných z DB ($poleVsechMoznosti). Dále existuje pole všech už vybraných možností ($poleVybranych).
foreach ($poleVsechMoznosti as $moznost) {
    if (in_array($moznost, $poleVybranych)) continue;
   echo "<option value=\"$moznost\">$moznost</option>\n";
}


Ale je možné to řešit i na úrovni MySQL s použitím NOT IN.
Jack06
Profil
aha takže do $pole všech možností naházím všech 19 postů a z mysql vytáhnu které posty tam jsou do $poleVybraných a z toho se mi vypíše $možnost a to budou ty co ještě nejsou v mysql jest tak??
Jack06
Profil
Takto mi to nefunguej pls help:

               $poleVsechMoznosti = array ("Elfština", "Drahé kameny", "Přeměňování");
               mysql_query("SET CHARACTER SET utf8");
               $dotaz=mysql_query("SELECT * FROM profesori");
               while($vysledek = mysql_fetch_array($dotaz)):
               $poleVybranych = array($vysledek['predmet']);
               foreach ($poleVsechMoznosti as $moznost) {
               if (in_array($moznost, $poleVybranych)) continue;
               echo "<option value=\"$moznost\">$moznost</option>\n";
                                                        }
               endwhile;
Mastodont
Profil
$poleVybranych = array($vysledek['predmet']);

To ti nevybere všechny předměty, ale jen jeden, protože mysql_fetch_array načítá vždy jen jeden řádek.
Jan Tvrdík
Profil
Nejsem si jist, zda to zcela chápu, ale zkus tohle:
$poleVsechMoznosti = array ("Elfština", "Drahé kameny", "Přeměňování");
$poleVybranych = array();

mysql_query("SET CHARACTER SET utf8");
$dotaz = mysql_query("SELECT * FROM profesori");

while($vysledek = mysql_fetch_array($dotaz)) {
	$poleVybranych[]= $vysledek['predmet'];
}

foreach ($poleVsechMoznosti as $moznost) {
	if (in_array($moznost, $poleVybranych)) continue;
	echo "<option value=\"$moznost\">$moznost</option>\n";
}
Jack06
Profil
Ano děkuji to by mohlo být ono

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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