Thoraxxx Skrevet 20. mai 2007 Rapporter Del Skrevet 20. mai 2007 Jeg har sett i mange php programmer at de bruker en slags databaseprefix i filene sine. Sånn har jeg også lyst til å gjøre Altså sånn at man har en config hvor selve prefixen står. I alle de andre filene hvor du skal hente informasjon eller redigere informasjon fra databasen, er configfila inkludert og du har angitt at den skal ta med prefixen. Eks: sql-spørring: select from [prefix] & tabell ORDER BY id Er det noen som har noen gode eksempler på hvordan dette gjøres? Lenke til kommentar
Runar0 Skrevet 20. mai 2007 Rapporter Del Skrevet 20. mai 2007 Slik gjør eg det: PHP <?php /* Config.php */ $prefix = 'sh_'; define('USER_TABLE', $prefix.'users'); define('NEWS_TABLE', $prefix.'news'); ?> <?php /* Nyheiter.php */ ... mysql_query('SELECT * FROM'.NEWS_TABLE); ... ?> Lenke til kommentar
Alex Moran Skrevet 20. mai 2007 Rapporter Del Skrevet 20. mai 2007 (endret) Det er vel ikke noe hokus-pokus. PHP <?php /* config.php */ $config = array( 'prefix' => 'prefix_'; ); /* select.php */ include_once('config.php'); // no.php.net/extract extract($config); mysql_query("SELECT * FROM {$prefix}tabell ORDER BY id DESC"); ?> Endret 20. mai 2007 av hans3k Lenke til kommentar
PHPdude Skrevet 20. mai 2007 Rapporter Del Skrevet 20. mai 2007 Er vel egentlig ikke noe hokus pokus. Viss du bare kjører spørringene dine direkte så er vel den simpleste måten bare å definere TABLE_*-konstanter for tabellene i databasen din ala noe sånt: define('TABLEPREFIX', 'myproject_'); define('TABLE_NEWS', TABLEPREFIX . 'news'); define('TABLE_USERS', TABLEPREFIX . 'users'); // osv osv // eksempel på spørring $result = $db->query('SELECT * FROM ' . TABLE_NEWS); En mer OOP-vennlig måte ville nok vært å droppe konstantene til fordel for en klasse som kan håndtere tabellnavnene. Lenke til kommentar
Thoraxxx Skrevet 20. mai 2007 Forfatter Rapporter Del Skrevet 20. mai 2007 Er vel egentlig ikke noe hokus pokus.Viss du bare kjører spørringene dine direkte så er vel den simpleste måten bare å definere TABLE_*-konstanter for tabellene i databasen din ala noe sånt: define('TABLEPREFIX', 'myproject_'); define('TABLE_NEWS', TABLEPREFIX . 'news'); define('TABLE_USERS', TABLEPREFIX . 'users'); // osv osv // eksempel på spørring $result = $db->query('SELECT * FROM ' . TABLE_NEWS); En mer OOP-vennlig måte ville nok vært å droppe konstantene til fordel for en klasse som kan håndtere tabellnavnene. 8657837[/snapback] Høres veldig bra ut alt sammen! Jeg har prøvd dem, men får dem ikke til å virke. Kan noen lage et fulstendig eksempel til meg, så det er lettere å se hva jeg skal gjøre? Tusen takk for all hjelp! Lenke til kommentar
-morten Skrevet 20. mai 2007 Rapporter Del Skrevet 20. mai 2007 Uh.. du har jo nettopp fått hele tre fullstendige eksempler.. Hva med å heller gi oss koden som ikke virker? Lenke til kommentar
Ståle Skrevet 21. mai 2007 Rapporter Del Skrevet 21. mai 2007 Jeg har sett i mange php programmer at de bruker en slags databaseprefix i filene sine. Sånn har jeg også lyst til å gjøre 8657694[/snapback] Du trenger det ikke. Vent med det , til du vet hvorfor man trenger det Lenke til kommentar
Thoraxxx Skrevet 21. mai 2007 Forfatter Rapporter Del Skrevet 21. mai 2007 (endret) Jeg har sett i mange php programmer at de bruker en slags databaseprefix i filene sine. Sånn har jeg også lyst til å gjøre 8657694[/snapback] Du trenger det ikke. Vent med det , til du vet hvorfor man trenger det 8663756[/snapback] Jeg vil bruke prefix, for jeg har laget et enkelt publiseringssystem. Hvis noen andre i familien vil bruke det systemet, blir veldig tungvint å endre all tabellinfoen i systemet. Derfor tenkte jeg å bruke prefix Denne koden vil jeg bruke prefix på. Veldig glad om noen lager config-fila også! Select.php: Klikk for å se/fjerne innholdet nedenfor <?php // Connects to your Database mysql_connect("localhost", "", "") or die(mysql_error()); mysql_select_db("") or die(mysql_error()); $result = mysql_query("SELECT * FROM cms1 WHERE length(under)=0 ORDER BY sortering ASC, id"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { printf("<a href='meny.php?type=%s'>%s</a>", $row["type"], $row["type"]); } ?></ Endret 21. mai 2007 av mariusmk Lenke til kommentar
Ståle Skrevet 21. mai 2007 Rapporter Del Skrevet 21. mai 2007 Det er ikke vits i.. og du trenger det ikke. Har du mer enn 10 tabeller? hvis ja; $prefix = 'mitt_cms'; $result = mysql_query("SELECT * FROM $prefix_cms1 WHERE length(under)=0 ORDER BY sortering ASC, id"); Men hvis du ikke vet hvordan du setter inn en variabel i en string, sa tror jeg egentlig ikke heller pa at du har laget et cms...... det kan jeg heller ikke se pa koden din. OK, men ikke som om du har kodet et helt CMS. (CMS er mye mer enn 'legg til nyhet', 'slett nyhet' og 'endre nyhet'. Det er veldig fint a begynne pa den maten, men du trenger ikke prefix pa tabellene) Lenke til kommentar
-morten Skrevet 21. mai 2007 Rapporter Del Skrevet 21. mai 2007 Det funker dårlig, for _ er tillatt i variabelnavn :] Du må ha "SELECT * FROM {$prefix}_cms1", "SELECT * FROM ".$prefix."_cms1" eller noe i den dur. Men poenget er bare at du må ha en variabel med prefixet, som du skriver før tabellnavnet alle steder. Evt definerer en konstant for hvert tabellnavn slik noen over foreslo. Dette er jo litt tungvindt, så det er ikke noe poeng å gjøre det bare fordi noen andre gjør det.. Grunnen til at diverse forum-software og CMS-er har det, er at de skal settes opp rundt om kring hos ørten forskjellige folk, og da er det en risiko for at databasen allerede inneholder en tabell som heter users eller forum_users eller noe slikt hos noen. Og kanskje man ønsker å kjøre flere forum på samme database, og da må man kunne kalle den ene forum1_users og den andre forum2_users osv. Siden du spør om noe som egentlig er såppas enkelt, så tviler jeg på at du lager den neste Joomla i denne omgang, så hadde jeg vært deg hadde jeg droppa det for enkelhetens skyld :] Lenke til kommentar
Ståle Skrevet 21. mai 2007 Rapporter Del Skrevet 21. mai 2007 hmm.. jeg greide jo det ikke da Men ja, svaret pa det du lurte pa fikk du i post #3 Lenke til kommentar
Thoraxxx Skrevet 22. mai 2007 Forfatter Rapporter Del Skrevet 22. mai 2007 Det er ikke vits i.. og du trenger det ikke. Har du mer enn 10 tabeller? hvis ja; $prefix = 'mitt_cms'; $result = mysql_query("SELECT * FROM $prefix_cms1 WHERE length(under)=0 ORDER BY sortering ASC, id"); Men hvis du ikke vet hvordan du setter inn en variabel i en string, sa tror jeg egentlig ikke heller pa at du har laget et cms...... det kan jeg heller ikke se pa koden din. OK, men ikke som om du har kodet et helt CMS. (CMS er mye mer enn 'legg til nyhet', 'slett nyhet' og 'endre nyhet'. Det er veldig fint a begynne pa den maten, men du trenger ikke prefix pa tabellene) 8667136[/snapback] Det virker som dere missforstår litt. Jeg har brukt betegnelsen "enkel" hver gang jeg snakker om publiseringsløsningen min. Saken er at andre i familien vil bruke det "enkle" publiseringssystemet. Jeg ønsker å benytte samme database og dermed forskjellige tabeller. Det som da er saken er at for hver gang et nytt familiemedlem vil lage sin nettside med cms'en, så må jeg endre alle admin-filene hvor jeg redigerer artikler, sidekolofoner, brukere, kategoriinnhold. Det er over 20 adminfiler og dermed blir det kjedelig å endre all tabellinfoen til dem. Jeg har bare vist dere de stedene av publiseringssystemet hvor jeg har hatt problemer. Det er ikke bare endring av nyheter i systemet. Lenke til kommentar
Martin A. Skrevet 22. mai 2007 Rapporter Del Skrevet 22. mai 2007 Det vil si at du har lagd et eget "CMS", men aner ikke hvordan man putter variabler/konstanter sammen med normalt tekst? Noe som ikke stemmer her. Lenke til kommentar
Thoraxxx Skrevet 22. mai 2007 Forfatter Rapporter Del Skrevet 22. mai 2007 Det vil si at du har lagd et eget "CMS", men aner ikke hvordan man putter variabler/konstanter sammen med normalt tekst? Noe som ikke stemmer her. 8670971[/snapback] Når man spør på forum om hjelp til en ting, burde det vell ikke være sånn at man må forklare seg hele tiden Jeg spurte konkret om hjelp til å sette inn en prefix. Jeg kan ikke så mye og jeg har sagt utallige ganger at det er et enkelt system. Lenke til kommentar
Martin A. Skrevet 22. mai 2007 Rapporter Del Skrevet 22. mai 2007 Mulig kommentaren min var en smule frekk, men dette er så elementært at man burde kunne det. Selv om na bare har skrevet et enkelt "cms". Lenke til kommentar
Ståle Skrevet 22. mai 2007 Rapporter Del Skrevet 22. mai 2007 Ja, jeg er enig med deg M4rTin. Dette burde tradstarter klare selv. Og ihvertfall siden han fikk svaret i post #3. Hvorfor forsetter du a sporre det samme sporsmalet? Lenke til kommentar
Thoraxxx Skrevet 22. mai 2007 Forfatter Rapporter Del Skrevet 22. mai 2007 Ja, jeg er enig med deg M4rTin. Dette burde tradstarter klare selv.Og ihvertfall siden han fikk svaret i post #3. Hvorfor forsetter du a sporre det samme sporsmalet? 8672567[/snapback] Enig at jeg burde klare det selv, men jeg prøvde så best jeg kunne, men det virket ikke Lenke til kommentar
Ståle Skrevet 22. mai 2007 Rapporter Del Skrevet 22. mai 2007 Har du laget en tabell med prefix-navnet? De kommer ikke automatisk hvis det var det du regnet med. Har du satt samme prefix som du har pa tabellen? Prov a echo tabellnavnet, se hva du far. Evt post #2 gar ogsa. Den er grei og enkel. Lenke til kommentar
Thoraxxx Skrevet 22. mai 2007 Forfatter Rapporter Del Skrevet 22. mai 2007 (endret) Har du laget en tabell med prefix-navnet? De kommer ikke automatisk hvis det var det du regnet med.Har du satt samme prefix som du har pa tabellen? Prov a echo tabellnavnet, se hva du far. Evt post #2 gar ogsa. Den er grei og enkel. 8672921[/snapback] Nå har jeg endelig klart det. Jeg takker for all hjelp. Det ble post nr. 3 Jeg må ha gjort et eller annet feil forrige gang Edit: Jeg tror kanskje det var at jeg ikke hadde regnet med at det skulle være _ etter prefix. Endret 22. mai 2007 av mariusmk Lenke til kommentar
grimjoey Skrevet 4. juni 2007 Rapporter Del Skrevet 4. juni 2007 hvorfor ikke bare: config.php: $prefix = "prefix_"; eof array(key => value) og extract() virker litt overflødig. jeg ser du har fått en del kritikk. jeg syns hjemmesiden din ser bra ut nå. bra du ble kvitt den funky flash menyen. godt jobbet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå