abonnement Unibet Coolblue Bitvavo
pi_27146355
quote:
Op donderdag 19 mei 2005 11:13 schreef JeRa het volgende:

[..]

Is er eigenlijk een reden waarom foreach zoiets doet?

edit: aan de source van de Zend engine te zien wordt er áltijd een kopie gemaakt van de array of het object waar foreach op toegepast wordt, zonder te kijken of de array of het object daadwerkelijk binnen het block wordt benaderd. Er zal wel structureel iets verkeerd zitten waarom ze zoiets nog niet hebben aangepast.
Zover ik weet is het een ontwerp keuze.
pi_27151322
hmm ik vond die foreach altijd erg handig maar als ik dit zo zie....
  donderdag 19 mei 2005 @ 15:11:17 #93
32768 DionysuZ
Respect my authority!
pi_27152225
quote:
Op donderdag 19 mei 2005 11:54 schreef SuperRembo het volgende:
Hmmm, dat wist ik niet. Het scheel al snel erg veel

Getest met een tabel van 500 rows, 100 coll, elke cell een string van 100 chars:
While time: 0.75952410697937 s
Foreach time: 13.919291973114 s
While time: 0.0003209114074707 s
Foreach time: 14.71986413002 s
ik vond foreach altijd handig en lekker beknopt. Maar als ik dit zo zie word ik alles behalve vrolijk.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_27152495
quote:
Op donderdag 19 mei 2005 14:47 schreef ikke_ook het volgende:
hmm ik vond die foreach altijd erg handig maar als ik dit zo zie....
ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.
pi_27152521
Bovenstaande foreach-optimalisatie werkt dus alleen zoals foreach als je in de loop geen aanpassingen doet aan de array (items verwijderen of toevoegen).
pi_27152571
quote:
Op donderdag 19 mei 2005 15:18 schreef Roönaän het volgende:

[..]

ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.
Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor he
pi_27155323
quote:
Op donderdag 19 mei 2005 15:20 schreef JeRa het volgende:

[..]

Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor he
Dat komt omdat ik vermoed dat superrembo vergeten is om de internal array pointer te resetten met reset($array);

-r-
pi_27162053
Een tweede pitfall waar je dus rekening mee moet houden

Ff weer een vraagje over indices in MySQL. Stel, ik heb de volgende query:

SELECT * FROM table WHERE col1 = waarde AND col2 = waarde2 ORDER BY col3 ASC, col4 ASC

In deze query wil ik soms col3 en col4 kunnen omdraaien (om in mijn toepassing op verschillende kolommen te kunnen sorteren). Hoe kan ik dan het beste mijn indices samenstellen?
pi_27162511
Is het noodzakelijk om er indices op te zetten? Is het aantal selects zo hoog?
pi_27162740
waarom zou je er geen indices op willen zetten dan?Je kunt toch best op meerdere kolommen indices zetten?Ik dacht juist dat t goed was omdat te doen (als je er vaak op sorteerde oid)
(ik snap wel dat t een beetje meer ruimte kost maar toch niet zoveel?}
pi_27164542
quote:
Op donderdag 19 mei 2005 16:33 schreef Roönaän het volgende:

[..]

Dat komt omdat ik vermoed dat superrembo vergeten is om de internal array pointer te resetten met reset($array);

-r-
Jij ook met je slimme opmerkingen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_27166666
quote:
Op donderdag 19 mei 2005 20:33 schreef Roönaän het volgende:
Is het noodzakelijk om er indices op te zetten? Is het aantal selects zo hoog?
Nu niet, straks wel. Zelfs zonder indices zal het straks niet merkbaarder langzamer werken, maar in de load gaat het zeker wel schelen.

Bovendien wil ik mezelf bekend gaan maken op het gebied van samengestelde indices, want in dit geval is het volgens mij niet goed mogelijk om zomaar losse indices aan te maken op de kolommen
pi_27167461
kunnen jullie die benchmark niet even online zetten? zodat ik het ook eens op mijn eigen systeem kan testen? zou handig zijn!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_27167902
quote:
Op donderdag 19 mei 2005 20:40 schreef ikke_ook het volgende:
waarom zou je er geen indices op willen zetten dan?Je kunt toch best op meerdere kolommen indices zetten?Ik dacht juist dat t goed was omdat te doen (als je er vaak op sorteerde oid)
(ik snap wel dat t een beetje meer ruimte kost maar toch niet zoveel?}
indices maken ook je inserts en updates trager. Dus de verhouding select moet noemenswaardig groter zijn in mijn opinie.
pi_27168449
quote:
Op donderdag 19 mei 2005 22:30 schreef Chandler het volgende:
kunnen jullie die benchmark niet even online zetten? zodat ik het ook eens op mijn eigen systeem kan testen? zou handig zijn!
1
2
3
4
5
6
$start = array_sum(explode(' ',microtime()));
for($i = 0; $i < 10; $i++) {
    <code die je wilt testen>
}
$end = array_sum(explode(' ',microtime()));
print $end - $start;
In plaats van tot 10 kun je natuurlijk ook tot 1.000 of 10.000 gaan, maar ik zou dat niet de eerste keer doen. Als je 20 of 30 seconden moet wachten op een test dan is dat best lang
  donderdag 19 mei 2005 @ 22:55:08 #106
