Hirdetés
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz Tele von Zsinór #10350 üzenetére
Ez így jónak meg elegánsnak tűnik. Került bele egy typo: $val után $var (csak ha valaki elsőre nem venné észre, azért jelzem).
Sk8erPeter
-
MODERÁTOR
válasz Sk8erPeter #10349 üzenetére
Igen. Ezt tudom. De van egy tömböm amibe tárolom a felhasználók adatait. És kiíratáskor, nem a nézetemben akarom átkonvertálni. Valahogy foreach -csel végig kéne rajta rohanni?
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Sk8erPeter
nagyúr
Ez speciel szerintem még beleférne, hogy a nézetnél konvertáld, mert végül is csak azt határozod meg, hogy más formátumban szeretnéd megjeleníteni. Gondolom a megjelenítéshez amúgy is végigmész a tömbön, és amikor kiíratod, oda pakolhatnád ezt. De ha már korábban szeretnéd konvertálni, akkor már eleve a query-t úgy kéne megírni, vagy rögtön a lekérés után konvertálni, amikor végigszaladsz az eredményhalmazon, és berakod mondjuk egy tömbbe őket (ha végigszaladsz). Nem ismerem a rendszeredet, úgyhogy ennyi infóból nehéz lesz megmondani, hogy hol csináld mindezt.
[ Szerkesztve ]
Sk8erPeter
-
MODERÁTOR
válasz Sk8erPeter #10353 üzenetére
Köszi!
Végül így csináltam. Ha azt mondod, hogy belefér akkor ok. Így egyszerű is volt, mert az oldal beállításait az elején kigyűjtöm egy tömbbe, és ott tárolom az idő + dátum formátumot is.
mobal,
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Sk8erPeter
nagyúr
Tulajdonképpen megközelítés kérdése, hogy belefér-e, lehet, hogy szebb lenne úgy, hogy a View-ban ténylegesen mindent csak szimplán kiíratsz, amilyen adatot kapsz, szóval lehet, hogy ez most kényszermegoldás.
De melyik rész nem sikerült, hogy a korábbi állapotába kotorj bele, ne a megjelenítésben kelljen machinálni?Sk8erPeter
-
MODERÁTOR
válasz Sk8erPeter #10355 üzenetére
Adatbázisból kiveszem az adatokat ugye, és egy tömbben tárolom az összes dolgot amit a nézetnek a végén "bindelek", majd kinyomom a kimenetre. Na most a tömbben vannak tömbök. És lövésem sincsen, hogyan tudnék végigrohanni rajtuk és konvertálni.
mobal,
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Sk8erPeter
nagyúr
Előttem cucka leírta a megoldást, de tovább fejtegetve a dolog egymásba ágyazott ciklusokkal könnyen megoldható. Gondolj bele, hogy van egy tömböd, amikor azon végigmész egy foreach-csel, ekkor ennek a tömbnek az elemei szintén tömbök lesznek, amin szintén végigmehetsz egy foreach-csel. Most ez kétdimenziós tömb volt, de a komplexitás tetszőlegesen fokozható.
Teccikéjteni?Sk8erPeter
-
Sk8erPeter
nagyúr
válasz fordfairlane #10359 üzenetére
"flat módon tárolva, flat módon átadva a nézetnek"
Mit értesz "flat" mód alatt?Sk8erPeter
-
fordfairlane
veterán
válasz Sk8erPeter #10360 üzenetére
Relációs táblában. És persze, hogy a nézetben ne kelljen komplex funkciót implementálni (rekurzió), ezért a nézet sem egymásba ágyazva kapja az objektumlistát.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
válasz fordfairlane #10361 üzenetére
És mit tárolsz "flat" módon relációs táblában? Még nem jön át.
Mi a baj azzal, ha egymásba ágyazott listát kapsz a nézetben?Sk8erPeter
-
fordfairlane
veterán
válasz Sk8erPeter #10362 üzenetére
Maga a relációs tárolás a flat adatszerkezet.
Mi a baj azzal, ha egymásba ágyazott listát kapsz a nézetben?
Az a baj, hogy a nézetnek kell rekurzívan kiszedni a node-okat, és adott esetben komplex döntéseket hozni, hogy hogyan jelenítse meg őket.
[ Szerkesztve ]
x gon' give it to ya
-
cucka
addikt
válasz Sk8erPeter #10362 üzenetére
A "Flat" tárolás az azt jelenti, hogy az adatstruktúra egy vektor - köznapi nevén egy 1 dimenziós tömb. Lehet bármilyen bonyolult adatstruktúrád, ha elég mélyre ásol, akkor előbb-utóbb megtalálod azt a pontot, ahol 1 dimenziós adattárolási struktúra lesz belőle, mivel a számítógép memóriája és a diszk is ilyen "flat" adatstruktúra. A legegyszerűbb példa a láncolt lista (egy nem feltétlenül vektor adatsturkúra), amit programozás órán implementáltatok úgy, hogy az adatok a memóriában vannak (ami ugye egy vektor)
Egymásba ágyazott listákkal kétféleképpen lehet bánni:
- amikor pontosan ismered az adatstruktúrát és az egymásba ágyazás szintjét. Ilyenkor érdemes dupla (tripla) ciklussal bejárni az egészet a view részben. Például ki szeretnéd írni az összes júzer nevét és alá az összes hozzászólásukat - ez egy 2 szintes adatstruktúra, dupla for ciklus.
- tetszőleges mélységű a struktúra: ilyenkor érdemes úgy megírni a bejáró eljárásodat, hogy az meg tudjon hívni egy függvényt minden egyes elemre: kiírás esetén a függvényt a view-ban definiálod és kiírja az adott elemet. Ezt az elgondolást lehet használni például fa adatszerkezetekre. -
MODERÁTOR
válasz Sk8erPeter #10355 üzenetére
Megoldottam. Előbb feldolgoztam az adatot, majd átadtam a nézetnek. Bár egy foreach -csel több, még mindig egyszerűbb megoldásnak találtam.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
MODERÁTOR
válasz fordfairlane #10363 üzenetére
Pont ezt akarom elkerülni, hogy a nézet bármit is csináljon. Nem akarom, hogy egy szemetet kapjak vissza valami előre nem várható ok folytán.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
CSorBA
őstag
Ilyenkor olvasgatva titeket, mindig rájövök, hogy mennyi mindent kellene megtanulnom
-
-
MODERÁTOR
Lényegében unix timestamp -ként tárolom a dátumot. Ez azért jó mert így ugye úgy konvertálom ahogy akarom. A nézetnek egy tömböt adok át, és az egyik ilyen tömb tartalmazza a felhasználó adatait, a regisztrálás dátumával. Kiszedem az adatbázisból a kellő adatokat - tömbként és azon belül kéne még "elő" konvertálni a megfelelő beállítás szerint.
Remélem érthető voltam
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
-
-
Peter Kiss
őstag
Az MVC-ben gyakorlatilag a Controller mindig a legvékonyabb elem.
Egyébként a dátumos mizériának az egyetlen használható feloldása szerintem, ha használjuk a PHP DateTime osztályát, esetleg ezt felhasználva írunk egy használhatóbbat. Mikor fetcheljük az adatokat, már akkor érdemes egy ilyen objektumpéldányt létrehozni az egyes dátumoknak, és utána könnyű dolgunk lesz velük, bárhol is akarjuk mókolni.
-
trisztan94
őstag
Sziasztok! Történetfeltöltőrendszert fejlesztek, fájlokat hozna létre. itt a PHP-m:
<?php
session_start();
if (!isset($_SESSION['guest']))
{
$felh = $_SESSION['user'];
}
else if (isset($_SESSION['guest']))
{
$felh = "Vendég";
}
$cim = $_POST['cim'];
$torzs = $_POST['torzs'];
$datum = getdate();
$dir = '../php/biralas_tortenetek/';
$dots = "..."
$fh = fopen($dir . $felh . $datum[year] . $datum[mon] . $datum[mday] . '.txt','w');A $fh sor az a 17. sor.
Ilyet dob ki nekem:Parse error: syntax error, unexpected T_VARIABLE in /data/e/r/eroticplaza.hu/web/php/upload_story_exec.php on line 17
Sehogy sem tudok rájönni mi a baja
Köszi!
https://heureka-kreativ.hu
-
Peter Kiss
őstag
válasz trisztan94 #10375 üzenetére
$datum indexelése biztosan rossz.
-
trisztan94
őstag
válasz Peter Kiss #10376 üzenetére
Igazából leírás szerint csináltam a dátum részét, amit láttam aszerint így kell. Hol látsz hibát?
T
https://heureka-kreativ.hu
-
PazsitZ
addikt
válasz trisztan94 #10375 üzenetére
$fh = fopen($dir . $felh . $datum['year'] . $datum['mon'] . $datum['mday'] . '.txt','w');
A tömb string indexeivel van baj.
- http://pazsitz.hu -
-
fordfairlane
veterán
válasz trisztan94 #10375 üzenetére
$fh előtti sor nincs lezárva ;-vel. Editor syntax highlighttal ajánlott.
x gon' give it to ya
-
fordfairlane
veterán
Ha a modellen kívül csak dátumformátumban van szükséged erre az információra, akkor célszerű a modellben átalakítani a timestampet, akár egyből az sql lekérdezésben. A Controller gyakorlatilag csak a vezérlési szerkezetet tartalmazza, "összeköti" a modellt a nézettel. Minél vékonyabb, annál jobb.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
Ja hogy így flat tárolás, így már minden világos, elsőre másra gondoltam.
Az utána következő "programozás alapjai órát" nem tudom, nem inkább mobalnak szántad-e...
Én annyira kérdeztem rá fordfairlane-től, hogy magával az elképzeléssel mi a baj, hogy a nézetben kapsz egy egymásba ágyazott listát, nem arra, hogy az mire jó és hogyan kell bejárni. (Mondjuk én is értékelem a lelkesedést. )(#10363) fordfairlane :
ja OK, szóval ezek szerint az a probléma vele, hogy nem feltétlenül tudod, milyen komplexitású mondjuk egy egymásba ágyazott lista, és bizonyos feltételek döntik el, mi szerint kellene bejárni, milyen mélységig, stb., és ezek a komplex döntések meg pont, hogy nem a view-ban kellene, hogy megszülessenek. Így már teljesen világos.Sk8erPeter
-
Soak
veterán
Megint szopattam magamat 1,5órát, aztán neki álltam alapoktól újra írni egy pár funtcion kódot és eszembe jutott, hiszen pont egy hasonló kódot beszéltünk a php topikban ami ezt megoldhatja. Első probára hibátlanul lefutott, igaz, hogy jó pár módosítással, de logikailag szinte ugyanez a probléma. Lassan rászokom, hogy gondolkozom cselekvés elött.
-
trisztan94
őstag
Elvtársak!
Lenne egy történetfeltöltésem, ami txt filekba menti az anyagot, ami a biralas_tortenetek könyvtárban van. Na, ezt szeretém most kilistázni, de úgy, hogy csak az első 200 karakter látszódjon és legyen egy gomb amivel meglehet nézni az egészet. Egyik angliai ismerősömtől kaptam erre egy kódot, de sehogy sem tudom beüzemelni:
<?php
$dataArray = array();
//Number of chars for the string
$num = 200;
//Check if DIR exists
if ($handle = opendir('../php/biralas_tortenetek/')) {
//Loop over the directory
while (false !== ($file = readdir($handle))) {
//Strip out the . and .. files
if ($file != "." && $entry != "..") {
$dataArray[] = array();
//Store file contents
$filecontent = file_get_contents($file);
//Split the content and store in array
$length = strlen($filecontent);
$dataArray[] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
//close the dir
closedir($handle);
}
?>
<?php foreach($dataArray as $data) { ?>
<div class="visible">
<?php echo $data[0]; ?>
</div>
<div class="hidden">
<?php echo $data[1]; ?>
</div>
<?php } ?>Mi a baj?
Bocsi, hogy napi 8x itt kérdezgetek, rendesek vagytok, hogy segítetek
https://heureka-kreativ.hu
-
fordfairlane
veterán
válasz trisztan94 #10384 üzenetére
$dataArray[] = array(); rossz helyen van, legyen az if előtt, ráadásul szerintem ez $dataArray = array(); akar lenni. Mármint az opendir előtt...
[ Szerkesztve ]
x gon' give it to ya
-
trisztan94
őstag
válasz fordfairlane #10385 üzenetére
hm, így sem működik, hiába tettem az if elé :/
lehet, hogy az a baj, hogy a txtfájlok így néznek ki?
név = Vendég201273.txt (felh + év + hó + nap)
maga a fájl meg így:<br/>
<article>
<header>Teszt Történet 2
</header>
<p>\"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut
</p>
<footer>Beküldte: Vendég
</footer>
</article>
<hr/>Szóval formázva van.
Ha a $dataArray[] = array(...);-ot if elé teszem, akkor nem kapnak értéket a dolgok benne nem? Értem ez alatt a $filecontent-et és a $lenght-et
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Soak
veterán
válasz trisztan94 #10384 üzenetére
Nem vagyok még egy php mágus, de azért már a MySQL ismeret szokott limitálni, arra szoktam leginkább keresni, mert a php-t szinte bármit összerakok. Ennek a legfőbb oka, hogy ha összerakok valamit akkor szépen megnézem a hibát amit a php dob, mert általában elég egyértelmű. Ha kijavítom és dob még egyet akkor tovább. A végén mindig működni fog. Sokkal lassabb mintha elsőre összejönne (azért mostmár megesik néha ) viszont működik. Ajánlom, hogy 1. Mivel foglalkozol vele elég aktívan szerezz be egy olyan programot ami az alapvető hibákat kiszűri ( { hiánya, vagy nem zársz le egy sort) , én ugyan Windowson dolgozok, de sok mac-es ismerősöm a TextMate-t ajánlotta, de pl nekem a Dreamweaver csodás 2. Kapcsold be a php hiba megjelenítését és figyelj rá.
-
fordfairlane
veterán
válasz trisztan94 #10386 üzenetére
$dataArray[] = array(); - ez egy üres tömbelemet rak a tömbbe. Nem értem, mi szükség van rá.
$dataArray = array(); - ez inicializálja a tömböt, amibe gyűjteni kezded a fájlinformációkat. Persze, hogy lehet használni az if-en belül, ha az if előtt van inicializálva.
Debuggolás nélkül nem lehet hibát keresni. Menet közben írass ki változókat, hogy lásd, mi van bennük, (print_r, var_dump, echo). Lehet, hogy a fájlmegnyitás sem sikerül már, a fene tudja ennyiből.
[ Szerkesztve ]
x gon' give it to ya
-
trisztan94
őstag
válasz fordfairlane #10388 üzenetére
na, var dumpoltam mindent és echo.
handle:
resource(2) of type (stream) Resource id #2
file:
string(1) "." .string(2) ".." ..string(17) "Vendég201273.txt" Vendég201273.txt
filecontent:
string(0) "" bool(false)
lenght:
int(0) 0int(0) 0
dataarray:
array(1) { [0]=> array(2) { [0]=> bool(false) [1]=> bool(false) } } Arrayarray(2) { [0]=> array(2) { [0]=> bool(false) [1]=> bool(false) } [1]=> array(2) { [0]=> bool(false) [1]=> bool(false) } } Array
na most ebből annyit tudtam értelmezni, hogy a filet megnyitja, a többit nem :S
https://heureka-kreativ.hu
-
trisztan94
őstag
Hát én megvettem 60 dolcsiért a Coda 2-őt, amit mindenki dicsér, nem találok benne hibakeresőt php-hoz, a Coda 1-ben bezzeg volt.. Textmate 46 dolcsi, nincs most annyim sajna, a trial meg már lejárt. Amúgy tényleg remek kis progi, dehát nem tudok mit csinálni
https://heureka-kreativ.hu
-
Soak
veterán
válasz trisztan94 #10390 üzenetére
Hát az szívás valóban. DW-ből érdemes leszedni még a triált, bár az nem 60dolcsis progi, szóval azt nem éri meg csak úgy venni ha nem termelésre van, esetleg 30nap alatt tanulgathatsz rajta, bár néha kicsit trükkösen mutatja, hogy mi a baja, de legalább mindig mutatja.
-
Soak
veterán
válasz trisztan94 #10392 üzenetére
Ha a DW-vel elakadsz akkor abban tudok, segíteni, de azt mér inkább pü-ben
-
Peter Kiss
őstag
válasz trisztan94 #10390 üzenetére
Netbeans?
-
trisztan94
őstag
-
fordfairlane
veterán
válasz trisztan94 #10389 üzenetére
na most ebből annyit tudtam értelmezni, hogy a filet megnyitja, a többit nem :S
A könyvtár tartalmát kilistázza, de a file(ok) tartalmát beolvasni már nem tudja. Ha jól látom azért, mert a file_get_contents nem kapja meg azt az elérési utat, amit az opendirnél megadtál, csak a fájl nevét.
[ Szerkesztve ]
x gon' give it to ya
-
trisztan94
őstag
-
trisztan94
őstag
-
fordfairlane
veterán
válasz trisztan94 #10397 üzenetére
Öhm, miért is akarsz te PHP-ban programozni?
Hát mondjuk
$dir = "../php/biralas_tortenetek/";
...
if ($handle = opendir($dir)) {
...
$filecontent = file_get_contents($dir . $file);[ Szerkesztve ]
x gon' give it to ya
-
trisztan94
őstag
válasz fordfairlane #10399 üzenetére
És kajak ennyi hibája volt csak Köszi szépen! Na mostmár csak azt kéne megoldani, hogy ne random 500. karakternél vágja szét, hanem az 500. karakterben, ha van akkor a szó után..
Nagyon tanulófázisban vagyok mind php, mint js/jquery terén, egyedül sok minden még nem megy
https://heureka-kreativ.hu
Új hozzászólás Aktív témák
- Belépűszintű Gamer PC Eladó + Monitorral + Billentyűzettel és Egérrel
- XBOX ONE FAT 500 GB gyári tartozékaival, 2 kontrollerrel és 2 játékkal
- XBOX SERIES S KONZOL 512GB-os Játékkonzol - Azonnali termékcsere garanciával
- Vegyes filamentek PLA/PETG/ASA
- Legion 5 15ARH7 15.6" FHD IPS Ryzen 5 6600H RTX 3050Ti 16GB 512GB NVMe magyar vbill gar
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest