Avatar billede gr8m8 Novice
17. oktober 2012 - 09:14 Der er 7 kommentarer og
1 løsning

Sammenlign 2 tabeller og kør mysql_query

Hej Eksperter.

Jeg har 2 tabeller som indeholder nogle priser. Jeg skal have undersøgt om den ene pris er større end den anden på alle produkter og alt efter resultat af sammeligning skal der køres 1 af 2 mysql_querys.

F.eks.:

if TABEL1.Pris > TABEL2.Pris{
mysql_query(UPDATE produkter SET active=0)
}

Jeg er helt på bar bund omkring hvordan dette gøres for hvert produkt der er i min database.

Håber der er nogen der kan/vil hjælpe :-)
Avatar billede michael_stim Ekspert
17. oktober 2012 - 10:01 #1
SELECT a.id FROM table a, table b WHERE a.pris > b.pris

Så kører du bare en almindelig while.
Avatar billede michael_stim Ekspert
17. oktober 2012 - 10:07 #2
Nu tror jeg, jeg forstår:

SELECT a.pris, b.pris FROM table a, table b WHERE a.id = b.id

Og så kører du bare sammenligningen i din while:

hvis(a.pris > b.pris){
opdater med noget
}
ellers {
opdater med noget andet
}
Avatar billede gr8m8 Novice
17. oktober 2012 - 10:27 #3
Hej Michael.

Tusind tak for dit bidrag til min problemstilling :-)

Jeg har prøvet mig frem med følgende ud fra din hjælp, desværre dog med fejl.

Kan du se hvad der går galt for mig?

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

<?php

  $link = mysql_connect ("localhost","user","pass");
  mysql_select_db("database");
 
  mysql_query("SELECT a.pris, b.pris FROM table.a, table.b WHERE price.a = price.b")
 
  IF ("price.a < price.b"){
    echo "DU VANDT!";
  }
  ELSE {
    echo "DU TABTE!";
  }

?>

-------------------------------------
Avatar billede michael_stim Ekspert
17. oktober 2012 - 10:55 #4
Ja, der er rigtigt meget der går galt.

1. Du har ingen while
2. Din SQL er næppe rigig
3. Det er ikke PHP syntax
4. Viser du noget kode, så brug copy/paste (håber ikke du har gjort det nu)

Prøv at google på nettet, hvordan man hiver data ud af en database.
Avatar billede michael_stim Ekspert
17. oktober 2012 - 10:56 #5
2'eren tænker jeg på tabelnavne og feltnavne.
Avatar billede michael_stim Ekspert
17. oktober 2012 - 10:59 #6
Ole har lavet en aldeles udmærket guide, hvor du kan læse om hvordan du bruger MySQLi, hvilket du lige så godt kan bruge fra starten af.

http://www.eksperten.dk/guide/1480
Avatar billede gr8m8 Novice
18. oktober 2012 - 11:16 #7
@michael_stim

Tak for dine bidrag. Desværre hjalp det mig ikke i den rigtige retning da det du skriver desværre er ud over mine kompetencer :-)
Avatar billede danco Nybegynder
19. oktober 2012 - 10:34 #8
mysql_connect ("localhost","user","pass") or die(mysql_error());
  mysql_select_db("database") or die(mysql_error());
 
  $sql = "SELECT a.pris AS prisA, b.pris as prisB FROM table.a, table.b WHERE price.a = price.b";
  $result = mysql_query($sql) or die(mysql_error());
  $array = mysql_fetch_array($result);

if ($array['prisA']< $array['prisB']){
    echo "DU VANDT!";
  }
  else {
    echo "DU TABTE!";
  }

så skulle syntaxen ihvertfald være ordnet, din SQL forespørgsel er dog svær at svare på da vi ikke kender din tabel struktur mv.
Bemærk venligst at den ikke kører i en while, så derfor tager den kun den første række i din forespørgsel. Skal den løbe flere rækker igennem kan du skrive det sådan her:

  $sql = "SELECT a.pris AS prisA, b.pris as prisB FROM table.a, table.b WHERE price.a = price.b";
  $result = mysql_query($sql) or die(mysql_error());
  while($row = mysql_fetch_array($result)){
    if ($row['prisA']< $row['prisB']){
        echo "DU VANDT!";
    }
    else {
        echo "DU TABTE!";
      }
  }
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