Avatar billede overgreat Forsker
10. juli 2005 - 10:13 Der er 6 kommentarer og
1 løsning

LEFT JOIN problemer ved flere variabler

I nedenstående er bil_bil.maerke LEFT JOIN'et med bil_maerke.maerke. Dette virker.

Men hvordan tilføjer jeg at bil_bil.model bliver LEFT JOIN'et med bil_model.model?

Jeg har ´prøvet at gætte mig til en løsning men hver gang melder den fejl tilbage. Håber der er en der kan hjælpe med tilføjelsen!

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

<?
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_maerke.maerke as maerke1
      FROM bil_bil
      LEFT JOIN bil_maerke ON bil_maerke.id = bil_bil.maerke
      ".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc
    ");

   
    while($data = mysql_fetch_array($foresp)) {
      echo $data['maerke1'], $data['model'], $data['type'], $data['variant'];
    }
}else{
?>
Avatar billede barklund Nybegynder
10. juli 2005 - 10:43 #1
$foresp = mysql_query("
    SELECT bil_bil.id, bil_bil.maerke, bil_bil.model, bil_model.model AS model1, bil_bil.type, bil_bil.variant, bil_maerke.maerke as maerke1
      FROM bil_bil
      LEFT JOIN bil_maerke ON bil_maerke.id = bil_bil.maerke
      LEFT JOIN bil_model ON bil_model.model = bil_bil.model
      ".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc
    ");
Avatar billede barklund Nybegynder
10. juli 2005 - 10:44 #2
Tror jeg blot det er :)

--
Morten Barklund
Avatar billede overgreat Forsker
10. juli 2005 - 14:14 #3
Hej Barklund

Tak for hjælpen. Det hjalp godt. Sender du et svar?

To små rettelser har jeg lavet, så virkede det 100%

----------

$foresp = mysql_query("
    SELECT bil_bil.id, bil_bil.maerke, bil_bil.model, bil_model.model AS model1, bil_bil.type, bil_bil.variant, bil_maerke.maerke as maerke1, bil_model.model as model1
      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
      ".(count($where)?"WHERE ".implode(" AND ",$where):"")."
      ORDER BY bil_bil.maerke desc
    ");
Avatar billede barklund Nybegynder
10. juli 2005 - 14:39 #4
Finfin ;)

(og jeg tænkte også, at det var bil_model.id, men du skrev jo, at det var bil_model.model)

Men hvorfor udvælger du bil_model.model to gange? Jeg havde jo tilføjet den én gang :)

--
Morten Barklund
Avatar billede overgreat Forsker
10. juli 2005 - 14:43 #5
ups!!!
Avatar billede barklund Nybegynder
10. juli 2005 - 14:45 #6
Og et svar :)
Avatar billede barklund Nybegynder
10. juli 2005 - 14:51 #7
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