Avatar billede streak Nybegynder
11. maj 2000 - 14:18 Der er 2 kommentarer og
1 løsning

dropdown box med sql indhold

Ok, dette er et ret langt stykke kode af smide op... men jeg kan ikke rigtig få det til at virke. Dette er et søge værktøj til en underviser side. Man skal kunne liste undervisere på 3 måder.

1. Søg på efternavn, alfabetisk
2. Søg på amt
3. Søg med en fri tekst

Den eneste jeg umiddelbart kan se der virker er den 3. Den første er jeg ret ligeglad med lige nu. Jeg har testet selve søgnigen på punkt 2, og den lister det den skal, det virker bare ikke når det skal skrives ned i den skide dropdownbox. Resultatet kan ses på:

http://www.auka.dk/undervisere/search.php3

Nedenfor er selve sovsen på denne fil.
--------------------------- cut here ------------------

<?php

include("../include/functions.inc");

if ($amt=="" && $uid=="" && $key == ""  && $bogstav== "")
{
  include("../layout/search.html");
}
else
{
  include '../include/db_init.inc';
  mysql_connect("$site", "$username", "$password");
  @mysql_select_db("$dbName") or die("Unable to select database");
 
  if ($amt=="" && $uid =="" && $bogstav=="" && $key!="")
  {
    $query = "SELECT * from Undervisere  WHERE Undervisere.Fornavn LIKE '%$key%' OR Undervisere.Efternavn LIKE '%$key%' ORDER BY Efternavn ASC";
    $qry = $key;
  }
  elseif($amt=="" && $uid =="" && $bogstav!="" && $key=="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.Efternavn REGEXP '^[$bogstav]' ORDER BY Efternavn ASC";
    $qry = $bogstav;
  }
  elseif($amt=="" && $uid =="" && $bogstav!="" && $key!="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.Fornavn LIKE '%$key%' AND Undervisere.Efternavn = '$bogstav' ORDER BY Efternavn ASC";
    $qry = $key;
  }
  elseif($amt=="" && $uid !="" && $bogstav=="" && $key=="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.UnderviserID = '$uid'  ORDER BY Efternavn ASC";
    $qry = $uid;
  }
  elseif($amt=="" && $uid =="" && $bogstav=="" && $key!="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.Fornavn LIKE '%$key%' AND Undervisere.UnderviserID = '$uid' ORDER BY Efternavn ASC";
    $qry = $key;
  }
  elseif($amt=="" && $uid !="" && $bogstav!="" && $key=="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.Efternavn LIKE '%$key%' AND Undervisere.UnderviserID = '$uid' ORDER BY Efternavn ASC";
    $qry = $key;
  }
  elseif($amt=="" && $uid !="" && $bogstav!="" && $key!="")
  {
    $query = "SELECT * from Undervisere WHERE Undervisere.Efternavn LIKE '%$key%' AND Undervisere.UnderviserID = '$uid' ORDER BY Efternavn ASC";
    $qry = $key;
  }
  elseif($amt!="")
  {
    $sql = "select UnderviserID,Fornavn from Undervisere where Amt_ID='$amt'";
   
    $res = mysql_query($sql);
    while ( $row = mysql_fetch_array($res) )
    {
      $sql2  = "select * from Kalender where UnderviserID='$row[UnderviserID]' and Dato >= '2000-01-10' and Dato <= '2000-04-08'";
      $res2  = mysql_query($sql2);
      $row2  = mysql_fetch_array($res2);
      $total = mysql_num_rows($res2);
     
      include '../layout/searchdel1.html';
      $SQL3  = "select * from Undervisere where UnderviserID='$row2[UnderviserID]'";
      $RES3  = mysql_query($SQL3);
      $counter = 0;
      while ( $counter <= $total )
      {
        $uid=mysql_result($RES3,$counter,"UnderviserID");
        $navn=mysql_result($RES3,$counter,"Fornavn");
        $efternavn=mysql_result($RES3,$counter,"Efternavn");
        $adresse=mysql_result($RES3,$counter,"Adresse");
        $postnrby=mysql_result($RES3,$counter,"PostnrBy");
        $amt=mysql_result($RES3,$counter,"Amt_ID");
        $land=mysql_result($RES3,$counter,"Land");
        $email=mysql_result($RES3,$counter,"Email");
        $telefon=mysql_result($RES3,$counter,"Telefon");
        $fax=mysql_result($RES3,$counter,"Faxnr");
        $uc=mysql_result($RES3,$counter,"UndervCenter");
        $bruger=mysql_result($RES3,$counter,"Brugernavn");
        $pawd=mysql_result($RES3,$counter,"Password");
        $cvs=mysql_result($RES3,$counter,"Cvs");
        $notat=mysql_result($RES3,$counter,"Noter");
        print "<option value=\"$uid\">$navn $efternavn</option>";
       
        $counter++;
      }
      //mysql_free_result($res2);
      include '../layout/searchdel2.html';
    }
    //mysql_free_result($res);
    mysql_close();
    $go=false;
   
  }

  if($go!=false)
  {
    $result = mysql_query($query);
    $err = mysql_error();
    if($err)
    {
      print "$err";
      exit;
    }
    $total= mysql_numrows($result);
    if ($total== 0)
    {
      include("../layout/no_found.html");
    }
    elseif ($total== 1)
    {
      /* default */
      $counter=0;
      if ($dir=="") $dir="Next";
      $lpp=25;
      if ($offset==0) $offset=0;
      if ($dir=="Next")
      {
        if ($total > $lpp)
        {
          $counter=$offset;
          $offset+=$lpp;
          $num=$offset;
          if ($num > $total)
          {
            $num=$total;
          }
        }
        else
        {
          $num=$total;
        }
      }
      elseif ($dir=="Previous")
      {
        if ($total > $lpp)
        {
          $offset-=$lpp;
          if ($offset < 0)
          {
            $offset=0;
          }
          $counter=$offset-$lpp;
          if ($counter < 0) $counter=0;
          $num=$counter+$lpp;
        }
        else
        {
          $num=$total;
        }
      }
    }
    while ($counter < $num)
    {
      $j=0;
      $j=$counter + 1;
     
      $uid=mysql_result($result,$counter,"UnderviserID");
      $navn=mysql_result($result,$counter,"Fornavn");
      $efternavn=mysql_result($result,$counter,"Efternavn");
      $adresse=mysql_result($result,$counter,"Adresse");
      $postnrby=mysql_result($result,$counter,"PostnrBy");
      $amt=mysql_result($result,$counter,"Amt_ID");
      $land=mysql_result($result,$counter,"Land");
      $email=mysql_result($result,$counter,"Email");
      $telefon=mysql_result($result,$counter,"Telefon");
      $fax=mysql_result($result,$counter,"Faxnr");
      $uc=mysql_result($result,$counter,"UndervCenter");
      $bruger=mysql_result($result,$counter,"Brugernavn");
      $pawd=mysql_result($result,$counter,"Password");
      $cvs=mysql_result($result,$counter,"Cvs");
      $notat=mysql_result($result,$counter,"Noter");
      include '../layout/searchresult.html';
      $counter++;
    }}
    elseif ($total> 1)
    {
      /* default */
      $counter=0;
      if ($dir=="") $dir="Next";
      $lpp=25;
      if ($offset==0) $offset=0;
      if ($dir=="Next")
      {
        if ($total > $lpp)
        {
          $counter=$offset;
          $offset+=$lpp;
          $num=$offset;
          if ($num > $total)
          {
            $num=$total;
          }
        }
        else
        {
          $num=$total;
        }
      }
      elseif ($dir=="Previous")
      {
        if ($total > $lpp)
        {
          $offset-=$lpp;
          if ($offset < 0)
          {
            $offset=0;
          }
          $counter=$offset-$lpp;
          if ($counter < 0) $counter=0;
          $num=$counter+$lpp;
        }
        else
        {
          $num=$total;
        }
      }
    }
  }
  if($go!=false)
  {
   
    include '../layout/searchdel1.html';
   
    while ($counter < $num)
    {
      $j=0;
      $j=$counter + 1;
      $uid=mysql_result($result,$counter,"UnderviserID");
      $navn=mysql_result($result,$counter,"Fornavn");
      $efternavn=mysql_result($result,$counter,"Efternavn");
      $adresse=mysql_result($result,$counter,"Adresse");
      $postnrby=mysql_result($result,$counter,"PostnrBy");
      $amt=mysql_result($result,$counter,"Amt_ID");
      $land=mysql_result($result,$counter,"Land");
      $email=mysql_result($result,$counter,"Email");
      $telefon=mysql_result($result,$counter,"Telefon");
      $fax=mysql_result($result,$counter,"Faxnr");
      $uc=mysql_result($result,$counter,"UndervCenter");
      $bruger=mysql_result($result,$counter,"Brugernavn");
      $pawd=mysql_result($result,$counter,"Password");
      $cvs=mysql_result($result,$counter,"Cvs");
      $notat=mysql_result($result,$counter,"Noter");
      print "<option value=\"$uid\">$navn $efternavn</option>";
      $counter++;
    }
    include '../layout/searchdel2.html';
    mysql_close();
  }
?>
Avatar billede erikjacobsen Ekspert
12. maj 2000 - 00:01 #1
Du, streak. Davs igen. Jeg har mange forslag til forbedring af
ovenstående kode. Bl.a. synes jeg ikke du skal have de 3 løkker indeni
hinanden, for jeg tror du kan lave een SQL-forespørgsel (med en
join). Det kræver lidt mere viden om hvad du laver.

Har du lyst til at snakke lidt pr. email om det. Du kan se min
email ved at trykke på mit navn her til venstre.

(Og i eksperten.dk's ånd, vil en løsning naturligvis komme her! )
Avatar billede jd Nybegynder
11. november 2000 - 21:30 #2
streak?? En afslutning ville være udmærket!
Avatar billede streak Nybegynder
22. juli 2002 - 10:32 #3
lukker også lige denne her, da der ikke skete mere i sagen, og jeg arbejder heller ik hos det firma mere.
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