- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: Noname 1TB-os SATA SSD teszt
- eBay-es kütyük kis pénzért
- Négymagos Xeon(!) CPU LGA775-ös deszkában
- bambano: Bambanő háza tája
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- erkxt: A Roidmi becsődölt – és senki nem szól egy szót sem?
- hcl: Kelj fel komám, ne aludjál
Új hozzászólás Aktív témák
-
DS39
nagyúr
Van valakinek tapasztalata az ATW.hu-s ingyenes tárhellyel és domainnel?
redirect linkhez ezt szoktam használni:
"http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
Ezzel megkapom, hogy, pl: http://www.valami.hu/index.php?id=7 -> tehát a teljesen url-t paraméterekkel együtt.
na most ezen az oldalon a REQUEST_URI a paramétereket nem tartalmazza, és nem jövök rá, hogy miért? illetve milyen más módon tudnám ezt megkapni? -
Janaboy
veterán
Sziasztok,
Lenne itt olyan PHP+mysql szaki aki segitene nekem szívesen egy API "megirasaban"?
Van egy kesz githubon elerheto rendszer, csak at kellene dolgozni.
Sajna en a kód megirasahoz süket vagyok, de remélhetőleg tudok szolgálni a szükséges adatokkal.
Ha van aki szívesen segitene es szanna ra idot, akkor irjon privit es leirom az egeszet cakkpakk.Koszi,
Udv -
Lacc
aktív tag
válasz
disy68 #19145 üzenetére
Az en celom csak a variables variable korlatozodott, nem volt celom a teljeskoru kirefelgetes.
Akkor ott van meg a
property_exists()
metodus, csak hogy meglegyen a teljesseg igenye.
Meg ugye bejon mas is, amirol hallgattam a peldaban, ugye a amit leirtasl fuggvenyeket azok a "Class/Object functions" gyujtoneven talalhatoak meg.Viszont ezert sem erdemes belemenni melyebben forumon, de meg kell emliteni, ha itt van a method_exists() hogy az nem egyenlo a
function_exists()-
el. Viszont ami miatt muszaj voltam irni, az az, hogy amethod_exists()
csak megnezni, hogy az adott osztalynak van-e olyan nevu fuggvenye. Nos ez tobb esetben is TRUE-t add visza. Sajnos akkor is TRUE jon, ha statikus metodus. Ilyen esetben ha statikus metodust probalsz meg peldanyszintukent hivni akkor jon az Exception. Masik ami miatt ez rossz, hogy ez TRUE-t add vissza, ha metodus lathatosaga private vagy protected. Ebben az esetben jobb azis_callable()
amely le is csekkolja, hogy tenyleg megtudod-e hivni?!
Masik, hogy az is_callable() kiszuri a magic metodusokat, mint a __constructor. A method_exists() ugyanugy TRUE-t add vissza.
Radasul az is_callable() jo parositast alkot a __call magich method-dal.Ennel sokkal jobb a ReflectionClass, tobb informacio es szuresi lehetoseg van.
De ez elegge mar advanced tema. (Nekem nincs tobb idom most ezt kifejteni)
-
disy68
aktív tag
A dinamikus osztály példányosítás mellé a metódus hívást tenném még hozzá, mint hasznos feature, ezeket alkalmaztam már én is. Ezek mellé hasznos lehet még a class_exists() és a method_exists().
class Something {
public function someMethod() {
echo "something";
}
}
// máshol
$className = "Something";
$methodName = "someMethod";
if (class_exists($className)) {
$something = new $className();
if (method_exists($something, $methodName)) {
$something->$methodName(); // echo "something";
} else {
// do something when method does not exist
}
} else {
// do something when class does not exist
} -
Lacc
aktív tag
válasz
tacsko833 #19142 üzenetére
Doink, jól mondta. Sőt, Doink jól mutatta
${$valami}
, ezt a{}
formátumot érdemes megjegyezni (lásd lentebb).
Dinamikus változóval nem kell ennyire foglalkozni, de gyakorlással felfogható.Dinamikus változó szemlélete, inkább a Reflection témakörében fordul elő. Ha nem nagyon érdekel az Architekt, akkor valszeg sosem fogsz vele találkozni. Viszont hasznos is tud lenni a dinamikus elérés
Lásd: Dinamikusan tudsz a Foo-nak létrehozni property-t
class Foo{
public function createProperty($name, $value){
$this->{$name} = $value;
}
}
$foo = new Foo();
$foo->createProperty('hello', 'something');
print $foo->hello //somethingBár most nézve a PHP doc-ot, az első hivatalos példa, pont a variable property. A felhasználók példájánál már ott van a 3. és 4. példa is.
Ez a negyedik kivételesen jó példa:class Foo {
public function hello() {
echo 'Hello world!';
}
}
$my_foo = 'Foo';
$a = new $my_foo();
$a->hello(); //prints 'Hello world!'Ebből is látszik, hogy egy osztály objektumát az osztály neve alapján hogyan lehet létrehozni, itt az osztály neve egy sima string érték a $my_foo változóban. Ezzel kapcsolatos kérdéssel már sok helyen találkoztam, és én is csináltam, mert egyszerű, átláthatóbb és a PHP haver ebben.
Reflection-nél pedig a példában a foreach-es részt nézném át.
-
Doink
aktív tag
válasz
tacsko833 #19141 üzenetére
A $$tarolo ugyan az mintha azt írnád hogy $felhasznalo HA $tarolo = 'felhasznalo'.
Becsületesen kiírva ez történik:
${$tarolo} => ${'felhasznalo'} => $felhasznaloSzóval ha az van írva a kódba hogy $$tarolo = "Anna" akkor valójában $felhasznalo = "Anna" hajtódik végre
HA a $tarolo értéke 'felhasznalo'.Dinamikus változóneveknek érdemes elkerülni mert átláthatatlan kódot eredményez és nehéz példát mondani arra amikor értelme van normális adatszerkezetek használata helyett.
-
tacsko833
csendes tag
Bocs, hogy értetlenkedek, csak szeretném megérteni
-
tacsko833
csendes tag
válasz
disy68 #19140 üzenetére
disy68 köszi a példát, a tiédet értem is, de az én példámat nem vágom
Az enyémben :
$tarolo = "felhasznalo";
$$tarolo = "Anna";print "$felhasznalo<br>"; // Returns Anna ---ez a felhasznalo egy érték, ezt nem értem, hogy lett $$tarolo érték belőle
print $$tarolo; //Returns AnnaMegpróbálom átírni a te példádra akkor
$Hello = "felhasznalo";
$a = "Anna";$felhasznalo; //Returns ANNA ~ami így nemigen működik
$a; //Returns ANNA -
disy68
aktív tag
válasz
tacsko833 #19139 üzenetére
A $valami egy változó, ami futás során kerük kiértékelésre.
A $$valtozo szintén egy változó, aminek a neve a $valtozo értéke. A php feldolgozó addig oldja fel változóként a $ utáni szoveget, amíg el nem jut az első $ jelig, az így kapott eredmény egy változó lesz (függően a helyétől a kifejezésben deklaráció, ha eddig nem létezett, hivatkozás vagy érték).Egy szemléltető példa a lentebb linkelt php manual hozzászólásaiból:
<?php
//You can even add more Dollar Signs
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
//... and so on ...//Miért? Mert a php megengedi
bővebben
És persze erről jó tudni, de szerintem ilyesmi mágiákat nem igazán kifizetődő használni, mert nem túl átlátható.
-
tacsko833
csendes tag
válasz
disy68 #19138 üzenetére
Én még anno Turbo Pascalt tanultam
Ott a program elején deklaráltunk változókat.
Itt oké, hogy $tarolonak az értéke "felhasznalo" string az értéke... csak azt nem értem ebből a stringből hogy lett változó úgy hogy nem deklaráltuk?Itt nem a $ jel a változó deklarálását jelenti?
Nagyon nem vágom, bocs hogy akadékoskodom
-
disy68
aktív tag
válasz
tacsko833 #19137 üzenetére
Dinamikus változók, az én ízlésemnek kicsit túl dinamikus
Szóval:
1. A $tarolo változó értéke lesz: "felhasznalo"$tarolo = "felhasznalo";
2. A $felhasznalo változó értéke lesz: "Anna" ($$tarolo ->$felhasznalo => "Anna")$$tarolo = "Anna";
És a fenti deklarációk esetében az alábbiak ekvilalensek:
$$tarolo === ${$tarolo} === ${'felhasznalo'} === $felhasznalo
És lehet ezt még tetőzni $$$tarolo, stb..
-
tacsko833
csendes tag
Sziasztok,
Most kezdtem php-t tanulni könyvből(php 24 óra alatt...így nincs aki segítsen, gondoltam kérdezek itt, remélem nem gond.
Van egy kód, amiben nem értem a változókat...
<html>
<head>
<title>4.1. program Dinamikusan beállított és elért
változók</title>
</head>
<body>
<?php
$tarolo = "felhasznalo";
$$tarolo = "Anna";
// lehetne egyszerûen csak:
// $felhasznalo = "Anna";
// vagy
// ${"felhasznalo"} = "Anna"
// persze ekkor nem kellenek dinamikus változók
print "$felhasznalo<br>";
print $$tarolo;
print "<br>";
print "${$tarolo}<br>";
print "${'felhasznalo'}<br>";
?>
</body>
</html>Itt én szerintem van két változónk: a taroló(aminek az értéke felhasznalo), és a $tarolo(aminek az értéke Anna)
Mégis az első kiíratásnál a $ jel után az első tároló értéke van beírva, holott ez csak egy érték...nem egy változó. A képernyőn viszont az Anna felírat jelenik meg. Nemértem
Kicsi segítséget kérhetnék, hogy van ez?
-
Doink
aktív tag
válasz
trisztan94 #19135 üzenetére
A CONCURRENT kulcsszó miatt tudsz SELECT-eket futtatni a lefutás közben mert a tábla ilyenkor nem lockolódik. Vagyis amikor te futtatod a selectedet akkor ő még javában dolgozik a lekérdezéseden.
-
trisztan94
őstag
Sziasztok!
MySQL LOAD DATA INFILE-al egy nagy csv-t próbálok importálni adatbázisba. 500.000 sor, 93 oszlop és kb 600mb a fájlméret, InnoDB az AB motor (tudom, hogy MYISAM-al gyorsabb, de kötve vagyunk az innodb-hez).
Ez az import kódom:
$query = "LOAD DATA CONCURRENT LOCAL INFILE '$path'
INTO TABLE task_metas
CHARACTER SET utf8mb4
FIELDS TERMINATED BY '$delimiter'
OPTIONALLY ENCLOSED BY '$enclosed'
LINES TERMINATED BY '$lineending'
IGNORE 1 LINES
(@col1, @col2, @col3, @col4, @col5, @col6, @col7, @col8, @col9, @col10, @col11, @col12, @col13, @col14, @col15, @col16, @col17, @col18, @col19, @col20, @col21, @col22, @col23, @col24, @col25, @col26, @col27, @col28, @col29, @col30, @col31, @col32, @col33, @col34, @col35, @col36, @col37, @col38, @col39, @col40, @col41, @col42, @col43, @col44, @col45, @col46, @col47, @col48, @col49, @col50, @col51, @col52, @col53, @col54, @col55, @col56, @col57, @col58, @col59, @col60, @col61, @col62, @col63, @col64, @col65, @col66, @col67, @col68, @col69, @col70, @col71, @col72, @col73, @col74, @col75, @col76, @col77, @col78, @col79, @col80, @col81, @col82, @col83, @col84, @col85, @col86, @col87, @col88, @col89, @col90, @col91, @col92, @col93)
SET task_id=null, project_id=$project->id, full_comment=null, relevance=-1, note=null,
url=@col1, indexed=@col2, published=@col3, search_indexed=@col4, title_snippet=@col5, content_snippet=@col6, title=@col7, content=@col8, root_url=@col9, domain_url=@col10, host_url=@col11, parent_url=@col12, lang=@col13, porn_level=@col14, fluency_level=@col15, spam_level=@col16, sentiment=@col17, source_type=@col18, post_type=@col19, cluster_id=@col20, meta_cluster_id=@col21, tags_internal=@col22, tags_marking=@col23, tags_customer=@col24, entity_urls=@col25, images_url=@col26, images_width=@col27, images_height=@col28, images_legend=@col29, videos_url=@col30, videos_width=@col31, videos_height=@col32, videos_legend=@col33, pagemonitoring_sitemon_siteid=@col34, matched_profile=@col35, article_extended_attributes_facebook_shares=@col36, article_extended_attributes_facebook_likes=@col37, article_extended_attributes_twitter_retweets=@col38, article_extended_attributes_url_views=@col39, article_extended_attributes_pinterest_likes=@col40, article_extended_attributes_pinterest_pins=@col41, article_extended_attributes_pinterest_repins=@col42, article_extended_attributes_youtube_views=@col43, article_extended_attributes_youtube_likes=@col44, article_extended_attributes_youtube_dislikes=@col45, article_extended_attributes_instagram_likes=@col46, article_extended_attributes_twitter_shares=@col47, article_extended_attributes_num_comments=@col48, source_extended_attributes_alexa_pageviews=@col49, source_extended_attributes_facebook_followers=@col50, source_extended_attributes_twitter_followers=@col51, source_extended_attributes_instagram_followers=@col52, source_extended_attributes_pinterest_followers=@col53, extra_article_attributes_world_data_continent=@col54, extra_article_attributes_world_data_country=@col55, extra_article_attributes_world_data_country_code=@col56, extra_article_attributes_world_data_region=@col57, extra_article_attributes_world_data_city=@col58, extra_article_attributes_world_data_longitude=@col59, extra_article_attributes_world_data_latitude=@col60, extra_author_attributes_id=@col61, extra_author_attributes_type=@col62, extra_author_attributes_name=@col63, extra_author_attributes_birthdate_date=@col64, extra_author_attributes_birthdate_resolution=@col65, extra_author_attributes_gender=@col66, extra_author_attributes_image_url=@col67, extra_author_attributes_short_name=@col68, extra_author_attributes_url=@col69, extra_author_attributes_world_data_continent=@col70, extra_author_attributes_world_data_country=@col71, extra_author_attributes_world_data_country_code=@col72, extra_author_attributes_world_data_region=@col73, extra_author_attributes_world_data_city=@col74, extra_author_attributes_world_data_longitude=@col75, extra_author_attributes_world_data_latitude=@col76, extra_source_attributes_world_data_continent=@col77, extra_source_attributes_world_data_country=@col78, extra_source_attributes_world_data_country_code=@col79, extra_source_attributes_world_data_region=@col80, extra_source_attributes_world_data_city=@col81, extra_source_attributes_world_data_longitude=@col82, extra_source_attributes_world_data_latitude=@col83, engagement=@col84, reach=@col85, provider=@col86, generator_type=@col87, source_extended_attributes_alexa_unique_visitors=@col88, article_extended_attributes_twitter_likes=@col89, extra_author_attributes_description=@col90, article_extended_attributes_linkedin_shares=@col91, extra_source_attributes_name=@col92, word_count=@col93,
created_at=NOW(), updated_at=NOW()";A query futtatása után visszakapok egy számot arról,hogy mennyi sor került be adatbázisba, ami eddig mindig helyes volt.
A probléma az, hogy amikor megnézem az adatbázist, sokszor nem annyi sort pakol be rögtön, mint amenynit visszaad a query. 519.000-nek kellene lennie, de pl. a legutóbbi importnál csak 463.000 volt. Ennél furcsább, hogy ha pár mp múlva újra lekérem az ab táblát, már több sort mutat benne - kb 1000-esével növekedik cca 30mp-enként.
Tehát nagyjából egy 40p alatt felmegy a tényleges 519.000 sorra az inserted sorok száma.
Ez miért van? Olyan, mintha utólag aszinkron pakolná be a sorokat. Ki lehet ezt valahogy kerülni?
+ update
Még az is furcsa, hogy az importált sorok lekérésénél, amikor még fut ez az aszinkron 'utóimport(?)' elszáll a szerver memóriatúllépés miatt, de csak ha azokat a sorokat kérem le. Ha egy korábban futtatott import sorait kérem le, no problemo.
Olyan lehet, hogy a MYSQL szerver lecache-elte azokat a sorokat amire már nem volt elég memóriája és szépen üríti? Szintén szuper lenne ide egy megoldás -
trisztan94
őstag
válasz
trisztan94 #19133 üzenetére
Wow, oké, rájöttem.
Helyesen rendezte ez, csak én csökkenő sorrendbe akartam rakni és valamiért feltételeztem, hogy telepatikus a php...
Bocsi, meghalt az agyam egy kicsit.
-
trisztan94
őstag
válasz
disy68 #19132 üzenetére
Néztem a
usort
-ot, de valamiért nagyon furcsán működik:Ha a
total_rows
index alapján rendezem, nem történik semmi:usort($array, function($a, $b) {
return intval($a['total_rows']) <=> intval($b['total_rows']);
});Output:
array:2 [▼
0 => array:4 [▼
"user_id" => "4"
"total_rows" => "250"
"delete_member" => "0"
"phase" => "1"
]
1 => array:4 [▼
"user_id" => "3"
"total_rows" => "1050"
"delete_member" => "0"
"phase" => "3"
]
]De ha más, jelen példában a
user_id
alapján, akkor működik ahogy kéne:usort($project_members, function($a, $b) {
return intval($a['user_id']) <=> intval($b['user_id']);
});Output:
array:2 [▼
0 => array:4 [▼
"user_id" => "3"
"total_rows" => "1050"
"delete_member" => "0"
"phase" => "3"
]
1 => array:4 [▼
"user_id" => "4"
"total_rows" => "250"
"delete_member" => "0"
"phase" => "1"
]
]Mi nem tetszik neki a
total_rows
-ban? -
disy68
aktív tag
válasz
trisztan94 #19130 üzenetére
Használj inkább usort-ot:
function cmp($a, $b) {
return $a["total_rows"] - $b["total_rows"];
}
usort($arr, "cmp"); -
Doink
aktív tag
válasz
trisztan94 #19130 üzenetére
<?php
$data = [
['total_rows' => 1, 'edition' => 2],
['total_rows' => 98, 'edition' => 2],
['total_rows' => 67, 'edition' => 7]
];
foreach ($data as $key => $row) {
$total[$key] = $row['total_rows'];
}
array_multisort($total, SORT_DESC, $data);
var_dump($data);
?>Ha a számaid stingként vannak tárolva (macskakörmöt látok a példádban) akkor:
array_multisort($total, SORT_DESC, SORT_NUMERIC, $data); -
trisztan94
őstag
Sziasztok,
Valószínű triviális a kérdésem.
Adott a következő array:
array:2 [▼
0 => array:4 [▼
"user_id" => "4"
"total_rows" => "250"
"delete_member" => "0"
"phase" => "3"
]
1 => array:4 [▼
"user_id" => "3"
"total_rows" => "1050"
"delete_member" => "1"
"phase" => "1"
]
]Szeretném rendezni a
total_rows
alapján. Tehát az legyen a legfelső tömb első eleme, amelyiknek a legnagyobb atotal_rows
értéke.array_multisort
-al próbálkoztam eddig, de nem sikerült.Hogyan kellene ezt megcsinálni?
-
func93
senior tag
válasz
fordfairlane #19127 üzenetére
zedz,fordfairlane: Köszi!
-
fordfairlane
veterán
válasz
func93 #19125 üzenetére
Legegyszerűbben a html5 validációs mechanizmussal, ami többé kevésbé már egyre jobban támogatott fícsör a modern böngészőkben.
HTML5 Form Validation With the “pattern” Attribute
Létezik validációs jquery plugin, sőt pluginok is, ami kompatibilis a régebbi böngészőkkel. jQuery Validation Plugin
Az igazi validáció a domain layer feladata, tehát szerveroldalon is el kell végezni az adatok validálását.
-
func93
senior tag
Sziasztok!
Inkább kezdő php-s volnék. Hogyan lehetne a legegyszerűbben megoldani azt, hogy pl: egy reg. űrlapnál adott inputokba csak betűket, vagy csak számokat lehessen írni?
-
simondr
senior tag
Sziasztok!
jórészt PHP-ban íródott weblap fejlesztéséhez keresek embert. Számlaképesség kötelező.
6-8-10 órás fejleszésekről lenne szó.Akit érdekel privátban keressen. Köszönöm!
-
sztanozs
veterán
Mi lenne, ha a beillesztett kódok rendesen lennének indentálva? Persze tudom, a kód gomb használatának is már örülnöm kéne...
-
SUPREME7
őstag
válasz
bucihost #19119 üzenetére
Akkor az ellenőrzésnek a while cikluson belül kellene lennie, nyilván amikor még kevesebb mint 5 akkor elkezd futni, de utána nincs kontroll.
És akkor csak szimplán ki kell lépned a ciklusból egy break-kel.
While(... )
{
$i++;
if ($i > $maximum) {
break;
} else...
}A te példádban ugyan elkezdted az $i-t emelgetni de nem kezdtél vele semmit. Gondolom fejben megvolt ez valamikor
-
bucihost
senior tag
ismét itt...
Adott egy php script, ami lefuttat egy parancsot (curl).
A lényeg az (lenne) hogy mindaddig futtatja a curlokat, amíg a sikeres futások száma el nem éri az 5-öt.
(leszedi a pid et, majd ha fut akkor mysqlbe +1-el)<?
$aktualis = mysql_query("SELECT * from `ipadatbazis` where id = 1");
$aktleker = mysql_fetch_array($aktualis);
$aktszam = $aktleker['szamlalo'];
$maximum = '5';
if ($aktszam < $maximum)
{
$i=0;
$sqllekerd = mysql_query("SELECT * FROM `ipadatbazis`");
While($lekerdadat = mysql_fetch_array($sqllekerd))
{
$i++;
$command = "";
$pid = exec($command, $output);
sleep(1);
exec("ps -p $pid", $kimenet);
if (count($kimenet) > 1)
{
$plusz = "UPDATE `ipadatbazis` SET `szamlalo` = szamlalo+1 where id = 1";
mysql_query($plusz);
}
}
}
else
{
die();
mysql_close($kapcsolat);
}
?>Addig eljut, hogy elkezdi az $commandot futtatni egymás után valamint +1 el az adatbázisba, viszont ha eléri az az 5-ös "limitet" nem áll meg. Futtatja magát a végtelenségig amig ki nem lövöm kézzel. Ha kilövöm és újra elindítom a php-t akkor már nem fut le, mivel az adatbázisban szereplő szám jóval több mint 5. Mi lehet a gond, mit rontottam el?
-
Lacc
aktív tag
válasz
Jinxb1rd #19112 üzenetére
Tapsi felvetése jogos, de SQL arthmetic operátorok is jók ide
. Én mindenképp szorzással gondolkodom. Azzal meglehet kapni a kívánt sorrendet a példád alapján. Így fejben nézve..., nekem az ilyen szorzások csak terület számításnak tűnnek
Ötletnek esetleg tárolt eljárást lehet írni, igaz nem kötelező, de jobb.
1. Arról van szó, hogy a csempe méretnél ott az X ahelyett jobb lenne a * mint szorzás, azt lehet parselni, vagy regex-szel kiszedni és összeszorozni, az értéket a szórzás jeltől álló bal és jobb operandusokat.
2. Lehetőségként split-elni, azt a stringet, és úgy is lehet szorozni.
Az 1. és 2.-ra itt találsz egy példát, amitől elmegy majd a kedved.
De külön itt is van, hogy a varchar szereplő matematikai kifejezést hogyan lehet exec-elni.
3. A kedvencem, és ez lenne az ideális szerintem: 1 oszlop a szélességnek és 1 oszlop a magasságnak. Nem tudom, hogy mennyire tudsz migrációt végrehajtani az adattáblán (technikai, vagy üzleti okok miatt)
Itt is szorzással lehetne a méreteket meghatározni, ez lehetne az első ORDER BY kritérium. Második kritériumnak pedig ottlehetne hogy a csempe szélesség vagy magasság alapján rendezne. Így lazán elkerülhető sort_order (Tapsi javaslata alapján) a 3x2 és 2x3 dilemma, mert ugye második ORDER BY kritérium ezt tudná tisztázni is. (Kivéve ha manuálisan akarjátok ezt is állítani, akkor van értelme a sort_order-nek).
Bár ilyen esetben ott van a 24-es csapda. 4x6, 6x4, 3x8, 8x3, 2x12, 12x2-es méretek. Itt is lehet kell a sort_order, bár ez tényleg a megrendelői kritérium alapján dől el. -
bucihost
senior tag
Sziasztok!
Adott egy mysql adatbázis, amibe egy program logolja a szerverre csatlakozott IP címeket.
ID IPPORT IDO
amikor le akarok kérdezni az adatbázisból egy adott ip+port párost,
SELECT *
FROM `ipadatbazis`
WHERE ipport = 'xxx.xxx.xxx.xxx:xxxx'akkor ezt kapom vissza:
A MySQL üres eredményhalmazt adott vissza (pl. nulla sorok). (a lekérdezés 0.0003 másodpercig tartott)
Mi lehet a nyűge? ha ID-re vagy IDO-re szűrök rá, akkor lehoz mindent amit kell
-
Jinxb1rd
addikt
válasz
Jinxb1rd #19111 üzenetére
Végül csak php oldottam meg végül. Akit érdekelne esetleg:
function cmp_size($a, $b) {
$a_pieces = explode("_", $a);
$b_pieces = explode("_", $b);
for ($i=0; $i < 3; $i++) {
$a_temp = floatval(str_replace(',', '.', $a_pieces[$i]));
$b_temp = floatval(str_replace(',', '.', $b_pieces[$i]));
if ( $a_temp == $b_temp )
continue;
else
return ($a_temp < $b_temp) ? -1 : 1;
}
return 0;
}
uasort($size_array, 'cmp_size'); -
Jinxb1rd
addikt
válasz
Jinxb1rd #19110 üzenetére
Félmegoldást sikerült kitalálni:
ORDER BY ABS(REPLACE(termekSize, ',', '.'))
Ezzel az első tagra vonatkozóan jól sorbarendezi, azonban a második tagnál már nem vesz figyelembe semmit.
CHARINDEX és a LEFT megoldásokkal szórakoztam még, de gondolom azért nem működik, mert nem minden esetben van találat charindexre és error-t dob.
-
Jinxb1rd
addikt
Sziasztok!
Adatbázisban a következő adatok vannak: 1_1, 2_2, 1,4_2, 15_15 (ezek csempeméretek cm-ben)
Ezeket sorbarendezve ORDER by termekSize-t használva, majd azt megformázva a következő lista alakul ki:
1x1
1,4x2
15x15
2x2Van valami sql beállítás vagy php parancs, amivel lehetséges rendesen sorbarendezett listát kapni, tehát így:
1x1
1,4x2
2x2
15x15?
-
DS39
nagyúr
válasz
adika4444 #19108 üzenetére
itt elég jól bemutatják, mi a kettő között a különbség, meg egyáltalán, hogyan is kell:
https://softwareengineering.stackexchange.com/questions/78225/using-join-keyword-or-not
itt ki is tudod próbálni, a join variációk leírása mellett: [link] -
DS39
nagyúr
válasz
adika4444 #19106 üzenetére
belső select-ek használata megnöveli a lekérdezés futási idejét.
mindenképp a táblák összekapcsolását javaslom, lehet azt join-nal, vagy simán a where-ben összekapcsolási feltétellel.az egyik tábla elsődleges kulcsát kell összekapcsolni a másik tábla külső kulcsával. (egy a többhöz kapcsolat)
-
adika4444
addikt
válasz
adika4444 #19105 üzenetére
Érthetetlen katyvasz ami leírást találtam róla
úgyhogy most selectben select utasítással próbálom megoldani, eddig nagyobb a siker mint a join-nal...
Az a baj hogy a joinnál értelmetlenül sok sor jelenik meg, ha meg natural-lal használom akkor valahogy csak egy sort akar megmutatni... -
adika4444
addikt
válasz
DNReNTi #19102 üzenetére
Egy topik maradjon egy kategóriában.
De ha odateszem a topik mellé hogy melyik kategóriába tartozik, akkor hogyan tudom a legutolsó 25 komment alapján a legutolsó 25 topikot kiválasztani? Mert a kommentek táblájában nem tudok arra szűrni hogy melyik kategória, hacsak nincs arra mód hogy úgy válasszak ki valamit hogy az egy másik táblában is megfeleljen adott feltételnek... -
DNReNTi
őstag
válasz
adika4444 #19101 üzenetére
Ahh... Tulbonyolitod.
Egy topik csak egy kategoria ala tartozhat? 1:n kapcsolat? Akkor egyszeruen kell egy mezo a topik tablaba, mittudomencategory_id
ami egyertelmuen azonositja. Ha egy topik tobb kategoria ala besorolhato akkor n:m kapcsolatrol beszelunk, kell tehat egy kapcsolotabla, ami tarolja hogy melytopic_id
-k escategory_id
-k vannak osszerendelve. Akarhogy is, nem olyan bonyolult ez, szerintem te gondolod tul. -
adika4444
addikt
Sziasztok!
MYSQL és PHP egybe kérdésem lenne.
Adott egy forum_posts, forum_topics és forum_cats tábla.
A posts-nál írom a dátumot, tehát ki tudom választani a topikokat a legutóbb hozzászólthoz képest visszafelé rendezné, majd a topics táblából ki tudom nyerni a téma nevét az id alapján...
Viszont vannak kategóriák. Az, hogy egy topic melyik kategóriába tartozik, azt hogy tudnám úgy tárolni, hogy a listázásnál ki tudjam a legutóbbi hsz szerint választani az adott kategóriába tartozó topikokat?
A baj a több táblás lekérés.
Én arra gondoltam, hogy kiválasztani limit-tel a legutóbbit, aztán az előtte lévő topikot, majd lekérni a topik nevét a topics táblából, és vizsgálni hogy a kiválasztott kategóriába tartozik-e. Ha igen kiírom, és hozzáadok a $wrote változóhoz egyet, ha nem akkor meg lépek a következőre továbbra is limittel, és ellenőrzöm amit előbb írtam...
Bocs ha kicsit érthetetlenül fogalmaztam meg, de szerintem nem is a megfelelő irányból közelítem meg a problémát.
Segítségért köszi előre is!
Új hozzászólás Aktív témák
- PROHARDVER! feedback: bugok, problémák, ötletek
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Milyen TV-t vegyek?
- Milyen házat vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Red Magic 10 Air - gaming telefon is lehet kecses
- Kertészet, mezőgazdaság topik
- Bundle topik
- Hamarosan leszűkíti a támogatott hardvereit az NVIDIA
- PlayStation 4
- További aktív témák...
- Intel Core i7-8700, i7-9700 CPU, processzor - Számla, garancia
- Fém, összecsukható és kihúzható fotó állvány eladó
- Új Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 3 Év Garanciával
- Apple iPhone 16 Pro Max - Desert Titanium - 256GB 1 ciklus 100% akku! 1 év garancia! Új készülék!
- Xbox Game Pass Ultimate kedvező áron, egyenesen a Microsoft-tól! - AUTOMATA BOLT
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged