Archívum - Feb 25, 2009
Látogatotság gyors tételes keresése
Sziasztok!
Van egy táblám amibe azt tárolom, hogy egy oldalon mikor melyik felhasználó melyik másik felhasználó adatlapját nézte meg:
TÁBLA struktúrája:
mikor (mikor történ a látogatás)
to_user (annak a felhasználónak az egyéni azonosítója akiknek az adatlapját megnézték)
from_user (annak a felhasználónak az egyéni azonosítója aki nézte az adatlapot)
A problémám, hogy ez a tábla így villám gyorsan több milliósra fel fog duzzadni.
Attól tartok, hogy az indexelés ellenére egy gyenge pontja lesz a rendszernek.
Főleg akkor amikor ebből a táblából részletes adatokat kell kivennem.
Hogyan lehetne optimalizálni?
Sajnos mivel tételes adatokat kell kiszednem, így azt az utat nem találtam járhatónak, hogy mondjuk naponta csinálok egy összesítő táblát, mivel nem arra vagyok kíváncsi, hogy mondjuk a múlt hónapban (, vagy múlt héten, vagy esetleg a kezdetektől) hányan nézték meg az adatlapját egy felhasználónak, hanem konkrétan ki voltak azok.
Egyenlőre ilyesmiben gondolkodok hangosan:
A felhasználókat mondjuk 1000-es csoportokra bontom (to_user szerint) és 1000 felhasználóként külön táblában gyűjteném az adatokat.
Így az írás is gyorsabb lenne (mert tudom a megnyitott adatlap tulajdonosa melyik 1000-es csoportba esik), illetve az olvasás is, mert amikor az ügyfél meg szeretné nézni, hogy kik nézték az adatlapját akkor is az adatokat néző ügyfélhez tartozó adattáblából kell csak kikeresni az adatokat.
A fenti kialakításnál biztosan van jobb megoldás is, mivel több ponton máris sántít a dolog, mert sajnos fordítva is kell tudnom keresni a táblában.
A felhasználók ugyanis arra is kíváncsiak lehetnek, hogy egy adott időintervallumban mely felhasználók adatlapjait nézte már meg.
Van egy táblám amibe azt tárolom, hogy egy oldalon mikor melyik felhasználó melyik másik felhasználó adatlapját nézte meg:
TÁBLA struktúrája:
mikor (mikor történ a látogatás)
to_user (annak a felhasználónak az egyéni azonosítója akiknek az adatlapját megnézték)
from_user (annak a felhasználónak az egyéni azonosítója aki nézte az adatlapot)
A problémám, hogy ez a tábla így villám gyorsan több milliósra fel fog duzzadni.
Attól tartok, hogy az indexelés ellenére egy gyenge pontja lesz a rendszernek.
Főleg akkor amikor ebből a táblából részletes adatokat kell kivennem.
Hogyan lehetne optimalizálni?
Sajnos mivel tételes adatokat kell kiszednem, így azt az utat nem találtam járhatónak, hogy mondjuk naponta csinálok egy összesítő táblát, mivel nem arra vagyok kíváncsi, hogy mondjuk a múlt hónapban (, vagy múlt héten, vagy esetleg a kezdetektől) hányan nézték meg az adatlapját egy felhasználónak, hanem konkrétan ki voltak azok.
Egyenlőre ilyesmiben gondolkodok hangosan:
A felhasználókat mondjuk 1000-es csoportokra bontom (to_user szerint) és 1000 felhasználóként külön táblában gyűjteném az adatokat.
Így az írás is gyorsabb lenne (mert tudom a megnyitott adatlap tulajdonosa melyik 1000-es csoportba esik), illetve az olvasás is, mert amikor az ügyfél meg szeretné nézni, hogy kik nézték az adatlapját akkor is az adatokat néző ügyfélhez tartozó adattáblából kell csak kikeresni az adatokat.
A fenti kialakításnál biztosan van jobb megoldás is, mivel több ponton máris sántít a dolog, mert sajnos fordítva is kell tudnom keresni a táblában.
A felhasználók ugyanis arra is kíváncsiak lehetnek, hogy egy adott időintervallumban mely felhasználók adatlapjait nézte már meg.
Ügyfélkapu?
Sziasztok,
Az alábbi kérdésem lenne: hogyan tudok megvalósítani egyfajta ügyfélkapu rendszert? Értem itt, user kezelés, minden user csak bizonyos könyvtárhoz fér hozzá. Igazából elég lenne, hogy csak kilistázza a könyvtárban szereplő fileokat, és onnan letölthesse. Van erre valamilyen ingyenes script? Vagy bármi egyéb?
Válaszaitokat előre is köszönöm.
A.S
■ Az alábbi kérdésem lenne: hogyan tudok megvalósítani egyfajta ügyfélkapu rendszert? Értem itt, user kezelés, minden user csak bizonyos könyvtárhoz fér hozzá. Igazából elég lenne, hogy csak kilistázza a könyvtárban szereplő fileokat, és onnan letölthesse. Van erre valamilyen ingyenes script? Vagy bármi egyéb?
Válaszaitokat előre is köszönöm.
A.S
What's new in PHP V5.3, Part 5: Upgrading from PHP V5.2
Mik változnak a PHP 5.3-mal?
■ 7 Interface Design Techniques to Simplify and De-clutter Your Interfaces
Jobb használhatóság elemek elvételével
■ JavaScriptből GWT (GXT)-be
Azzal az örömteli problémával találtam szembe magam, hogy GWT-ben fogjuk kreálni következő projektünket (Én halkan megjegyeztem hogy magam is tudok javascriptre "fordítani" és szeretek is, de hajthatatlanok:-)). Át is futottam egy két tutorialt, lehúztam ubuntu alá az eclipse-t, szépen össze is raktam a dolgokat, még egy 32 bites java fordítót is "alternáltam" mert próbálkozásaim során kiderült hogy a 64 bites dolgokat a GWT nem támogatja és megmondom őszintén tetszik a dolog.
Viszont gondom a java. Persze átnéztem gyorsan az alapokat, és meg is ragadt az inheritance, access modifiers, method overloading overriding hogy párat felsoroljak. Persze nem jutottam végig a dolgon, de gwt példakódban akadtam homályos részekbe:
@override //(miért kell, ha egyébként is a subclassok metódusai felülírják a superclassok metódusait, vagy nem? Tény, a kód nem fut nélküle.
ArrayList<String> //mire valók a <> jelek?
Eclipse error: csak runlevel x-től fut az adott feature... //jó ezt megoldottam
Ant (említették hogy majd kell)
A szerver oldal is java-ban íródik majd, bár az (szerencsére) nem az én feladatom.
Nyugalom, nem én leszek a projektkoordinátor, de szeretem érteni amit csinálok. Tehát kérésem - kérdésem az lenne, hogy vannak e ilyen téren tapasztalataitok, mi lenne a javanak az a része, amit a gwt tekintetében átnéznétek, és esetleg melyik a súlyozottabb, fontosabb, idevágó része a nyelvnek.
Köszi!
Gábor.
■ Viszont gondom a java. Persze átnéztem gyorsan az alapokat, és meg is ragadt az inheritance, access modifiers, method overloading overriding hogy párat felsoroljak. Persze nem jutottam végig a dolgon, de gwt példakódban akadtam homályos részekbe:
@override //(miért kell, ha egyébként is a subclassok metódusai felülírják a superclassok metódusait, vagy nem? Tény, a kód nem fut nélküle.
ArrayList<String> //mire valók a <> jelek?
Eclipse error: csak runlevel x-től fut az adott feature... //jó ezt megoldottam
Ant (említették hogy majd kell)
A szerver oldal is java-ban íródik majd, bár az (szerencsére) nem az én feladatom.
Nyugalom, nem én leszek a projektkoordinátor, de szeretem érteni amit csinálok. Tehát kérésem - kérdésem az lenne, hogy vannak e ilyen téren tapasztalataitok, mi lenne a javanak az a része, amit a gwt tekintetében átnéznétek, és esetleg melyik a súlyozottabb, fontosabb, idevágó része a nyelvnek.
Köszi!
Gábor.
2táblából lekérdezés, majd egyik UPDATE-elése
sziasztok,
amiben a segítségeteket kérem:
van 2 táblám: tb1, tb2
db1 tartalmazza a username, pontszam mezőket (is)
db2 tartalmazza a meccs, eredmeny, who mezőket (ebben tárolom a userek által készített tippeket)
Van egy admin felületem ahol a bevitt eseményeknek megadtahatom a kimenetelét. Itt létrehoztam egy lekérdezést melyben ezt a 2 táblát egyesítem és ezen végigmassírozva megkeresem, hogy hol egyezik az általam bevitt (POST-olt) esemény a 'meccs' mező elemeivel, majd ha az 'eredmeny' is megegyezik az általam POST-olt eredménnyel akkor a hozzá tartozó 'who' mezőben tárolt felhasználónévhez megkeresem a db2-ben található 'username'-t és a hozzá tartozó 'pontszam' mező értékét megnövelem (ha meg nem talált akkor csökkentem)
remélem kibogozható a dolog, íme a kód:
$pontoz = mysql_query("SELECT meccs,eredmeny,who,username,pontszam FROM tb1 JOIN users ON tb1.who = tb2.username WHERE meccs = '$_POST[meccs]'");
while($info = mysql_fetch_array( $pontoz ))
{
if ($info['eredmeny'] == '$_POST[tipp]')
{
mysql_query("UPDATE tb2,tb1 SET pontszam = pontszam + 1 WHERE tb2.username = tb1.who") or die(mysql_error());;
}
else
{
mysql_query("UPDATE tb2,tb1 SET pontszam = pontszam - 1 WHERE tb2.username = tb1.who") or die(mysql_error());;
}
}
nem az történik amire számítok: Hogy az adott felhasználóhoz tartozó pontszám nő vagy csökken annak fejében egyezik-e az általa készített meccs-eredmeny a db1-ben.... mi a hiba? köszi előreis
■ amiben a segítségeteket kérem:
van 2 táblám: tb1, tb2
db1 tartalmazza a username, pontszam mezőket (is)
db2 tartalmazza a meccs, eredmeny, who mezőket (ebben tárolom a userek által készített tippeket)
Van egy admin felületem ahol a bevitt eseményeknek megadtahatom a kimenetelét. Itt létrehoztam egy lekérdezést melyben ezt a 2 táblát egyesítem és ezen végigmassírozva megkeresem, hogy hol egyezik az általam bevitt (POST-olt) esemény a 'meccs' mező elemeivel, majd ha az 'eredmeny' is megegyezik az általam POST-olt eredménnyel akkor a hozzá tartozó 'who' mezőben tárolt felhasználónévhez megkeresem a db2-ben található 'username'-t és a hozzá tartozó 'pontszam' mező értékét megnövelem (ha meg nem talált akkor csökkentem)
remélem kibogozható a dolog, íme a kód:
$pontoz = mysql_query("SELECT meccs,eredmeny,who,username,pontszam FROM tb1 JOIN users ON tb1.who = tb2.username WHERE meccs = '$_POST[meccs]'");
while($info = mysql_fetch_array( $pontoz ))
{
if ($info['eredmeny'] == '$_POST[tipp]')
{
mysql_query("UPDATE tb2,tb1 SET pontszam = pontszam + 1 WHERE tb2.username = tb1.who") or die(mysql_error());;
}
else
{
mysql_query("UPDATE tb2,tb1 SET pontszam = pontszam - 1 WHERE tb2.username = tb1.who") or die(mysql_error());;
}
}
nem az történik amire számítok: Hogy az adott felhasználóhoz tartozó pontszám nő vagy csökken annak fejében egyezik-e az általa készített meccs-eredmeny a db1-ben.... mi a hiba? köszi előreis
Vertical Centering With CSS
5 eljárás, miként lehetséges CSS-sel függőlegesen középre igazítani
■ An In-Depth Look at jQuery UI - Part 1
Videókkal szemléltetett áttekintés a jQuery UI képességeiről
■ PHP XML Export problema
Sziasztok!
Egy kis problémám támadt MySQLből lekért dinamikus adatok XML exportjával, remélem valaki tud tanácsot adni a dologgal kapcsolatban.
Adott egy egyszerű ajaxos felület, ahol egy form segítségével megadott paraméterek alapján lehet kiíratni adatokat egy MySQL adatbázisból.
Az AJAX ezt szépen ki is írja, ez a rész működik.
Az AJAX motor generál egy POST metódusú formot is, amely áll egy darab submit gombból, illetve pár hidden inputból, amit a keresőformból kap.
Tehát ez a rész nagyjából így néz ki:
Az XML generátor szkript is hasonló, és itt jön a probléma.
Gyanítom, hogy a header information kavar be valamit.
[code]
<?php
$a1 = $_POST["va1"];
$a2 = $_POST["va2"];
$a3 = $_POST["va3"];
$DATAsend = "";
$a12 = time();
$datearray=getdate($a12);
$year = $datearray["year"];
$month = $datearray["mon"]; if ($month <= 9) { $month = "0$month"; }
$monthNAME = $datearray["month"];
$day = $datearray["mday"]; if ($day <= 9) { $day = "0$day"; }
$hour = $datearray["hours"]; if ($hour <= 9) { $hour = "0$hour"; }
$min = $datearray["minutes"]; if ($min <= 9) { $min = "0$min"; }
$sec = $datearray["seconds"]; if ($sec <= 9) { $sec = "0$sec"; }
if ($a1 == "") { $a1SQL = ""; } else { $a1SQL = " AND field1 = '$a1' "; }
if ($a2 == "") { $a2SQL = ""; } else { $a2SQL = " AND field2 = '$a2' "; }
if ($a3 == "") { $a3SQL = ""; } else { $a3SQL = " AND field3 = '$a3' "; }
$sqlqry = mysql_query("SELECT * FROM valamitabla WHERE id >
Egy kis problémám támadt MySQLből lekért dinamikus adatok XML exportjával, remélem valaki tud tanácsot adni a dologgal kapcsolatban.
Adott egy egyszerű ajaxos felület, ahol egy form segítségével megadott paraméterek alapján lehet kiíratni adatokat egy MySQL adatbázisból.
Az AJAX ezt szépen ki is írja, ez a rész működik.
Az AJAX motor generál egy POST metódusú formot is, amely áll egy darab submit gombból, illetve pár hidden inputból, amit a keresőformból kap.
Tehát ez a rész nagyjából így néz ki:
<?php
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
echo "
<form method=\"post\" action=\"xmlgenerator.php\"target=\"_blank\" style=\"display: inline;\">
<input type=\"hidden\" name=\"va1\" id=\"va1\" value=\"$a1\" />
<input type=\"hidden\" name=\"va2\" id=\"va2\" value=\"$a2\" />
<input type=\"hidden\" name=\"va3\" id=\"va3\" value=\"$a3\" />
<input type=\"submit\" value=\"Export\" />
</form>
";
// Itt jon az SQL es a tablazat generalas
?>
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
echo "
<form method=\"post\" action=\"xmlgenerator.php\"target=\"_blank\" style=\"display: inline;\">
<input type=\"hidden\" name=\"va1\" id=\"va1\" value=\"$a1\" />
<input type=\"hidden\" name=\"va2\" id=\"va2\" value=\"$a2\" />
<input type=\"hidden\" name=\"va3\" id=\"va3\" value=\"$a3\" />
<input type=\"submit\" value=\"Export\" />
</form>
";
// Itt jon az SQL es a tablazat generalas
?>
Az XML generátor szkript is hasonló, és itt jön a probléma.
Gyanítom, hogy a header information kavar be valamit.
[code]
<?php
$a1 = $_POST["va1"];
$a2 = $_POST["va2"];
$a3 = $_POST["va3"];
$DATAsend = "";
$a12 = time();
$datearray=getdate($a12);
$year = $datearray["year"];
$month = $datearray["mon"]; if ($month <= 9) { $month = "0$month"; }
$monthNAME = $datearray["month"];
$day = $datearray["mday"]; if ($day <= 9) { $day = "0$day"; }
$hour = $datearray["hours"]; if ($hour <= 9) { $hour = "0$hour"; }
$min = $datearray["minutes"]; if ($min <= 9) { $min = "0$min"; }
$sec = $datearray["seconds"]; if ($sec <= 9) { $sec = "0$sec"; }
if ($a1 == "") { $a1SQL = ""; } else { $a1SQL = " AND field1 = '$a1' "; }
if ($a2 == "") { $a2SQL = ""; } else { $a2SQL = " AND field2 = '$a2' "; }
if ($a3 == "") { $a3SQL = ""; } else { $a3SQL = " AND field3 = '$a3' "; }
$sqlqry = mysql_query("SELECT * FROM valamitabla WHERE id >