- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Milyen okostelefont vegyek?
- Redmi Note 12 Pro - nem tolták túl
- LTE frekvenciák
- Xiaomi 13 - felnőni nehéz
- CMF Phone 2 Pro - a százezer forintos kérdés
- Amazfit Active 2 NFC - jó kör
- További kavarás a Pixel 10-ek körül
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
Lacces
őstag
válasz
Cathfaern #10749 üzenetére
Lehet butaságot kérdezek vissza, de inkább most a tervezésnél kérdezem meg
.
Igen, 1 hirdetőhöz, 1 hirdetés tartozna.
Vagyis akkor a hirdetést úgy engedjem szerkeszteni egy felhasználónak, hogy csak szimplán lekérdezem az adatbázisból: A hirdetőtáblából lekérdezem azt a hirdetést, amihez tartozik az adott ID-jú felhasználó és kész, nem kell ezt tovább bonyolítani.
és köszönöm a választ!
-
Sk8erPeter
nagyúr
válasz
Cathfaern #10486 üzenetére
Na, most felraktam ide, hogy normálisan nézzen ki, így már legalább látható is, mi van a kódban...
Csak most látom át, így, hogy ki is lehet valamit belőle venni, hogy csak az else ágban van a másik kettő foreach...A $senders-re vonatkozó részt tényleg félreértettem... hát igen, nem árt, ha normálisan van indentálva a kód....
$senders = array();
foreach ($messages as $message) {
if (array_key_exists($message->sender_username, $senders)) {
$senders[$message->sender_username]++;
} else {
$senders[$message->sender_username] = 1;
}
}Tehát magyarul akkor ad hozzá a $senders adott kulcsánál lévő számhoz plusz egyet, ha már létezik az adott kulcs a felhasználó nevével, egyébként eggyel egyenlő...
Igazad van, ezt sem láttam át a korábbi ocsmány kód miatt (az is igaz, hogy eléggé átrohantam rajta).
Ettől függetlenül továbbra is fenntartom, hogy ezt nem így kéne, nemsokára írom, miért. Áll a többi dolog is, azzal a módosítással, hogy ezek szerint nem fut le mindhárom ciklus, mert külön vannak. A statikus függvényhívásokra, változókra, egyebekre (pl. truncate() külön függvény/metódus, stb.) vonatkozó dolgok is állnak."Amennyiben az első foreachen belül megváltoztatsz valamit a tömbön, akkor lehet értelme mégegyszer bejárni (elvileg ugyanazt a tömböt, gyakorlatilag nyilván akkor már nem ugyanazon mész végig). És ahogy láttam, itt pontosan erről van szó."
Nézd meg még egyszer, a $messages tömbön nem változtat semmit az első ciklusban. Csak kigyűjti a $senders tömbbe a megfelelő neveket, a hozzájuk tartozó üzenetek számát. Aztán ezt használja fel a második foreach-nél, és ennyi.
Az a baj, hogy feltételezem, a find_messages_by_users_id() metódusában eleve van már egy ciklus, ami bejárja az adatbázisból lekért eredményeket. Így tehát összesen 3 darab (!) ciklus lesz mégis, mert még ezt is be kell járni még egyszer. Úgy lehetne ezt redukálni mondjuk max. 2-re, hogy eleve egy normális query-t ír, ami felhasználók szerint csoportosítva kéri le az üzeneteket, aztán amikor ezt az eredményhalmazt bejárja PHP-vel, akkor eleve felhasználónként gyűjti egy tömbbe az üzeneteket. Akkor meg már lehetne használni ezeken a gyorsabb count() függvényt is, amivel egyből megkapná, hány darab üzenet tartozik a felhasználóhoz, meg csak a kiíratáshoz kellene bejárni.
Úgy már nem lenne gány.
Új hozzászólás Aktív témák
Hirdetés
- Goddess of Victory:Nikke
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Porszívók - akkus és klasszikus vezetékes
- TCL LCD és LED TV-k
- OLED, Mini-LED, IPS, VA, TN - melyik panelt válaszd 2025-ben?
- Nintendo Switch
- Nintendo Switch 2
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- További aktív témák...
- BESZÁMÍTÁS! 32GB (2x16) G.Skill Trident Z RGB 6600MHz DDR5 memória garanciával hibátlan működéssel
- Bomba ár! Lenovo ThinkPad T480s - i7-8GEN I 16GB I 256GB I 14" WQHD I HDMI I Cam I W11 I Gari!
- Gombászkönyvek egyben
- Bomba ár! HP Elitebook 850 G8 - i5-11GEN I 16GB I 256GB SSD I 15,6" FULLHD I Cam I W11 I Gari!
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest