Avatar billede kmc81 Juniormester
11. august 2014 - 11:01 Der er 1 løsning

hente rækker ud, som matcher værdier fra anden tabel (som ligger i arrays)

Hej eksperter


Jeg går lige til sagen. Jeg har 3 tabeller: chosen_goods, farmer_goods, locations.

chosen_goods: Med felterne: [chosen_product], [ip]
Der bliver lavet et insert hver gang brugeren klikker på et produkt. Brugerens ip bliver sat ind, for at hæfte de valgte produkter til den enkelte bruger.

farmer_goods: Med felterne: [farmerid], [farmer_product], [amount], measured_in], [price]
I denne tabel er alle de produkter, som hver bondemand har.

locations: Med felterne: [id], [farmerid], [name], [adress], [lat], [lon], [description], [active]
I denne tabel er alle bondemænd og deres lokationer.

Brugeren skal kunne søge efter bestemte produkter, og de locations som har produktet bliver så vist på et Google map.

Jeg kan godt få den til at vise alle locations på Google map, men jeg kan ikke få den til at isolere locations med kun de valgte produkter.

Den skal altså hente de valgte produkter og finde de bondemænd, der har tilsvarende produkter.

Her er koden som henter fra tabellerne:

<?php   
    require 'conn/config.php';
    require 'conn/conn.php';
$userip = $_SERVER['REMOTE_ADDR'];

mysql_select_db($database_conn, $conn);
// henter de produkter brugeren har valgt
$query_Recordset_chosen_goods = "SELECT * FROM chosen_goods WHERE ip = '$userip'";
$Recordset_chosen_goods = mysql_query($query_Recordset_chosen_goods, $conn) or die(mysql_error());
$row_Recordset_chosen_goods = mysql_fetch_assoc($Recordset_chosen_goods);


$array = array();

while($row = mysql_fetch_assoc($Recordset_chosen_goods)){

  // add each row returned into an array
  $array[] = $row;

$chosen_product = $row['chosen_product'];
}

// henter de produkter
$query_Recordset_farmer_goods = "SELECT farmerid FROM farmer_goods WHERE farmer_product = '$chosen_product'";
$Recordset_farmer_goods = mysql_query($query_Recordset_farmer_goods, $conn) or die(mysql_error());
$row_Recordset_farmer_goods = mysql_fetch_assoc($Recordset_farmer_goods);


$array2 = array();

while($row2 = mysql_fetch_assoc($Recordset_farmer_goods)){

  // add each row returned into an array
  $array[] = $row2;
$farmerid = $row2['farmerid'];

}


    try {
   
        $db = new PDO($dsn, $username, $password);
        $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
       
        $sth = $db->query("SELECT * FROM locations WHERE active ='yes' AND farmerid ='$farmerid'");
        $locations = $sth->fetchAll();
       
        echo json_encode( $locations );
       
    } catch (Exception $e) {
        echo $e->getMessage();
    }
?>

Når jeg vælger et produkt (indsætter en record i chosen_goods), som også står i farmer_goods, finder den ikke noget første gang, men vælger jeg en mere af samme type, finder den den valgte bondemand og viser lokationen på kortet. Men den kan ikke vise flere locations.
Værdien i alle locations er sat til "yes".

Nogen der kan hjælpe med dette problem?

Med venlig hilsen

Kenneth
Avatar billede kmc81 Juniormester
13. august 2014 - 13:17 #1
Jeg har gjort spørgsmålet enklere her http://www.eksperten.dk/spm/996891
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

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