90061 coz
laat een bericht achter na de
pi_27168688
quote:
Op donderdag 19 mei 2005 10:52 schreef SuperRembo het volgende:
ik zie dat ie wel zou werken maar
dummie mode Cannot instantiate non-existent class ?
$db = new Database();

[ Bericht 4% gewijzigd door coz op 19-05-2005 23:06:20 ]
Leesen verrry carefully, I weel zay zis only once
Ill quit thinking w my dick when u quit fucking with my head
pi_27168811
quote:
Op donderdag 19 mei 2005 22:39 schreef Roönaän het volgende:

[..]

indices maken ook je inserts en updates trager. Dus de verhouding select moet noemenswaardig groter zijn in mijn opinie.
Bijna alle queries in mijn toepassing zijn SELECTs en deze worden dan ook in verhouding véél vaker gebruikt. INSERTs komen bijna niet voor en reguliere UPDATEs gebeuren alleen op niet-geïndexeerde kolommen.

Dat terzijde, want het doet er eigenlijk niet toe, ben ik toch benieuwd naar hoe ik dan indices zou moeten maken neem voor het gemak maar aan dat er vele duizenden rows zijn.
pi_27170031
quote:
Op donderdag 19 mei 2005 22:55 schreef coz het volgende:

[..]

ik zie dat ie wel zou werken maar
dummie mode Cannot instantiate non-existent class ?
$db = new Database();
Ja die database class moet je zelf nog ff maken

