Keresés

Részletes keresés

Laja73 Creative Commons License 2017.04.16 0 0 10092

Gondolkodom hogy elmegyek egy PHP haladó/OOP tanfolyamra, hogy valamilyen szinten rendbeszedjem a neten (és főleg a stackoverflow-n) szerzett tudást. Szerintetek van értelme?

hellsing Creative Commons License 2017.04.05 0 0 10091

Help! MySQL stored procedure kérdés:

 

Mondjuk van egy products táblám, amiben van id, name, prc, color, size.

 

Lehet olyan sp-t írni, amelyik ha nem kap semmilyen értéket, akkor listázza az összes terméket, de igény szerint tud szűrni mező(k)re?

hellsing Creative Commons License 2017.01.15 0 0 10090

Abszolút: localhoston 6 éve 32 bites XAMPP-on vagyok, sose volt gond.

 

Rendszerszinten nem vagyok zseni, de úgy tudom, hogy a 32 bites Windows 10 és appok 4GB RAM-ot címezhetnek, a 64 bitesek 2TB-ot (a Win 10 Home 128GB-ot). Éles szerverre, várhatóan nagy nézőszám mellett nem tennék 32 bites XAMPP-ot, inkább összevadásznám a 64 bites elemeket (a 64 bites php csak "experimental").

Előzmény: B2TÁ (10088)
NevemTeve Creative Commons License 2017.01.13 0 0 10089

Próbáld ki bátran, a Win64 tartalmaz egy Win32-emulációs alrendszert.  (Persze ettől még lehet,hogy a 80-ás portodat használja a Skype.)

Előzmény: B2TÁ (10088)
B2TÁ Creative Commons License 2017.01.12 0 0 10088

Én is ezt sejtem, vajon ha a 32bit-est telepítem 64-re problémamentes lesz a működése?

Valakinek van ilyen tapasztalata?

Előzmény: hellsing (10087)
hellsing Creative Commons License 2017.01.12 0 0 10087

Én úgy tudom, hogy 64 bites XAMPP csak Linuxra és MacOS-re van, windowsra nincs.

Előzmény: B2TÁ (10086)
B2TÁ Creative Commons License 2017.01.12 0 0 10086

Sziasztok!

Segítséget szeretnék kapni!

 

Olyan kérdésem volna ,hogy a XAMPP honnan tölthető le 64 bites rendszerre, mivel én csak 32 bitest találtam.

 

Köszönöm a segítséget: T.

hellsing Creative Commons License 2017.01.11 0 0 10085

'estét! Van egy site, amit kezelek, és a valaki (közben meglett: a Webcruiser) sokszor rákeresett erre a karaktersorra:

 

!S!WCRTESTINPUT000000!E!

 

Mond ez nektek valamit? Hogy lehet ebből SQL injection (nem lett, a site OK).

NevemTeve Creative Commons License 2016.12.21 0 0 10084

Szervusztok, úgy látom, későn jöttem, maradt még megoldatlan rész?

_szergej_ Creative Commons License 2016.12.20 0 0 10083

A miertet leirtam a 10073-as hozzaszolasban: Eredetileg ez tortenik: "3,5...<br>[time1]" - [time2] . "s", aminek az eredmenye "-[(time2-3)]s", mivel a kisebbitendo 3-ra castolodik (mint az elso es utolso ertelmes szamjegy).

Nincs koze a timelimithez, mert ha azon akadna ki, akkor semmit nem irna ki a script.

 

De probald ki es meglatod:


<?php
    $x = "999,998,997";
    echo $x . "<br>" . 456 - 10;

?>

 

989 lesz a kimenet a fent (es lent) emlitett okok miatt

Előzmény: hellsing (10079)
halaloszto Creative Commons License 2016.12.20 0 0 10082

ez pont olyan mint a matekos. operátor egyik is meg másik is, csak ennek nem számok az operandusai.

 

Vajk

Előzmény: hellsing (10081)
hellsing Creative Commons License 2016.12.20 0 0 10081

Köszönöm, megpróbálok utána nézni a függvények elsőbbségi sorrendjének. Eddig nem is hallottam ilyenről, csak a matematikai műveletek sorrendjéről.

Előzmény: halaloszto (10080)
halaloszto Creative Commons License 2016.12.20 0 1 10080

gondolom a konkatenálás precendenciája magasabb mint a kivonásé. ezért először gyárt két stringet, aztán megpróbálja kivonni őket egymásból. ehhez persze számmá kell alakítania, ami nem sikerül, és mondjuk null-ra alakítja, utánna vonja ki.

Előzmény: hellsing (10079)
hellsing Creative Commons License 2016.12.20 0 0 10079

OK, lehet hogy nem voltam elég részletes. Van az a sor, hogy

 

        if ( $p == true ){
            $o .= $i . ", ";
        }

 

