Autor Zpráva
David123
Profil *
Ahoj,
mám následující kód:

$sloupec = 'nazevsloupce';
if(ereg ("(, |^){$r['title']}(, |$)", $record[''.$sloupec.''])) {
...
...
...
}

Problém je, že tento zápis pokaždé vrací false a kód uvnitř závorek se neprovede.

Pokud provedu zápis, kdy místo proměnné zapisuji přímo hodnotu, vše je v pořádku. Rovněž vypsání proměnné mimo funkci je ok:
//v pořádku
if(ereg ("(, |^){$r['title']}(, |$)", $record['nazevsloupce'])) {
...
...
...
}

//v pořádku
echo $record[''.$sloupec.''];



Nevíte prosím, jak správně zapsat výše uvedený příklad tak, aby fungoval? Díky
Sir Tom
Profil
David123:
Ahoj, v tom prvním kódu v podmínce jsou dva apostrofy vedle sebe? Pokud ano, tak index pole přepiš na:
$record["'".$sloupec."'"]

(Apostrof mezi uvozovkami.)

Řekl bych to takhle mělo být správně. Nevím, proč echo $record[''.$sloupec.'']; funguje, ale výraz podmínce nikoliv.
David123
Profil *
Tak to taky bohužel nefunguje. U tohoto zápisu nefunguje ani echo. V podmínce bez funkce zápis se dvěma apostrofy vedle sebe funguje, například:
if ($record[''.$sloupec.'']==1) {
.
.
.
}


Při podmínce s funkcí ereg() už nikoliv. Nějaké další tipy, čím by to mohlo být?
Sir Tom
Profil
David123:
Možná bloudíme kolem neviditelného nepřítele. Na manuálních stránkách http://cz.php.net/function.ereg se píše, že fce ereg se nedoporučuje používat - stálo by za zvážení se podívat po nějakém jiném řešení...
Alphard
Profil
David123:
echo $record[''.$sloupec.''];
Blbost, kde jste přšel na ty apostrofy? Normálně $record[$sloupec] by mělo fungovat, chyba bude zřejmě jinde, nějaký překlep?

Na manuálních stránkách http://cz.php.net/function.ereg se píše, že fce ereg se nedoporučuje používat
Vše z rodiny ereg_ je deprecated (i když dosud funkční), používejte alternativy z rodiny preg_, tady konkrétně preg_match().
David123
Profil *
Překlep to nebyl, ale moje nepozornost. Tento kód je ve funkci a proměnnou $sloupec jsem neměl zpřístupněnou. Díky všem, kteří se pokoušeli problém vyřešit :-)

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:

0