Gå til innhold

hente ut info som ikke er lik info i annen tabell?


Anbefalte innlegg

Har prøvd og prøvd og prøvd uten å få dette til, har ikke alt for gode kunnskaper innenfor dette, så gir nå nermest opp.

 

 

Har laget en dropdown meny slik at man kan velge om man vil se alle som har valgt Sjokolade, Eple eller Kaffe i valg 2 eller valg 3.

Valg 1 kan man ikke velge, og det skal være slik.

 

Det jeg også har lagt til er at alle som har valgt sjokolade i valg1 ikke vises.

Det jeg ønsker er å endre != 1 til != valgt1

 

Dvs at jeg ønsker at når noen velger f.eks. sjokolade så vises de postene i tabell1 der det står sjokolade i valgt2 eller valgt3, men hvis det står sjokolade i valgt1 så skal den ikke vises.

Det samme gjelder uansett valg som blir gjort.

 

Altså hvis valgt1 = valgt2 eller valgt3 så vises den posten ikke.

 

Håper dere skjønner. Takk for all hjelp.

 

== Tabellstruktur for tabell tabell1

 

|------

|Felt|Type|Null|Standard

|------

|id|int(11)|Ja|NULL

|valgt1|text|Ja|NULL

|valgt2|text|Ja|NULL

|valgt3|text|Ja|NULL

|dato|date|Ja|NULL

|sted|text|Ja|NULL

== Dataark for tabell tabell1

 

|1|1|3|2|2008-04-10|2

|2|2|1|3|2006-01-12|1

|3|2|2|2|2008-03-10|1

|4|2|1|3|2008-04-10|2

== Tabellstruktur for tabell tabell2

 

|------

|Felt|Type|Null|Standard

|------

|id|int(11)|Ja|NULL

|valg1|text|Ja|NULL

== Dataark for tabell tabell2

 

|1|sjokolade

|2|melk

|3|kaffe

 

<form action="tester.php" method="post">

 <select name="valgt3" id="jumpMenu" onChange="MM_jumpMenu('parent',this,0)">
  <option value="t1.id > 0">valgt</option>
  <option value="t1.id > 0">Alt</option>

  <?php   $result = mysql_query("SELECT * FROM tabell2 ORDER BY valg1 ASC ");
while ($myrow = mysql_fetch_array($result)) {
	 printf("<option value=\"((t1.valgt2 = %s AND t1.valgt1 != 1 ) OR (t1.valgt3 = %s AND t1.valgt1 != 1 ))\">%s</option>\n", $myrow["id"],  $myrow["id"],   $myrow["valg1"]);
 }
 ?>

 <input type="hidden" name="submit_form" value="1" />
<input type="submit" value="Velg" />
</form>
<?php
 //valg slutt

// VIS START
if ($_POST['submit_form'] == 1)  {
$valgt3 = mysql_real_escape_string(trim($_POST['valgt3']));

$valget = "WHERE $valgt3";

}
 else
 {

$valget = "";

 }

$result = mysql_query("SELECT t1.*, t2.valg1, t3.valg1 as valg2, t4.valg1 as valg3, t5.sted
FROM tabell1 as t1
INNER JOIN tabell2 as t2 ON t1.valgt1 = t2.id
INNER JOIN tabell2 as t3 ON t1.valgt2 = t3.id
INNER JOIN tabell2 as t4 ON t1.valgt3 = t4.id
INNER JOIN sted as t5 ON t1.sted = t5.id
$valget
ORDER BY t1.id DESC" );
  while ($myrow = mysql_fetch_array($result) )
 {
		 printf("%s %s %s %s %s %s<br>\n", $myrow["id"], $myrow["dato"], $myrow["valg1"], $myrow["valg2"], $myrow["valg3"], $myrow["sted"]);
 }

// VIS SLUTT
 ?>

 

Med denne koden får jeg det slik jeg vil, men da kommer valgt nr opp og ikke navnene fra tabellen valg1.

får ikke opp alle valgene, om de ikke er brukt i valgt2, så valgene som bare er brukt i valgt3 kommer ikke som alternativ.

 

	  <?php   $result = mysql_query("SELECT DISTINCT valgt1, valgt2, valgt3 FROM tabell1 ORDER BY valgt1 ASC ");
while ($myrow = mysql_fetch_array($result)) {
	 printf("<option value=\"((t1.valgt2 = %s AND t1.valgt1 != %s ) OR (t1.valgt3 = %s AND t1.valgt1 != %s ))\">%s</option>\n", $myrow["valgt2"], $myrow["valgt2"], $myrow["valgt3"], $myrow["valgt3"], $myrow["valgt2"]);
 }
 ?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...