és a kód végén:

 

    echo $o . "<br>"…

 

Ha a $o helyén echo van (és a echo $o kommentbe téve), akkor minden megjelenik. Ha viszont az eredményt változóba pakolom ($o .= ...), és azt a végén kiíratom, akkor csak a nagy büdös semmi jelenik meg, pedig a var_dump szerint $o az string(7174)"és itt jönnek a prímek).

 

Viszont a dolog okafogyottá vált, mert a $e - $s zárójelezése óta megjelenik a $o tartalma. Hogy miért, azt nem igazán értem, mert bár lelkes amatőrként 7 éve php-zok, ilyen gonddal és megoldással még nem találkoztam. Ha valaki elmagyarázná, hogy ez miért nem jó:

 

    echo $o . "<br>" . $e - $s . "s";

 

…és ez miért igen:

 

    echo $o . "<br>" . ($e - $s) . "s";

 

…azt megköszönném.

Előzmény: Laja73 (10078)
Laja73 Creative Commons License 2016.12.20 0 0 10078

Nem értem hogy érted, hogy nem száll el. Ha az echo parancs ellenére nem jelennek meg a számok a képernyőn akkor csak nincs valami rendben. 

Előzmény: hellsing (10076)
hellsing Creative Commons License 2016.12.20 0 0 10077

A zárójel megoldotta, köszönöm. Csak érkezési sorrendben néztem az üzeneteket. Ennyit a bugomról :)

 

A 2 megvan, csak a kód ebben a formájában, ha 2-től számolok, nem a prímeket írja ki, hanem 2 hatványait a max. értékig (10.000-ig a legnagyobb a 8.192).

Előzmény: _szergej_ (10073)
hellsing Creative Commons License 2016.12.20 0 0 10076

Dehogy száll el, echoval 10.000-ig egy szempillantás, 100.000-ig kb. 6mp az egész (kb. 290.000 fér 30mp-be, Core 7i 4820K @4GHz ). A hossz sem lehet akadály, mert 10.000-ig ~7.200 karakter az egész.

 

Azért nem folyik annyira mérhetetlen mennyiségű számítás (főleg az elején), mert alulról kezd osztani, és a számok legnagyobb része osztható lesz valamivel az egyjegyű páratlanok közül, szóval elég gyorsan false-ra megy.

 

A microtime float, ha a paramétere true:

 

mixed microtime ([ bool $get_as_float = false ] )

 

get_as_float: If used and set to TRUE, microtime() will return a float instead of a string...

 

Ha kiíratom a $s és $e értékét, akkor azok 10.000-ig számolva:

 

    1482221140.7501
    1482221140.8316

 

Ha var_dumpolom, akkor mindkettő float. Mégis, ha kivonom $e-ből $s-t, akkor az eredmény:

 

    -1482221140.7501

 

...azaz mintha $e értéke 0 lenne.

 

Lehet, hogy php bugot találtam?

Előzmény: Laja73 (10071)
halaloszto Creative Commons License 2016.12.18 0 0 10075

php-hoz  fű vagyok, de  a prímszámokkal sokat foglalkoztam. pár egyszerű gyorsítás:

 - az osztókat elég a vizsgált szám négyetgyökéig kipróbálni

 - a páratlan számok helyett vizsgálhatod a maradékot az eddig megtalált prímszámokra csak

 

Vajk

Előzmény: hellsing (10070)
Laja73 Creative Commons License 2016.12.18 0 0 10074

Igen de két probléma volt, a time limit a másikra vonatkozott :)

Előzmény: _szergej_ (10073)
_szergej_ Creative Commons License 2016.12.17 0 0 10073

Nem a time limit a gond, a problema forrasa az operatorok precedenciaja. Eredetileg ez tortenik: "3,5...<br>[time1]" - [time2] . "s", aminek az eredmenye "-[(time2-3)]s", mivel a kisebbitendo 3-ra castolodik (mint az elso es utolso ertelmes szamjegy). Ahogy javasoltad, szimplan a $e-$s kifejezes zarojelezese megoldja, meg egessze se szukseges konvertalni.

 

Amugy az elso primszam a 2.

Előzmény: Laja73 (10071)
Laja73 Creative Commons License 2016.12.17 0 0 10072

A zárójelek száma csökkenthető :)

Meg legyen mááá <br />

Előzmény: Laja73 (10071)
Laja73 Creative Commons License 2016.12.17 0 0 10071

A loop második felében már "borzalmas" méretű számítás zajlik, valószínűleg elszáll time limittel mielőtt $o megkapja az új értéket (de ha közben echo-zol az megjelenik egy darabig, gondolom)

 

set_time_limit ( 100 );

 

Ez meg kell oldja.

 

A microtime() függvényt nem ösmerem de a net szerint ez egy string, próbáld meg:

 

echo $o . "<br>" .  intval(ceil(($e - $s))) . "s";

