Avatar billede gf Nybegynder
07. juli 2005 - 14:19 Der er 5 kommentarer og
1 løsning

hvilket felt sker udtrækket fra

Hej

Jeg har en søgning hvor der søges i flere forskellige felter, kan man på nogen måde bestemme feltnavnet på det felt hvor søgningen "har succes"?

$sql = "SELECT * FROM elevdata where dansk like '$_POST[hold]%' or matematik like '$_POST[hold]%' or engelsk like '$_POST[hold]%' or tysk like '$_POST[hold]%' or fysik like '$_POST[hold]%' order BY navn" or die( mysql_error() );
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_array( $qh ) ) {

// gør et eller andet
} ?>


mvh gf
Avatar billede barklund Nybegynder
07. juli 2005 - 14:26 #1
Ehm? Hvad er det lige du skal finde frem til?
Avatar billede gf Nybegynder
07. juli 2005 - 14:30 #2
he he ja det er lidt krypist beskrevet.

jeg ønsker at hvide om det jeg søger ($_POST[hold]) findes i feltet : dansk, matematik, engelsk, tysk eller fysik.

mvh gf
Avatar billede barklund Nybegynder
07. juli 2005 - 14:38 #3
Det lyder som en ret mærkelig db-struktur, men du kan godt via forholdsvis ikke så kønne  ting lave det - for eksempel med if's:

$sql = "
SELECT
  *,
  IF (dansk LIKE '$_POST[hold]%', 'dansk',
    IF(matematik like '$_POST[hold]%', 'matematik',
      IF (engelsk like '$_POST[hold]%', 'engelsk',
        IF (tysk like '$_POST[hold]%', 'tysk',
          'fysik'
        )
      )
    )
  ) AS fag
FROM
  elevdata
WHERE
  dansk like '$_POST[hold]%' or
  matematik like '$_POST[hold]%' or
  engelsk like '$_POST[hold]%' or
  tysk like '$_POST[hold]%' or
  fysik like '$_POST[hold]%'
ORDER BY
  navn
";

For eksempel - så kan du inden i din while tjekke værdien af $row['fag'], som vil være det (første) fag, der er magen til det søgte.

Men en anden db-struktur havde nu været mere oplagt - hvor fag-tilhørsforhold lå i en anden tabel med en mange-til-en-relation til elev-tabellen.

--
Morten Barklund
Avatar billede gf Nybegynder
07. juli 2005 - 15:38 #4
Hej

jeg tror jeg følger dit råd og omstrukturerer min db.

læg et svar

mvh gf
Avatar billede barklund Nybegynder
07. juli 2005 - 16:06 #5
Finfin - du synes ikke if'en var så pæn? ;)
Avatar billede barklund Nybegynder
07. juli 2005 - 16:46 #6
Tark for points :)
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