"Spara" variabler i php

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Täby
  • 2006-06-06 14:02

Hej.

Jag sitter och kodar ett web-galleri med php och mysql. Jag skulle vilja att när man klickar på en länk till ett av gallerierna, så ska man läsa in infon från mysql-databasen en gång och lägga i variabler som sen skickas med på något sätt när man bläddrar sig igenom galleriet (blir ju avsevärt mycket midre anropp till mysql-servern vilket jag har fått för mig är att föredra). jag tänkte mig ha en address som ser ut något i stil med:
/mygallery.php?galleryid=2&page=3

dock så finns det mer info från databasen, typ fullständigt namn, fotograf mm. Hur gör jag för att skicka med dessa (vill inte ha som via _GET) när man går till nästa sida, ska jag använda sessions och hur gör jag det i så fall, eller finns det något smidigare?

Hälsningar
Sommer

Du kan lägga in dem i tabellen $_SESSION, då hänger informationen med från en sidvisning till en annan. Men jag är tveksam till att det är någon vidare bra idé att cacha det databasanrop du beskriver, själva SQL-satsen är med största sannolikhet en "walk in the park" för databashanteraren och du introducerar samtidigt ett nytt problem iom att det du cachar i sessionen på något sätt behöver hållas i synk med det som faktiskt ligger i databasen.

Skulle föreslå att du skippar hela sessionscachningsidén och kanske tar upp den igen den dag då den stackars lilla SQL-satsen verkligen börjar vara ett problem (och jag tvivlar starkt på att den dagen nånsin kommer).

glöm inte bort att starta sessionen om nu du ska göra nått med sessions iframtiden....
http://se.php.net/manual/en/function.session-start.php

  • Medlem
  • Stockholm
  • 2006-06-06 17:54

håller med samuel, att köra queryn varje sidladdning bör inte vara några problem

  • Medlem
  • Täby
  • 2006-06-06 18:04

Ok tack. Va inne på det också. Men jag tänkte att med tiden så växer databasen, då blir det mer att söka i och att göra det 80ggr (en för varje sida i galleriet) borde kunna bli tyngre än att ha en session. synkningen tror jag att jag skulle kunna få till ganska bra. men om ni tror att det är lungt med en sql-query i varje sida så är ju det onekligen enklare.

  • Medlem
  • Vallentuna
  • 2006-06-06 18:47

Håller med om att det förmodligen inte behöver optimeras, men om det börjar bli segt vore väl en enkel lösning att cacha hela sidan, eller så mycket av den som nu är oföränderlig. Alltså att du skapar en statisk sida, som du skapar om varje gång informationen som ska visas sidan ändras.

  • Medlem
  • Täby
  • 2006-06-07 12:08

ok tack för alla svar, jag anroppar databasen varje gång nu och det funkar. Får väll ändra på det om det blir segt när databasen växer

Ursprungligen av sommer:

ok tack för alla svar, jag anroppar databasen varje gång nu och det funkar. Får väll ändra på det om det blir segt när databasen växer

Allt beror ju såklart på vilken hårdvara du har, men kommenterar lite ändå.

Du behöver inte oroa dig för så länge du söker efter primary key eller iaf något index i databasen.
Om du skulle byta och lagra allt i sessioner kommer den datan att belasta ramminnet på servern istället och antagligen sega ner ännu mer.
Annars är malescas förslag en bra idé så länge det inte läggs in nya bilder med allt för hög frekvens. Låter dock som lite overkill i detta fall om du inte planerar att ha grymt mycket bilder.

En stor webbsida jag är utvecklare på har ca 15 000 bilder i fotoalbum och vi känner inga som helst krav att behöva cacha hela sidor, sökningar eller spara info i sessioner.

blandning av fakta och tro:

1. Om mysql körs på unix-system används allt ledigt minne som filchache, så finns det mkt minne blir nog inte hårddisken en flaskhals
2. Mysql cachar med största sannolikhet själv databaser och tabeller - och gör det bra
3. PHP är inte lika snabbt som nativ kod så att jobba med cache där kan i värsta fall tom innebära att det blir flaskhalsen
4. cachar du i php kommer du ha en cache för varje användare - låter du os och mysql cacha delar alla användare den cachen - betydligt effektivare användning av minnet

hi-5!

1
Bevaka tråden