Een hoop items updaten en de performance

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

24/05/2010 13:36:54
Quote Anchor link
Hallo,

In de uberl33t-admin backend van mijn site heb ik een beheerpagina gebouwd waarin ik alle items (laten we maar zeggen, de nummers van de treinen kan bewerken.)

Nu vroeg ik me af. Als ik maar enkele aanpas dan update hij ook alle velden. Ook die weer niet aangepast zijn.

Nu vroeg ik me af, kost dit niet extra belasting voor de database om dingen te updaten die niet aangepast zijn (dezelfde waardes), of kan ik beter iets maken die ocntroleert wat er gewijzigd is, en dat alleen maar update?
En hoe zou je zoiets makkelijk kunnen maken?

Ik heb nu even geen toegang tot de code, maar uit mijn hoofd hebben de formulier-veldnamen deze opbouw:
materieel[2][indienst].

Eeste nummer is het ID, en het tweede deel is het type veld uit de database (kan ook bijv. 'gesloopt zijn')

Iemand enig idee?
Gewijzigd op 24/05/2010 13:38:11 door - Ariën -
 
PHP hulp

PHP hulp

23/11/2024 10:41:44
 
Erik Rijk

Erik Rijk

24/05/2010 14:14:46
Quote Anchor link
Kan je niet vantevoren een array maken die alle data bevat + eentje bij het opslaan en deze vergelijken dmv array_unique? deze functie geeft een nieuwe array terug met de wijzigingen. Hier kan dan mee verder werken.
 
B a s
Beheerder

B a s

24/05/2010 14:20:02
Quote Anchor link
Inderdaad logische oplossing. Of als je nummers moet aanpassen met records en iedere keer wel een update / insert moet doen, kun je er een foreach loopje van maken die vervolgens dmv array_key_exists checked of hij bestaat. Zo niet, dan een query..
 

24/05/2010 14:28:11
Quote Anchor link
Je zou ook naar ajax kunnen kijken...
Dynamisch formulier van maken.
 
- Ariën  -
Beheerder

- Ariën -

24/05/2010 14:33:24
Quote Anchor link
En aan wat voor manier dacht je dan Karl? ;)
 
Jelmer -

Jelmer -

24/05/2010 14:41:54
Quote Anchor link
Zodra je op [enter] drukt in je veld stuur je via javascript de data naar PHP, die dan één update query draait.

Ik denk trouwens dat je database zelf ook wel checkt of een waarde echt nieuw is, of dat je naar een al bestaande waarde wilt updaten. Sterker nog, volgens mij levert mysql_affected_rows 0 op als je update naar exact dezelfde waarden. Of was dat SQLite die dat deed...
 

24/05/2010 15:00:38
Quote Anchor link
Jel:
Zodra je op [enter] drukt in je veld stuur je via javascript de data naar PHP, die dan één update query draait.

Inderdaad, of gewoon als je een tabel hebt dat de cel dan veranderd in een input veld. Kan ook nog. Of dat de rij een form wordt. Van alles is mogelijk.
 
Willem Jan Z

Willem Jan Z

24/05/2010 16:19:13
Quote Anchor link
Jelmer:
Sterker nog, volgens mij levert mysql_affected_rows 0 op als je update naar exact dezelfde waarden.
Klopt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.