login  Naam:   Wachtwoord: 
Registreer je!
 Forum

code optimaliseren (Opgelost)

Offline roy - 17/06/2009 21:30 (laatste wijziging 18/06/2009 15:41)
Avatar van royPHP gevorderde Beste allemaal,

Ik ben een ajax cms aan het maken. ik doe database requests via php. ik zie in firebug dat deze interactie langzaam gaat.

ik heb een zogenaamd service script die zorgt voor de interactie tussen javascript en php classes:
  1. <?PHP
  2. if($_POST['klass'] == 'core')
  3. {
  4. if($_POST['methode'] == 'getLogin')
  5. {
  6. print $json->encode($cCore->getLogin($_POST['username'], $_POST['password']));
  7. }
  8.  
  9. elseif($_POST['methode'] == 'getMenu')
  10. {
  11. print $json->encode($cCore->getMenu());
  12. }
  13.  
  14. elseif($_POST['methode'] == 'getAllFromFolder')
  15. {
  16. print $json->encode($cCore->getAllFromFolder($_POST['table'], $_POST['folderid']));
  17. }
  18.  
  19. elseif($_POST['methode'] == 'getInterfaceByTable')
  20. {
  21. print $json->encode($cCore->getInterfaceWithValue($_POST['table'], $_POST['id']));
  22. }
  23.  
  24. elseif($_POST['methode'] == 'setItem')
  25. {
  26. print $json->encode($cCore->setItem($_POST['table'], $_POST['id'], $_POST, $_POST['folder']));
  27. }
  28. }
  29. ?>



de code in de classe:
  1. <?PHP
  2. function getInterfaceByTable($table)
  3. {
  4. $sQuery = "SELECT
  5. *
  6. FROM
  7. interface
  8. WHERE
  9. tablename = '".mysql_real_escape_string($table)."'
  10. ORDER BY
  11. sequencenumber
  12. ";
  13. $rs = $this->conn->GetAll($sQuery);
  14.  
  15. return $rs;
  16. }
  17.  
  18. function getItemById($table, $id, $column)
  19. {
  20. $sQuery = "SELECT
  21. $column
  22. FROM
  23. $table
  24. WHERE
  25. id = '".intval($id)."'
  26. ";
  27. $rs = $this->conn->GetOne($sQuery);
  28.  
  29. if (gettype($rs) == 'string')
  30. {
  31. $rs = htmlentities($rs);
  32. }
  33. return $rs;
  34. }
  35.  
  36. function getInterfaceWithValue($table, $id)
  37. {
  38. $interface = $this->getInterfaceByTable($table);
  39.  
  40. for ($i = 0; $i < count($interface); $i++)
  41. {
  42.  
  43. $interface[$i]['value'] = $this->getItemById($table, $id, $interface[$i]['column']);
  44.  
  45. }
  46.  
  47. return $interface;
  48. }
  49. ?>



Misschien hebben jullie tips/ voorbeelden of aanpassingen waarmee de interactie sneller zal verlopen.
Misschien kan iemand de drie functies aanpassen zodat het sneller werkt.

Groeten,
Roy

6 antwoorden

Gesponsorde links
Offline marten - 17/06/2009 21:35
Avatar van marten Beheerder Ik denk dat je db het meeste tijd op zich neemt. wat doet de functie getAll bv?
Offline roy - 17/06/2009 21:39
Avatar van roy PHP gevorderde Dat is een ADODB functie. die haalt alle record uit de database
Offline marten - 17/06/2009 21:43
Avatar van marten Beheerder Benchmark die eens
Offline roy - 17/06/2009 21:51 (laatste wijziging 18/06/2009 15:41)
Avatar van roy PHP gevorderde ga ik doen
http://phplens.com/lens/adodb/docs-adodb.htm

ben je bekent met adodb? en adodb_lite?
wat is het equivalent van GetOne() in ado lite?
Offline rambo - 18/06/2009 09:08
Avatar van rambo HTML beginner Hoi Roy,

ik zat even in het document te kijken waarvan je zelf een link plaatste en ik kwam daar het volgende hoofdstuk tegen 'High Speed ADODB - tuning tips': http://phplens.com/lens/adodb/docs-adodb.htm#speed

Offline ArieMedia - 18/06/2009 16:08 (laatste wijziging 18/06/2009 16:23)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Ik gebruik het meestal zo..
misschien dat je het zo kan proberen..
  1. $sql = 'SELECT * FROM leden';
  2.  
  3. $rs = $this->dbExecute($sql);
  4. if($rs->RecordCount() > 0) {
  5. $fields = array();
  6. for($i=0; $i<$rs->RecordCount(); $rs->MoveNext()) {
  7. $fields[] = array('id' => $rs->Fields('id'), 'naam' => $rs->Fields('naam'));
  8. $i++;
  9. }
  10.  
  11. }

Ik prop het in een array omdat ik met smarty template-engine werk, en het via smarty met een foreach weer kan uitlezen. Maargoed je snapt mijn principe
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.24s