Kom ihåg mig?
Home Menu

Menu


Optimera MySQL-databasen med ett PHP-script

Ämnesverktyg Visningsalternativ
Oläst 2006-01-01, 15:47 #1
Spindels avatar
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 2 486
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
Spindels avatar
 
Reg.datum: Mar 2004
Inlägg: 2 486
Har en kolumn i en MySQL-databas med över 3500 poster. Saken är att runt 500 av dem i själva kolumnen är unika, resterande är dubbellagring vilket inte är speciellt optimerat.

Jag har skapat en ny tabell där jag har lagt till alla 500 unika namn med unikt ID. Nu vill jag ändra så att namnen i den andra tabellen ändras till ID-nummrena istället.

Någon som har någon idé hur jag ska göra detta med hjälp av PHP? Skriv också själva koden och hur den fungerar så jag lär mig också

För att sammanfatta, har en tabell som heter spel. I den finns en kolumn som heter utvid. Har gjort en ny tabell som heter utvecklare och vill nu ändra så att namnen i utvid (i tabellen spel) blir ID-nummret som representerar utvecklaren i kolumnen id (i tabellen utvecklare).
Spindel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-01, 17:36 #2
DeSotos avatar
DeSoto DeSoto är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2005
Inlägg: 323
DeSoto DeSoto är inte uppkopplad
Flitig postare
DeSotos avatar
 
Reg.datum: Oct 2005
Inlägg: 323
Det är väl bara att läsa in datan från båda tabellerna i vars en array, och sen köra en update-sats för varje post?
DeSoto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-01, 17:48 #3
Spindels avatar
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 2 486
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
Spindels avatar
 
Reg.datum: Mar 2004
Inlägg: 2 486
Citat:
Originally posted by DeSoto@Jan 1 2006, 17:36
Det är väl bara att läsa in datan från båda tabellerna i vars en array, och sen köra en update-sats för varje post?
Mina PHP-kunskaper är tyvärr inte så bra, vet du ifall du skulle kunna visa kod-exempel?
Spindel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-01, 19:13 #4
DeSotos avatar
DeSoto DeSoto är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2005
Inlägg: 323
DeSoto DeSoto är inte uppkopplad
Flitig postare
DeSotos avatar
 
Reg.datum: Oct 2005
Inlägg: 323
Mja, den tiden är förbi då jag programmerade gratis åt folk. =) Men om jag har förstått det rätt, så har du tidigare haft data om utvecklaren i samma tabell som spel, men vill nu bryta ut datan om utvecklaren till en egen tabell och koppla dem med ett id?
DeSoto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-01, 19:33 #5
Spindels avatar
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 2 486
Spindel Spindel är inte uppkopplad
Klarade millennium-buggen
Spindels avatar
 
Reg.datum: Mar 2004
Inlägg: 2 486
Ja, det stämmer bra det.
Spindel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-01, 20:37 #6
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
Jag kan fortfarande programmera gratis åt folk. I alla fall såna här enkla grejer. Du behöver bara läsa in utvecklartabellen i en array och så uppdatera speltabellen utifrån den.

Steg 1, läsa in tabellen i en array: (byt ut allt som står med stora bokstäver)

Kod:
<?
 *$result = mysql_query("select ID-KOLUMNEN, UTVECKLARNAMNET from UTVECKLARTABELLEN");
 *while ($r = mysql_fetch_array($result))
 *{
 * *$utvecklare[$r['ID-KOLUMNEN']] = $r['UTVECKLARNAMNET'];
 *}
?>
Steg 2, uppdatera speltabellen:

Kod:
<?
 *foreach ($utvecklare as $id => $namn)
 *{
 * *mysql_query("update SPELTABELLEN set utvid = '$id' WHERE utvid = '$namn'");
 *}
?>
(Backup och sånt där innan förstås eftersom jag inte har någon möjlighet att testa koden.)
tydal är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017