Avatar billede overgreat Forsker
17. juli 2005 - 21:26 Der er 1 kommentar og
1 løsning

Samling af to formularer som særskilt virker!

Jeg har af to omgange lavet søgeformularer til det samme datasæt fra mysql database.

Jeg har forsøgt at kæde dem sammen, men selve inkoporeringen giver mig hovedpine. Jeg kan ikke få det til at virke sammen.

Håber der er en der kan give mig lidt hjælp!

Jeg har i øverste søgeformular indsat prisvalg-søgningen. Det der mangler er at klippe inner-join-delen ind så den fungerer!






---------------------------------------------------
Nedenstående formular der virker før indsættelse af pris søgning i den øverste del af formularen!
---------------------------------------------------
<?
if($_GET['up'] == "ja"){
    include("config.php");
    $db = mysql_connect($server, $user, $pass);
    mysql_select_db($database, $db);

$where=array();
    if($_POST['maerke']!='1')
    {
        $where[]="bil_bil.maerke='".$_POST['maerke']."'";
    }
    if($_POST['model']!='1')
    {
        $where[]="bil_bil.model='".$_POST['model']."'";
    }
    if($_POST['type']!='1')
    {
        $where[]="bil_bil.type='".$_POST['type']."'";
    }
    if($_POST['variant']!='1')
    {
        $where[]="bil_bil.variant='".$_POST['variant']."'";
    }

    $foresp = mysql_query("
    SELECT bil_bil.id, bil_bil.maerke, bil_bil.model, bil_bil.type, bil_bil.variant, bil_model.model AS model1,  bil_maerke.maerke AS maerke1, bil_type.type AS type1, bil_variant.variant AS variant1
      FROM bil_bil
      LEFT JOIN bil_maerke ON bil_maerke.id = bil_bil.maerke
      LEFT JOIN bil_model ON bil_model.id = bil_bil.model
      LEFT JOIN bil_type ON bil_type.id = bil_bil.type
      LEFT JOIN bil_variant ON bil_variant.id = bil_bil.variant
     

      ".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc
    ");

    while ($data = mysql_fetch_array($foresp))
{
    echo "<a href='index.php'>".$data['maerke1']."</a>&nbsp;".$data['model1']."&nbsp;".$data['type1']."&nbsp;".$data['variant1']."<br>";
}
}else{
?>

    <h5><b><font size=4>Søg</font></b><p>

    <FORM METHOD=POST ACTION='soeg1.php?action=soeg&amp;up=ja'>
<table>

<tr>
      <td><p>Bilmærke:</p></td>
      <td><select name="maerke">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT maerke, id FROM bil_maerke ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select></td>
</tr>
<tr>
      <td><p>Bilmodel:</p></td>
      <td><select name="model">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT model, id FROM bil_model ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select></td>
</tr>
<tr>
      <td><p>Type af bilmodel:</p></td>
      <td><select name="type">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT type, id FROM bil_type ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select></td>
</tr>
<tr>
      <td><p>Motorstørrelse:</p></td>
      <td><select name="variant">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT variant, id FROM bil_variant ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select></td>
</tr>

<tr>
      <td><p>Prisvalg:</p></td>
      <td>

<select name="prisvalg">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT tekst, id FROM bil_pris ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select>
</td>
</tr>



</table>





<INPUT TYPE=SUBMIT VALUE="  Søg  ">
</h5>

<?
}
?>


-------------------------------------
Nedenstående søgeformular virker når den er særskilt fra ovenstående
-------------------------------------
<?
if($_GET['up'] == "ja"){
    include("config.php");
    $db = mysql_connect($server, $user, $pass);
    mysql_select_db($database, $db);

    $foresp = mysql_query("
    SELECT bil_bil.pris, bil_bil.maerke AS maerke1
    FROM bil_bil INNER JOIN bil_pris ON (bil_pris.low IS NULL OR bil_bil.pris >= bil_pris.low) AND (bil_pris.high IS NULL OR bil_bil.pris <= bil_pris.high)
    WHERE bil_pris.id = $_POST[prisvalg] ");

    while ($data = mysql_fetch_array($foresp))
{
    echo $data['maerke1'];
}
}else{
?>

    <h5><b><font size=4>Søg</font></b><p>

    <FORM METHOD=POST ACTION='soeg1111.php?action=soeg&amp;up=ja'>
<select name="prisvalg">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT tekst, id FROM bil_pris ORDER BY id");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option value='$data[1]'>$data[0]</option>";

}
?>
</select>




<INPUT TYPE=SUBMIT VALUE="  Søg  ">
</h5>

<?
}
?>
Avatar billede overgreat Forsker
18. juli 2005 - 13:47 #1
Hej alle

for overskuelighedens skyld har jeg klippet den lille del der er vigtigst ud.

Jeg har sat inner joinen ind, men der hvor jeg ikke kan finde ud af det er når jeg skal indsætte:
WHERE bil_pris.id = $_POST[prisvalg]

sammen med den anden where del fra tidligere:


".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc


HÅBER der er en der har løsningen.... jeg har snart givet op med at prøve!!

------------------------------------------------------


<?
if($_GET['up'] == "ja"){
    include("config.php");
    $db = mysql_connect($server, $user, $pass);
    mysql_select_db($database, $db);

$where=array();
    if($_POST['maerke']!='1')
    {
        $where[]="bil_bil.maerke='".$_POST['maerke']."'";
    }
    if($_POST['model']!='1')
    {
        $where[]="bil_bil.model='".$_POST['model']."'";
    }
    if($_POST['type']!='1')
    {
        $where[]="bil_bil.type='".$_POST['type']."'";
    }
    if($_POST['variant']!='1')
    {
        $where[]="bil_bil.variant='".$_POST['variant']."'";
    }

    $foresp = mysql_query("
    SELECT bil_bil.pris, bil_bil.id, bil_bil.maerke, bil_bil.model, bil_bil.type, bil_bil.variant, bil_model.model AS model1,  bil_maerke.maerke AS maerke1, bil_type.type AS type1, bil_variant.variant AS variant1
      FROM bil_bil
      LEFT JOIN bil_maerke ON bil_maerke.id = bil_bil.maerke
      LEFT JOIN bil_model ON bil_model.id = bil_bil.model
      LEFT JOIN bil_type ON bil_type.id = bil_bil.type
      LEFT JOIN bil_variant ON bil_variant.id = bil_bil.variant
      INNER JOIN bil_pris ON (bil_pris.low IS NULL OR bil_bil.pris >= bil_pris.low) AND (bil_pris.high IS NULL OR bil_bil.pris <= bil_pris.high)


      ".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc
    ");

    while ($data = mysql_fetch_array($foresp))
{
    echo "<a href='index.php'>".$data['maerke1']."</a>&nbsp;".$data['model1']."&nbsp;".$data['type1']."&nbsp;".$data['variant1']."<br>";
}
}else{
?>
Avatar billede overgreat Forsker
18. juli 2005 - 22:19 #2
Jeg lukker...
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