Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: caesar 15. 04. 2013, 08:55:50
-
hi all,
potreboval by som malicku pomoc s prikazom foreach v php. niesom programator tak ma prosim nezastrelte.
<?php foreach ($this->userfields['fields']->zip as $field) {
if (!empty($field['value'])) {
echo $field['title'] . $field['value'];
}
}
?>
mam tento prikaz, ktory mi vypise vsetky nazvy a hodnoty poli. konkretne mi to vypise tieto hodnoty:
nazov pola hodnota
krstné meno blablauser
priezvisko blablauser
email blablauser@blabla.sk
atd., atd.
ako to mam ale zadat, ked chcem aby mi to vypisalo iba hodnotu jedneho konkretneho pola? napr. iba email?
-
A to vybiras uzivatele z tabukly v db? Pokud ano, proc takto? Nebo z nejakeho souboru???
Zkus se kouknout do doku -
nebo do jine ,,,
-
ano, vybera zo z db. jedna sa o usek kodu z virtuemartu a ako som spominal vyssie, niesom programator, iba som nieco funkcne v kode nasiel, chcem to mierne upravit a pouzit. preco takto, netusim :(
ale asi to taha hodnoty z tejto tabulky, resp. vypis je presne podta tohoto... samozrejme na konkretneho uzivatela
http://imageshack.us/f/14/28408336.jpg/
-
ako to mam ale zadat, ked chcem aby mi to vypisalo iba hodnotu jedneho konkretneho pola? napr. iba email?
Pokud je to pole, tak použij index. Je ale otázka, jestli to je stabilně pojmenované, nebo jen naházené do pole v nějakém pořadí. Pokud pojmenované:
$this->userfields['fields']->zip['email']['value']
Jenže ono to taky pole být nemusí, může to být iterátor
$this->userfields['fields']->zip->email['value']
A nebo to může být prostě hozené do pole a jednou mít takový a jednou onaký index:
$this->userfields['fields']->zip[$nejake_menici_se_cislo]['value']
Takže jak napsal tommm, podívej se do dokumentace. Ono by třeba mohlo stačit změnit ten dotaz, kterým to z databáze vytáhneš - protože filtrovat by se ve většině případů mělo už v databázi, ne ve skriptech.
Tzn. něco jako $query->select('*') nahradit za $query->select('email')
-
Koukl jsem na obrázek. Tak ten sql budeš muset filtrovat výběrem správného sloupce (value) a podmínkou (name LIKE 'email') a ve výsledku to zřejmě je jen očíslované pole, nebo iterátor, který musíš projít postupně. Takže si uprav SQL dotaz a následně pak jeho zpracování.
-
velmi sa ospravedlnujem, ale postol som tu uz moj pokus...
tu je originalny prikaz
<?php foreach ($this->userfields['fields'] as $field) {
if (!empty($field['value'])) {
echo $field['title'] . $field['value'];
}
}
?>
co ted?
-
co ted?
To samé, jen si odmyslet to "->zip" tam kde je.
-
pouzij na tu promennou var_dump, at vidis strukturu
nejlepe takhleprint '<pre>'; var_dump($promenna); print '</pre>';
-
velmi sa ospravedlnujem, ale postol som tu uz moj pokus...
tu je originalny prikaz
<?php foreach ($this->userfields['fields'] as $field) {
if (!empty($field['value'])) {
echo $field['title'] . $field['value'];
}
}
?>
co ted?
Pokud resis podobny problem poprve, tak to bude mozna i bolet :) Kazdopadne bych ti radil si projit odkaz, ktery jsem ti postnul a trosku se snazit pochopit logiku a syntax - pokud to nepouzivas denne a casto, netreba si za kazdou cenu pamatovat - staci vedet kde hledat a pripomenout si to. Ulehcis si zivot.
Pokud to mas resit nahodile a chces jen reseni a nezabejvat se s tim dal, tak radim dat dohromady 1 poradny koment, ve kterem poskytnes priklad zdroje dat (struktury tabulky) a reknes co to ma delat a hodit za vysledek a verim, ze ti to nekdo vyresi, protoze je to trivka.
Treba i ja, ale dostanu se k tomu az vecer, takze ...
-
mno... potrebujem to vyriesit jednorazovo, pokusal som sa zbezne si nastudovat syntaxy array, ale kedze tu pisem a prosim o pomoc tak mi to bolo prd platne :(
jedna sa o virtuemart ako som vyssie pisal a subor invoice_order.php, ktory sa stara o strukturu faktury. z jeho kodu sa potom generuje pdf pomocou tcpdf. postol by som tu aj cely zdrojak suboru, ale vacsinou je to len html table a echo (echa) na jazykoy subor (proste len vypise text pomocou echo JText::_).
vramci tohto suboru je aj tento prikaz, ktory som tu uz daval ale pre prehladnost ho tu dam znova (ospravedlnujem sa za zmatok)
<?php foreach ($this->userfields['fields'] as $field) {
if (!empty($field['value'])) {
echo $field['title'] . $field['value'];
}
}
?>
tento kod mi vyhodi toto:
E-Mail blabla@mail.com
Krstné meno Krstné meno ke
Priezvisko Priezvisko
Adresa 1 Adresa 1
PSČ 04501
Mesto Mesto
Štát Slovakia
Telefón 055/123456
Mobilný telefón 0905123456
chcem dosiahnut to, aby som pravdepodobne nejako modifikovanym vyssie postnutym prikazom, popripade inym, vedel vytiahnut iba napriklad value emailu, tzn. toto blabla@mail.com
dalsie informacie by som rad podal, ale kedze sa v tom nevyznam, neviem co je pre pochopenie tohto mojho problemu relevantna informacia
-
<?php
foreach ($this->userfields['fields'] as $field)
{
if (!empty($field['value']))
if ($field['title']=='E-Mail')
echo $field['title'] . $field['value'];
}
?>
-
funguje :)
dakujem, dakujem, dakujem vsetkym
-
este taka prkotina, ked mam v title interpunkcne znamiena, tak mi to title nechce brat. existuje na to nejake jednoduche riesenie?
-
vyriesene. este raz dakujem za pomoc vsetkym.
LOCK