Előzmény: hellsing (10070)
hellsing Creative Commons License 2016.12.17 0 0 10070

'estét!

 

Új kérdés. Itt ez a kód, ami prímszámokat ír ki. Most a matematikai részével ne foglalkozzunk, biztos lehet ezt jobban is, de a gyereknek 4.-ben, infó órán pont jó.

 

Két gond van:

  • ha a prímeket $o-ba pakolom és a végén kiíratom (mint itt a kódban), akkor nem jelennek meg, de ha a $o .= részt echo-ra cserélem, akkor kiírja őket;
  • a futtatási idő értéke (a valós kb. 2,5s helyett) mindig egy hatalmas negatív szám és nem értem, hogy miért; az elvileg nagyobb $e-ből vonom ki a kisebb $s-t.

Kérlek segítsetek, le ne bőgjek már egy negyedikes előtt :-)

 

<?php

$i 
3;
$o null;

$s microtime(true);

while (
$i <= 100000) {
                
$j 3;
                
$p true;
                while (
$j $i) {
                                if (
$i $j == 0) {
                                                
$p false;
                                                break;
                                }
                                
$j $j 2;
                }
                if (
$p == true) {
                                
$o .= $i ", ";
                }
                
$i $i 2;
}

$e microtime(true);

echo 
$o "<br>" $e $s "s";

?>

hellsing Creative Commons License 2016.11.04 0 0 10069

Hétvégén megpróbálom, köszönöm.

Előzmény: BuNnY (10066)
hellsing Creative Commons License 2016.11.04 0 0 10068

Sehogy. Bocs, ha nem volt egyértelmű. Az egyes csoportokat (a parent=0 csoportot és az egyes children csoportokat) önmagukhoz képest akarom sorba rakni. A lényeg, hogy amikor ezekből egy accordion lesz, ott az egyes blokkok ABC-sorrendben legyenek.

 

A tömb szót php-s értelemben használom. Amit úgy indítok, hogy $a=array("blablabla"), az tömb. De valóban nem mátrix, ha úgy értetted.

Előzmény: szjozsi79 (10067)
szjozsi79 Creative Commons License 2016.11.04 0 0 10067

De továbbra sem értem, hogy egy négyszintű struktúra -ez nem tömb!- elemeit hogy akarod rendezni?

Hogy akarod sorba rendezni a 2. emeleten lévő hellsinget a 7. emeleten lévő bunnyval meg az 5. emeleten lévő nevemtevével? Ehhez emeletektől függetleníteni kell először, de úgy hogy továbbra is ott maradnak a helyükön, úgy kétlem, hogy lehetne.

BuNnY Creative Commons License 2016.11.04 0 0 10066

Ránézésre pedig így kéne működnie, logolj egyet mit kap $a és $b értékként. Hasonló feladatnál nekem működött kiválóan, sőt a php.net-en is van rá példa, szóval mennie kéne.

 

Előzmény: hellsing (10065)
hellsing Creative Commons License 2016.11.04 0 0 10065

Bakker, ez gáz. Megfeledkeztem róla, hogy már írtam ide. Elnézést. Mentségemre legyen mondva, hogy meló mellett heti 24 órában Java-t tanulok, mi kissé lefáraszt.

 

Szóval a php. Nem tudtam rájönni, hogy hogyan kell átadnom, hogy a [name] szerint rendeznék. Eddig jutottam, de ez [name] nélkül nem csinál semmit, azzal meg dob egy 'Illegal string offset'-et:

 

    function abComp ( $a, $b ){
        $r = strcmp ( $a['name'], $b['name'] );
        return $r;
    }

Lécci súgj még! :)

Előzmény: BuNnY (10064)
BuNnY Creative Commons License 2016.11.03 0 0 10064

Véleményem szerint továbra is usort a barátod rekurzívan meghívva a tömbökre véleményem szerint, de nem fontos rám hallgatni. Én pl. bejárnám (foreach) a gyökér tömb értékeit egy függvénnyel, ami usort-tal name-re rendezi a tömbot, ha van children és tömb akkor arra ráhívni ugyanezt a függvény ami ráhívjai az usort-ot megnézi van-e child és így tovább. Tipikus rekurív feladat.

Előzmény: hellsing (10063)
hellsing Creative Commons License 2016.11.02 0 0 10063

Ez most php. Nem'tom kitalálni, hogy egy ilyen tömb minden [children] csoportját hogyan kell [name] szerint ABC-sorrendbe rendezni. A tömbnek most max. 4 szintje van, de ez változhat.

 

Array
(
    [1] => Array
        (
            [name] => Name1
            [parent] => 0
            [children] => Array
                (
                    [15] => Array
                        (
                            [name] => Name2
                            [parent] => 1
                        )

                    [16] => Array
                        (
                            [name] => Name3
                            [parent] => 1
                        )
                )
        )

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!