Avatar billede zetn Nybegynder
27. juli 2007 - 12:53 Der er 9 kommentarer

Select fra database

Hej Exp,

Kan et felt indeholde fx. værdierne: 1,2,5,7,8,10,23 - hvorefter man kan lave en select der spørger om feltet indeholder værdien 5 fx?

Samt hvordan tilføjer man en ekstra værdi så?
Avatar billede thesurfer Nybegynder
27. juli 2007 - 13:10 #1
Brug Like:

"select * from TabelNavn where FeltNavn Like'%5%'"

Jeg er ikke PHP programmør, men mener at det skal se sådan ud:

"select * from TabelNavn where FeltNavn Like'%" . $soegeord . "%'";
Avatar billede thesurfer Nybegynder
27. juli 2007 - 13:11 #2
Glemte mellemrum:

"select * from TabelNavn where FeltNavn Like '%5%'"

Og:

"select * from TabelNavn where FeltNavn Like '%" . $soegeord . "%'";
Avatar billede thesurfer Nybegynder
27. juli 2007 - 13:12 #3
Forklaring:

%5% = indeholder 5
5% = starter med 5
%5 = slutter med 5

Dvs, placeringen af "%" er vigtigt..
Avatar billede michael_stim Ekspert
27. juli 2007 - 13:27 #4
iom du skal ind og rode i lige det felt, ville jeg nok opbygge tabellen på en anden måde. Kommasepareret strings passer ikke til databaser.

Tabel1:
id PK
fornavn
efternavn
osv

tabel2:
id PK
fk_tbl1_id FK
point
osv
Avatar billede michael_stim Ekspert
27. juli 2007 - 13:29 #5
Og så selecter du med:

SELECT a.fornavn, b.point FROM tabel1 a, tabel2 b WHERE b.point=5 AND a.id=b.fk_tbl1_id
Avatar billede net-base.dk Nybegynder
27. juli 2007 - 14:10 #6
SELECT * FROM table WHERE felt = '5' OR felt = LIKE'5,%' OR felt = LIKE'%,5,%' OR felt = LIKE'%,5'

Denne linien vil ikke godtage 55 eller 25 som den thesurfer har lavet.

1) Her tester den om der findes nogle linier hvor der kun står 5 i.
2) Her tester den om 5 er det første tal i linien. ved at teste om 5, findes
3) Her tester den om 5 findes et sted i linien ved at teste om ,5, findes. her er sat , på begge sider af 5 tallet eller vil den også finde f.eks 35 eller 55
4) Her tester den om 5 er det sidste tal der står i linien %,5

Håber dette forklare det lidt


er 5 det første tal der står i strengen bruger den "5,"
Avatar billede zetn Nybegynder
27. juli 2007 - 21:48 #7
Okay, tak skal I have. Kan i alle ikke smide et svar. Tror jeg bruger en nemmere måde nemlig, hvis jeg lige kan få det til at virke.

Har følgende kode:

    $g_id = $HTTP_GET_VARS['id'];
    $p_id = $HTTP_GET_VARS['p'];

    $products_query = tep_db_query("SELECT * FROM guide_products WHERE guide_id = '" . $g_id . "' AND question_id = '" . $p_id . "'");
    $num_rows = mysql_num_rows($products_query);

    echo "$num_rows rækker\n";

Hvordan udskriver jeg hver enkelt række der opfylder kravene? Så det nærmest er et loop
Avatar billede zetn Nybegynder
27. juli 2007 - 21:52 #8
Huskede lige koden..

  while ($row = mysql_fetch_array($products_query)) {
        echo "hva så der";
  }

Bare smid et svar.
Avatar billede net-base.dk Nybegynder
28. juli 2007 - 01:13 #9
Okay her er svar. Håber du får det til at virke.
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