Autor Zpráva
Adam501
Profil
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
K těm položkám z formuláře - koukněte na funkci array_intersect.
AM_
Profil
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
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 hodnoty

pro podrobnosti a dokumentaci funkcí na ně prostě klikni
Adam501
Profil
juriad:
To je ono. Díky, četl jsem ten článek o array_intersect ale nepochopil jsem ho uplně správně.

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: