Avatar billede darkstardk Nybegynder
05. april 2009 - 13:47 Der er 5 kommentarer og
1 løsning

oprette database ud fra php kode

Som overskriften siger, er det muligt at oprette databasen ud fra selve koden? Automatisk self, har en hjemmeside jeg lavede for nogle år siden, men databasen er gået tabt og orker næsten ik at sidde og gøre det manuelt :S

På forhånd tak
Avatar billede arne_v Ekspert
05. april 2009 - 14:45 #1
Du kan oprette en database fra PHP ved brug af CREATE DATABASE, men det lyder som om at du vil genskabe hele database strukturen udfra den PHP som bruger den - det kan ikke automatiseres - det vil kræve lidt manuel kode læsning (finde alle INSERT og SELECT og se hvilke felter der bruges).
Avatar billede darkstardk Nybegynder
05. april 2009 - 15:48 #2
uha, det var det svar jeg var bange for at få ;)

Nå men det kan være du kan hjælpe mig alligevel, jeg har ikke selv lavet systemet, det var en kammerat der gjorde i sin tid..
Han har brugt noget der hedder Smarty, og jeg kan ik helt dreje det :S

her er et lille uddrag af functions.php

function getLinkCat($id) {
    global $prefix;
    $query = mysql_query("SELECT * FROM ".$prefix."linkgroups WHERE id = '$id'");
    $result = mysql_fetch_array($query);
    return $result['name'];
}
/* END OF GLOBAL FUNCTIONS */

/* ADMIN - MEMBERS */
function admin_members_add() {
    global $prefix;
    $return .= ('
<form name="admin_members_add" method="POST" action="">
<b>Brugernavn:</b><br>
<input type="text" name="username" size="40"><br>
<b>Kodeord:</b><br>
<input type="text" name="password" size="40" value=""><br>
<b>Status:</b><br>
<select name="status">');
    $get = mysql_query("SELECT * FROM ".$prefix."membergroups ORDER BY name") or die(mysql_error());
    while($getstatus = mysql_fetch_array($get)) {
        $return .= ('    <option value="'.$getstatus['id'].'"');
        if ($result['status'] == $getstatus['id']) $return .= ('selected');
        $return .= ('>'.$getstatus['name'].'</option>');
    }
    $return .= ('</select><br>
<b>Level:</b><br>
<select name="access">');
    $get = mysql_query("SELECT * FROM ".$prefix."access ORDER BY id") or die(mysql_error());
    while($getstatus = mysql_fetch_array($get)) {
        $return .= ('    <option value="'.$getstatus['status'].'"');
        if ($result['access'] == $getstatus['status']) $return .= ('selected');
        $return .= ('>'.$getstatus['name'].'</option>');
    }
    $return .= ('</select><br>
<div align="center"><input type="submit" name="admin_members_add" value="TILFØJ MEDLEM"></div>
</form>
');
    return $return;
}



Her er det så jeg er lidt lost når der står:

$query = mysql_query("SELECT * FROM ".$prefix."linkgroups WHERE id = '$id'");

FROM ".§prefix, hedder tabellen så linkgroups? og er det §prefix, en man bruger senere eller?
Avatar billede arne_v Ekspert
05. april 2009 - 17:02 #3
Du skal have en tabel ved navn xxxx_linkgroups med nogle felter heraf et som hedder id.

xxxx er et tabel prefix som nan typisk bruger for at undgå navne konflikter.
Avatar billede darkstardk Nybegynder
05. april 2009 - 17:29 #4
arhh, self havde jeg slet ik tænkt på ;)

Mange tak

Smid et svar så får du points
Avatar billede darkstardk Nybegynder
05. april 2009 - 17:43 #5
Lige et hurtigt spørgsmål mere

function admin_news_edit($id) {
    global $prefix;
    $query = mysql_query("SELECT * FROM ".$prefix."news WHERE id = '$id'");
    $result = mysql_fetch_array($query);
    return('
<form name="admin_news_edit" method="POST" action="">
<b>Overskrift</b><br>
<input type="text" name="header" size="50" value="'.$result['header'].'"><br>
<b>Tekst:</b><br>
<textarea name="content" cols="50" rows="20">'.$result['content'].'</textarea><br><br>
<div align="center"><input type="submit" name="admin_news_edit" value="REDIGER NYHED"></div>
</form>
');
}



Den hedder news med felterne id, header og content

er det rigtigt?
Avatar billede arne_v Ekspert
05. april 2009 - 23:30 #6
Der er mindst de felter - der kan være flere. Men ja.

Og svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester