Hirdetés
- Drasztikusan lassíthatja a játékokat egyes VGA-kon a Windows 11 új frissítése
- E-book olvasók
- AMD vs. INTEL vs. NVIDIA
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Otthoni időjárás-állomás
- Xiaomi Mi Box androidos médialejátszó 4K és HDR támogatással
- Fejhallgató erősítő és DAC topik
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- OLED TV topic
- A Microsoft bedurvult, így a jövőben keményen odacsapnak a veszélyes drivereknek
Ú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
- Subaru topik
- Drasztikusan lassíthatja a játékokat egyes VGA-kon a Windows 11 új frissítése
- GTA V
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Tőzsde és gazdaság
- World of Tanks - MMO
- E-book olvasók
- AMD vs. INTEL vs. NVIDIA
- NBA és kosárlabda topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- HP Z32 32" 4K monitor 3840 x 2160 karcos kijelző, de így is gyönyörű!
- Dell Pro Max 14" FHD+ IPS Ultra 7 255H RTX Pro 500 32GB 1TB NVMe ujjlolv IR kam gar
- Új és Használt Socket775 alaplapok
- Gigabyte G5 MF5 i7-13620H 16 GB DDR5 1 TB SSD RTX 4050 6GB FHD 144 Hz RGB akksi 100%
- AMD Ryzen 7 9800X3D - Garancia
- Bomba ár! HP Revolve 810 G2 - i7-G4 I 12GB I 256GB SSD I 11,6" HD Touch I Cam I W10 I Garancia
- REFURBISHED - DELL Universal Dock D6000 (452-BCYH) (DisplayLink)
- magyar billentyűzet - 165 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- Bomba ár! HP ProBook 640 G4 - i5-7GEN I 8GB I 256GB SSD I 14" HD I Cam I W11 I Garancia!
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
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....



