Autor Zpráva
Tomas B.
Profil *
Zdravim, jakym zpusobem muzu oddelit urcity pocet poli, kdyz neni predem znamo kolik bude poli?

Napr.

foreach ($pole as $key => $value){

if ($pole[$key] == 'ano'){
}
}

Mohl bych to treba vyresit takto:

echo "$key".("nejaky oddelovac"); //ale tohle je podle meho nazoru blbost, protoze je zbytecne oddelovat jednu hodnotu.
jonge
Profil
www.php.net/implode ???
Retal
Profil
A čeho chceš přesně docílit?
Tomas B.
Profil *
jonge

o te funkci vim, ale ja potrebuji neco jineho, viz nize.
Tomas B.
Profil *
Retal

No potrebuji docilit toho, aby retezce poli byly oddeleny oddelovacem.

Napr.

$pole[neco1]\n$pole[neco2]\n "oddelovac" \n$pole[neco3]\n$pole[neco4] atd

Ale pozor, nekdy oddelovac bude patrit i za $pole[neco1], protoze $pole[neco2] se nebude rovnat podmince.
jonge
Profil
Tomas B.
Tak moc jsem to nepochopil :( zkus to vysvětlit třeba na nějakém příkladu...
Tomas B.
Profil *
jonge

cs sk de eu |visa

nebo

sk eu | maestro
Retal
Profil
A proč chceš vůbec mít nesouvisející data v jednom poli?
Proč ne třeba
$pole['visa'][0] = 'cs';

$pole['visa'][1] = 'sk';
$pole['maestro'][0] = 'sk';
$pole['maestro'][1] = 'eu';
Tomas B.
Profil *
Retal

Dobre, takze budu mit nasledujici:

while($ukazZaznam = mysql_fetch_array($query, MYSQL_ASSOC)) {

$pole1['visa'] = $ukazZaznam['visa'];
$pole1['maestro'] = $ukazZaznam['maestro'];

$pole2['cs'] = $ukazZaznam['cs'];
$pole2['sk'] = $ukazZaznam['sk'];
$pole2[eu'] = $ukazZaznam['eu'];

// a jak docilim toho, abych mel $pole1|$pole2 ?

}
tiso
Profil
Tomas B.
Nie je mi jasné kvôli čomu tie položky potrebuješ spájať - ten kód má byť vo funkcii alebo čo? Použi viacrozmerné pole, ako Ti naznačil Retal. Druhá možnosť je použiť serialize/unserialize.
Tomas B.
Profil *
tiso

Protoze potrebuji oddelit zno od plev, t.j. staty odplatebnich karet. No jo, ale to bych musel vedet, jak se s vicerozmernym polem pracuje.

Nechce se mi delat nasledujici:

<?
echo "".$ukazZaznam['visa']."\n";
echo "".$ukazZaznam['maestro]."\n";
echo "|\n";
echo "".$ukazZaznam['cs]."\n";
echo "".$ukazZaznam['sk]."\n";
echo "".$ukazZaznam['eu]."\n";
?>

Vysledek je nasledujici " visa maestro|cs sk eu
tiso
Profil
Tomas B.
Čo máš vlastne v tej databáze? Lebo keď naraz vyberáš štáty a platobné karty tak odkiaľ to vlastne vyberáš?
Tomas B.
Profil *
tiso

Z databaze to taham spojenim dvou tabulek (zaznamy a legenda), v tabulce "zaznamy" jsou sloupce id_zaznamu a nazev, v druhe tabulce "legenda" jsou sloupce "id_legenda, id_zaznamu, visa, maestro, cs atd, takze vysledek dotazu vypada nasledovne:

1|Neco|2|1|ano|NULL|NULL
2|Neco2|1|2|NULL|NULL|ano
tiso
Profil
Tomas B.
No pokiaľ v DB miešaš jablká a hrušky, tak sa potom nediv že vo výsledku máš ovocný šalát... Máš 2 možnosti: spôsob aký si nahrubo napísal o pár príspevkov vyššie (10:36:45), alebo zmenu v databáze...
Tomas B.
Profil *
tiso

A ta zmena databaze by vypadala jak?
koudi
Profil
Tomas B.
Např. rozdělit nesouvisející data do více tabulek.
Tomas B.
Profil *
koudi

Ale to mam i v tuto chvili, mam hlavni tabulku "zaznamy" a vazebni tabulku "legenda". Pokud budu mit hlavni tabulku "zaznamy" a dve vazebni tabulky "staty" a "karty", tak se stejne pri dotazu dostanu k uplne stejnemu vysledku, jak to mam ted.
tiso
Profil
Tomas B.
Môžeš pridať stĺpce s informáciou koľko buniek z kariet a štátov máš vyplnených, alebo môžeš natvrdo pridať stĺpec oddelovač medzi ne s neNULLovou hodnotou... Daľšia možnosť je vkladať do databázy nejakú hodnotu miesto NULL, aby si mal stály počet záznamov... Optimálne nie je ani jedno z týchto riešení...
Tomas B.
Profil *
tiso

Optimálne nie je ani jedno z týchto riešení...

Diky, to me staci. :o)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0