Hirdetés
- Xiaomi 15T Pro - a téma nincs lezárva
- Így spórolhat az Apple az iPhone 18 kijelzőin
- iPhone topik
- Külföldi prepaid SIM-ek itthon
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Samsung Galaxy A57 - kecses test, lusta lélek
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Távozik az Apple vezérigazgatója
- Minden téren tudott fejlődni a Motorola Razr 60 Ultra
- CES 2026: Íme, a Lenovo és Motorola foci vb-s különkiadásai
Ú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
- A fociról könnyedén, egy baráti társaságban
- Milyen autót vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- Autós topik
- Elektromos autók - motorok
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Debrecen és környéke adok-veszek-beszélgetek
- PlayStation 1 / 2
- Xiaomi 15T Pro - a téma nincs lezárva
- További aktív témák...
- Macbook Pro M1 (2020 8GB RAM 256 GB) + Magic Mouse 2 + Numpad
- Mini ITX félkonfig - DH77DF / i7-3770T / 8GB DDR3 / 120GB SSD
- új 15 hüvelykes MacBook Air M4 256GB SSD silver ezüst Apple magyar 3 év garancia
- új aktiválatlan Apple Watch SE 3 GPS 40mm éjfekete alumíniumtok Apple 1 év garancia
- Dell Precision 7710 i7-6920HQ, 16GB DDR4, Quadro M4000 4GB, 250GB SSD
- ÁRGARANCIA! Épített KomPhone i5 10400F 16/32GB/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
- Lenovo T14 Gen2 Ryzen 5650U - Refurbished - Garancia
- 245 - Lenovo LOQ (15IRX9) - Intel Core i7-13650HX, RTX 4060 (ELKELT)
- HIBÁTLAN iPhone 12 Pro Max 128GB Pacific Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4517, 100% Akksi
- ADATA XPG SPECTRIX S40G 4TB M.2 PCIe (AS40G-4TT-C) (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

.


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....


