Avatar billede blood.dk Nybegynder
22. december 2003 - 18:48 Der er 5 kommentarer og
2 løsninger

Lave en switch om til sql

Hej
Jeg har følgende kode som jeg vil lave om til en database søgning.

Kaldet ser sådan ud: Main.php?id=1&action=1
Og swith'en vælger så hvilken filer der skal include'eres.
Det kan laves om til Mysql jeg ved dog ikke hvordan.


//    vælg action.
Function select_action($i,$j,$contentdir){
switch ($i):
  case 0:
      $forceArray = select_menu($j,$contentdir);
      break;
  case 1:
      $forceArray = select_info_page($j,$contentdir);
      break;
  case 2:
      $forceArray = select_activity($j,$contentdir);
      break;
  case 3:
      $forceArray = select_message($j,$contentdir);
      break;
  case 4:
      $forceArray = select_news($j,$contentdir);
      break;
  case 5:
      $forceArray = select_gallery($j,$contentdir);
      break;
  case 6:
      $forceArray = select_tagwall($j,$contentdir);
      break;
  default:
      $forceArray = select_menu($j,$contentdir);
endswitch;
return array ($forceArray[0],$forceArray[1]);
}


// -0-    vælg menu.
Function select_menu($i,$contentdir){
switch ($i):
  case 0:
        $forceArray[0]= null;
    $forceArray[1]= $contentdir.'main_0_00.php';
      break;
  case 1:
        $forceArray[0]= $contentdir.'sub_menu_01.php';
    $forceArray[1]= $contentdir.'main_1_00.php';
      break;
  case 2:
        $forceArray[0]= $contentdir.'sub_menu_02.php';
    $forceArray[1]= $contentdir.'main_2_00.php';
      break;
  case 3:
        $forceArray[0]= $contentdir.'sub_menu_03.php';
    $forceArray[1]= $contentdir.'main_3_00.php';
      break;
  case 4:
        $forceArray[0]= $contentdir.'sub_menu_04.php';
    $forceArray[1]= $contentdir.'main_4_00.php';
      break;
  case 5:
        $forceArray[0]= $contentdir.'sub_menu_05.php';
    $forceArray[1]= $contentdir.'main_5_00.php';
      break;
  case 6:
        $forceArray[0]= $contentdir.'sub_menu_06.php';
    $forceArray[1]= $contentdir.'main_6_00.php';
      break;
  default:
        $forceArray[0]= $contentdir.'sub_menu_00.php';
    $forceArray[1]= $contentdir.'main_1_00.php';
endswitch;
Return array ($forceArray[0],$forceArray[1]);
}

// -1-    vælg side i 'Hold info'.
Function select_info_page($i,$contentdir){
switch ($i):
  case 0:
        $forceArray[0]= $contentdir.'sub_menu_01.php';
    $forceArray[1]= $contentdir.'main_1_00.php';
      break;
  case 1:
        $forceArray[0]= $contentdir.'sub_menu_01.php';
    $forceArray[1]= $contentdir.'main_1_01.php';
      break;
.... osv osv osv.
Avatar billede Slettet bruger
22. december 2003 - 19:00 #1
Oventående ser ihvertfald ikke særligt smart ud :)

Men det er ikke klart, hvad det er, du gerne vil have hjælp til.
Lave en 'switch' om til 'mysql'? Det svarer lidt til at lave en 'kartoffel' om til en 'loddekolbe'.
Avatar billede blood.dk Nybegynder
22. december 2003 - 22:55 #2
Ok, så må jeg jo uddybe det lidt!

Jeg vil gerne have at når jeg kalder siden main.php?id=x&action=x eller bare main.php?id=x, hvor x er et nummer.
Så skal jeg lave et opslag i en database(MySql?) med id=x og få en array tilbage med følgende indhold.
  1# $tittel -> tekst
  2# $sub_menu -> filnavn
  3# $indhold -> filnavn eller tekst (helst filnavn, det kan jeg styre)
  4# (måske flere?)

Ud fra resultaterne vil jeg så include den relevandte $sub_menu og putte den tilhørende $tittel ind i en template hvori jeg vil include eller echo $indhold, alt efter om det er en fil eller tekst.

Du kan evt. lige kikke på www.eif-springerne.dk

Jeg håber at det er nok info ellers må de lige spørge(igen ;-).

Thomas.
Avatar billede Slettet bruger
22. december 2003 - 23:20 #3
Nu forstår jeg, hvad du vil. Og det lyder da helt rigtigt, måden du har tænkt dig at gøre det på.

Hvad er problemet?
Avatar billede blood.dk Nybegynder
23. december 2003 - 00:02 #4
Jeg ved ikke hvordan det kodes i php.(jeg er ikke så skrap til php og slet ikke til MySql) Jeg har dog set og læst nogle aktikler på webcafe.dk, meeen.
Jeg vil bare gerne starte rigtigt for ikke at ende med noget rigtigt L*** der godnok virker men ikke er kønt.
Derfor ville jeg IKKE have hele løsningen, men måake et lille eksempel jeg kan udbygge til mit eget behov.

Thomas.
Jeg skal på job imorgen, men jeg er tilbage i morgen efter middag hvis du ville hjælpe. :-D
Avatar billede blood.dk Nybegynder
23. december 2003 - 20:43 #5
Jeg ville gerne have lidt hjælp.

Thomas
Avatar billede myplacedk Nybegynder
23. december 2003 - 23:27 #6
Lav en tabel (fx. med navnet "indhold") i databasen, hvor hver række svarer til "et id". Dvs. du skal have følgende kolonner: id, titel, undermenu og indhold
Så kan du lave noget i stil med:
$sql = "SELECT titel, undermenu, indhold FROM indhold WHERE id=$id";
(Husk at være HELT sikker på at $id er et tal! Ellers er det et gabende sikkerhedshul!)

Hvordan det helt præcist gøres i praksis kan du læse om i en "PHP/MySQL for begyndere"-artikel. Skriv bare igen, hvis du har nogle specifikke spørgsmål.
Avatar billede blood.dk Nybegynder
23. december 2003 - 23:39 #7
Tak. nu vil jeg tage de spæde skridt. og når alle de ubehalige fejl meddelser dukker op vil jeg poste igen. ;-)

Jeg kan desværre ikke give dig fuld point men lidt ha da også ret.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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