| Autor | Zpráva | ||
|---|---|---|---|
| Adam501 Profil |
#1 · Zasláno: 29. 6. 2012, 18:59:20
Ahoj.
Jde nějak udělat, aby se podmínkou if vyhledaly všechny položky z formuláře(popř. řádky v databázi), které mají stejnou hodnotu?? Přemejšlím nad tím už asi půl hodiny, ale nenapadá mě žádná použitelná formulace podmínky... :) Adam. |
||
| Tori Profil |
#2 · Zasláno: 29. 6. 2012, 20:19:54
K těm položkám z formuláře - koukněte na funkci array_intersect.
|
||
| AM_ Profil |
#3 · Zasláno: 29. 6. 2012, 22:42:47
Adam501:
„vyhledaly všechny položky z formuláře(popř. řádky v databázi)“ to je dost podstatný rozdíl, obojí se řeší dost jinak :) řádky z databáze - WHERE, položky z formuláře - nejspíš for nebo foreach každopádně IF na to nebude ta správná konstrukce. |
||
| Adam501 Profil |
AM:
Áha. Upřesním: mám formulář o 6 polích a na té stránce, kam ho odesílám, chci aby se mi ukázaly všechny položky, které dostaly stejnou hodnotu. Příklad: A - 6 B - 8 C - 6 D - 12 E - 12 F - 12 Na další stránce se má ukázat: A C D E F A u každého zadávání dalšího sloupce v databázi. Je to asi trošku složité, dám oba sloupce do původního formuláře, ale moje představa podmínky byla: if(2 < proměnných = to samé) {echo "názvy všech shodných proměnných s dalším fomrulářem"}Ale je to asi fakt zbytečné složitý. |
||
| juriad Profil |
#5 · Zasláno: 1. 7. 2012, 13:16:16
function minTwo($val) {
return $val >= 2;
}
$gety = array('a'=>$_GET['a'], 'b'=>$_GET['b'], ....); // ulozi hodnoy do pole indexovane polozkami
// mozna jeste:
// $gety2 = asort($gety);
// a nadale pracovat s $gety2
$duplicity = array_keys(array_filter(array_count_values($gety), "minTwo")); // spocita cetnost hodnot, zachova jen ty ktere se opakuji, zahodi cetnosti
$vysledek = array_keys(array_intersect($gety, $duplicity)); // zachova z pole jen ty ktere maji hodnoty v poli duplicity, zahodi hodnotypro podrobnosti a dokumentaci funkcí na ně prostě klikni |
||
| Adam501 Profil |
#6 · Zasláno: 1. 7. 2012, 13:45:44
juriad:
To je ono. Díky, četl jsem ten článek o array_intersect ale nepochopil jsem ho uplně správně. |
||
|
Časová prodleva: 13 let
|
|||
0