Misschien post ik morgen wel ff een simpele versie
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  vrijdag 20 mei 2005 @ 00:03:13 #109
90061 coz
laat een bericht achter na de
pi_27171550
nu bewerkte coz de donderdag 19 mei 2005 23:24 post van SuperRembo:
quote:
Ja die database class moet je zelf nog ff maken
[ , ik ben nog niet bij het hoofdstuk classes vind 't al stoer dat ik snap hoe het zou werken ]
quote:
Misschien post ik morgen wel ff een simpele versie
[ maken is idd een heel ander verhaal ]
Leesen verrry carefully, I weel zay zis only once
Ill quit thinking w my dick when u quit fucking with my head
  vrijdag 20 mei 2005 @ 10:35:11 #110
3677 SuperRembo
Sinds 1998
pi_27177562
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Database {
   
   var $connection;
   var $config;
      
   // Constructor
   function Database() {
      $this->config =& $GLOBALS['Config']['Database'];
   }
   
   // Connect to server
   function connect() {
      if (is_resource($this->connection)) return;// allready connected
      $this->connection = mssql_connect($this->config['Server'], $this->config['Username'], $this->config['Password']);
      if (!$this->connection) die("Error: could not connect to server '${this->config[Server]}'");
      if (!mssql_select_db($this->config['Database'])) die("Error: could not select database '".$this->config['Database']."'");
   }
   
   // Execute query
   function execSql($query) {
      $this->connect();
      $result = mssql_query($query);
      if (!$result) die("Error: error executing query '".$query."'");
      return $result;
   }

   // Execute query, return table (array of arrays)
   function execTable($query) {
      $result = $this->execSql($query);
      $rows = array();
      while (false !== $row = mssql_fetch_assoc($result)) {
         $rows[] = $row;
      }
      return $rows;
   }

   // Execute query, return 1 row, or false if no results found
   function execRow($query) {
      $result = $this->execSql($query);
      $row = mssql_fetch_assoc($result);
      return $row;
   }
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  vrijdag 20 mei 2005 @ 11:32:07 #111
90061 coz
laat een bericht achter na de
pi_27179264
ik zat even te kijken of er nog een config class bij moet
maar (na een kop koffie) lijkt het op dit (vanavond ) tussen die vorige quote drukken
de dingen 'password' enz veranderen en heel vaak doen

iig alvast

[mss is dit wel iets voor de FAQ - Algemene kleine vragen. Part 2.
Leesen verrry carefully, I weel zay zis only once
Ill quit thinking w my dick when u quit fucking with my head
pi_27187330
Ik weet niet of dit misschien al eerder is behandeld, heb even snel gekeken maar kon het zo 123 niet vinden. Ik zit met een probleem(pje). Een vraagje van een amateur.

Ik heb een formulier op m'n site met daarin een aantal rijen met inputvelden. Dit aantal rijen is afhankelijk van de gegevens die in mijn database staan, en worden ook ingevuld met deze gegevens. Dus:

RIj 1: input titel / input bericht
Rij 2: input titel / input bericht

Nu wil ik het voorelkaar krijgen dat ik met 1 druk op de knop (dus een soort Alles opslaan knop), alle wijzigingen die ik heb gemaakt in de velden, kan opslaan. Op dit moment is het als volgt:

#1 [input] [naam] OPSLAAN
#2 [input] [naam] OPSLAAN

maar het moet dus worden:

[input] [naam]
[input] [naam]
ALLES OPSLAAN

Nu weet ik dat het form dan gepost zou moeten worden en in php zou moeten worden uitgelezen als een array. Ik heb de verschillende inputs genoemd als :

1<input type = "text" value = "blabla"  name="bericht[{id}]">


waarbij id wordt vervangen door de id uit de database. Dit werkt allemaal.
Met print_r($_POST) krijg ik de volgende array:

1
2
3
4
5
6
7
8
9
Array ( 

[id] => Array ( [7] => 7 [1] => 1 ) 

[titel] => Array ( [7] => titela [1] => titelb ) 

[bericht] => Array ( [7] => berichta [1] => berichtb ) 

)
(waarbij de 7 voor id 7 staat en de 1 voor id 1)

Ik weet niet of dit een array is waar ik iets mee kan als ik foreach() gebruik in de update pagina.

Als dit wel zo is, weet er iemand dan hoe ik deze data zo kan uitlezen dat ik ze stuk voor stuk kan updaten in de database? Of is de array om te beginnen al niet goed?
pi_27188035
quote:
Op donderdag 19 mei 2005 20:19 schreef JeRa het volgende:
Een tweede pitfall waar je dus rekening mee moet houden

Ff weer een vraagje over indices in MySQL. Stel, ik heb de volgende query:

SELECT * FROM table WHERE col1 = waarde AND col2 = waarde2 ORDER BY col3 ASC, col4 ASC

In deze query wil ik soms col3 en col4 kunnen omdraaien (om in mijn toepassing op verschillende kolommen te kunnen sorteren). Hoe kan ik dan het beste mijn indices samenstellen?
Niemand?
  vrijdag 20 mei 2005 @ 15:45:57 #114
3677 SuperRembo
Sinds 1998
pi_27188252
Je krijgt de gegevens terug die je wil hebben, dus dat klopt wel. Alleen nog ff op de goede manier doorheen lopen

1
2
3
4
5
for ($_POST['id'] as $id) {
   $titel = $_POST['titel'][$id];
   $bericht = $_POST['bericht'][$id];
   BerichtOpslaan($id, $titel, $bericht);
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_27188568
quote:
Op vrijdag 20 mei 2005 15:45 schreef SuperRembo het volgende:
Je krijgt de gegevens terug die je wil hebben, dus dat klopt wel. Alleen nog ff op de goede manier doorheen lopen
[ code verwijderd ]
Thanks! Dat werkt perfect ja
  FOK!-Schrikkelbaas vrijdag 20 mei 2005 @ 23:39:45 #116
1972 Swetsenegger
Egocentrische Narcist
pi_27202835
Het is laat, dus weet het ff zo snel niet meer.
Hoe kan ik ook alweer in een string zoeken OF een bepaalde waarde/woord voorkomt?
pi_27203025
quote:
Op vrijdag 20 mei 2005 23:39 schreef Swetsenegger het volgende:
Het is laat, dus weet het ff zo snel niet meer.
Hoe kan ik ook alweer in een string zoeken OF een bepaalde waarde/woord voorkomt?
Bedoel je Strstr ?
  FOK!-Schrikkelbaas vrijdag 20 mei 2005 @ 23:49:38 #118
1972 Swetsenegger
Egocentrische Narcist
pi_27203084
quote:
Op vrijdag 20 mei 2005 23:47 schreef MouseInteractive het volgende:

[..]

Bedoel je Strstr ?
Aardig in de richting, of het moet een preg match worden.

Thanks.
pi_27204082
quote:
Op vrijdag 20 mei 2005 23:49 schreef Swetsenegger het volgende:

[..]

Aardig in de richting, of het moet een preg match worden.

Thanks.
Een preg_match is niet nuttig als je naar een vaste string zoekt.
  zaterdag 21 mei 2005 @ 01:28:06 #120
62215 qu63
..de tijd drinkt..
pi_27205656
Allo

Ik ben op zoek naar een scriptje wat van go.php?http://website een pagina maakt met 2 frames. boven komt mijn pagina te staan, en onder komt dat http://website te staan

Alvast bedankt
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')