Jeg har en nettside som henter ut en tabell fra en ekstern url. Denne tabellen blir hentet med PHP og file_get_contents($url); + en funksjon som henter ut kildekoden mellom spesifikke tager. Jeg får derfor en variabel som inneholder kildekoden til den eksterne tabellen, og som jeg igjen echoer på min side.
Hele poenget med min nettside, er å vise tabelldataen på en ryddigere måte. For å endre på tabelldesignet har jeg laget en egen css-fil hvor jeg benytter class-navnene som allerede finnes i tabellen, men enkelte steder må jeg endre selve koden til tabellen (f.eks. må jeg endre på HREF-verdiene flere steder, siden disse lenker til det eksterne domenet). Jeg har derfor i PHP-koden flere kodesnutter (str_replace/preg_replace) som erstatter diverse tekst i tabellkoden.
Selv om dette høres ut som ganske så skitten kode, fungerer det overraskende greit. Det er nå problemet mitt dukker opp: Siden laster sakte. Veldig sakte. Og det er nok hovedsaklig fordi de fleste av cellene fra den eksterne nettsida inneholder brukernavn. På min nettside vises derimot det ekte navnet, og for å få til dette benytter jeg meg av:
Dette fungerer jo for så vidt, men når det er snakk om over 10 000 slike preg_replace, skjønner man at siden laster ekstremt tregt. Det er snakk om cirka 20 brukernavn i hver tabell (kommer ny tabell fra den eksterne nettsiden daglig), men de 20 brukernavnene kan altså være hentet tilfeldig fra de 10 000 brukernavnene i lista jeg har.
TL;DR
Mitt spørsmål er da; går det an å legge de 10 000 brukernavnene inn i en MySQL-database, for deretter å kunne hente ut kun de 20 relevante brukernavnene? Altså at PHP-siden min tar verdiene fra tabellcellene, spør i databasen om BRUKERNAVN finnes, får svar tilbake om at EKTE NAVN er det ordentlige navnet til BRUKERNAVN, for deretter å sette dette ekte navnet som ny verdi i den respektive tabellcellen? På den måten vil i hvert fall lastetiden senkes betraktlig!
Kan legge til at jeg ikke er stødig i MySQL-programmering, men jeg vet hvordan jeg oppretter en database og legger inn data, samt å koble til en database fra PHP. Er for så vidt ikke veldig dyktig i PHP heller, men der skjønner jeg i hvert fall syntaksen nokså bra og klarer som oftest å søke meg fram til det meste. Så om noen vet en løsning på problemet mitt, hadde det vært fint om en eventuell MySQL-kode var nokså "klipp og lim" - eventuelt med et godt pekepinn om hvordan jeg kan få løst det selv.
Hele poenget med min nettside, er å vise tabelldataen på en ryddigere måte. For å endre på tabelldesignet har jeg laget en egen css-fil hvor jeg benytter class-navnene som allerede finnes i tabellen, men enkelte steder må jeg endre selve koden til tabellen (f.eks. må jeg endre på HREF-verdiene flere steder, siden disse lenker til det eksterne domenet). Jeg har derfor i PHP-koden flere kodesnutter (str_replace/preg_replace) som erstatter diverse tekst i tabellkoden.
Selv om dette høres ut som ganske så skitten kode, fungerer det overraskende greit. Det er nå problemet mitt dukker opp: Siden laster sakte. Veldig sakte. Og det er nok hovedsaklig fordi de fleste av cellene fra den eksterne nettsida inneholder brukernavn. På min nettside vises derimot det ekte navnet, og for å få til dette benytter jeg meg av:
Kode
$url = preg_replace('/\bBRUKERNAVN\b/', 'EKTE NAVN', $url);
TL;DR
Mitt spørsmål er da; går det an å legge de 10 000 brukernavnene inn i en MySQL-database, for deretter å kunne hente ut kun de 20 relevante brukernavnene? Altså at PHP-siden min tar verdiene fra tabellcellene, spør i databasen om BRUKERNAVN finnes, får svar tilbake om at EKTE NAVN er det ordentlige navnet til BRUKERNAVN, for deretter å sette dette ekte navnet som ny verdi i den respektive tabellcellen? På den måten vil i hvert fall lastetiden senkes betraktlig!
Kan legge til at jeg ikke er stødig i MySQL-programmering, men jeg vet hvordan jeg oppretter en database og legger inn data, samt å koble til en database fra PHP. Er for så vidt ikke veldig dyktig i PHP heller, men der skjønner jeg i hvert fall syntaksen nokså bra og klarer som oftest å søke meg fram til det meste. Så om noen vet en løsning på problemet mitt, hadde det vært fint om en eventuell MySQL-kode var nokså "klipp og lim" - eventuelt med et godt pekepinn om hvordan jeg kan få løst det selv.
Sist endret av zorro; 4. november 2013 kl. 16:35.