Avatar billede kgp43 Nybegynder
14. juli 2004 - 17:43 Der er 12 kommentarer og
1 løsning

Join to queryer

Hejsa,

Kan disse to queries joines til én?

$new_products_no = 1;
$new_products_query = mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 10") or die (mysql_error());
while($new_products_fetch = mysql_fetch_array($new_products_query)) {

  $new_products_limit_query = mysql_query("SELECT * FROM prices WHERE product_id='$new_products_fetch[id]' ") or die (mysql_error());
  $new_products_limit_check = mysql_num_rows($new_products_limit_query);
  if ($new_products_limit_check != 0) {


- Jeg vil have en liste ud over de 10 nyeste produkter, men kun de produkter der kan en pris tilføjet.
Avatar billede kgp43 Nybegynder
14. juli 2004 - 17:45 #1
Dvs, den første query skal kun køres hvis produktets id findes i tabellen "prices" (kolonne product_id)
Avatar billede arne_v Ekspert
14. juli 2004 - 17:47 #2
Prøv:

SELECT *
FROM products JOIN prices ON products.id=prices.product_id
ORDER BY date_added DESC
LIMIT 10
Avatar billede kgp43 Nybegynder
14. juli 2004 - 17:51 #3
'date_added' in order clause is ambiguous
Avatar billede arne_v Ekspert
14. juli 2004 - 17:53 #4
SELECT *
FROM products JOIN prices ON products.id=prices.product_id
ORDER BY products.date_added DESC
LIMIT 10
Avatar billede kgp43 Nybegynder
14. juli 2004 - 17:58 #5
ingen fejl, men den tager alle produkter (og ikke kun dem der har tilfæjet en pris)
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:01 #6
vent lige lidt... det ser ud til at virke
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:03 #7
hvorfor indeholder "$new_products_fetch[id]" ikke id på produkterne i tabellen "products"?

$new_products_query = mysql_query("SELECT * FROM products JOIN prices ON products.id=prices.product_id ORDER BY products.date_added DESC LIMIT 10") or die (mysql_error());
while($new_products_fetch = mysql_fetch_array($new_products_query)) {
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:04 #8
variablen indeholder en værdi, men ikke id på produktet
Avatar billede arne_v Ekspert
14. juli 2004 - 18:08 #9
Jeg tror muligvis at du skal angive lidt mere eksplicit de felter du skal have ud:

SELECT products.id as prodid,products.x as x FROM ...

for at undgå problemer med overlappende felt navne.
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:15 #10
Virker jo perfekt :D
lig et svar så er der point.

//Get top10 most popular reels
$new_products_no = 1;
$new_products_query = mysql_query("SELECT products.id as prod_id,products.series_id as prod_series_id,products.name as prod_name,products.type as prod_type FROM products JOIN prices ON products.id=prices.product_id ORDER BY products.date_added DESC LIMIT 10") or die (mysql_error());
while($new_products_fetch = mysql_fetch_array($new_products_query)) {
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:15 #11
woops, der var vist lige en beskrivelse der skulle ændres :P
Avatar billede arne_v Ekspert
14. juli 2004 - 18:16 #12
svar
Avatar billede kgp43 Nybegynder
14. juli 2004 - 18:16 #13
takker for hjælpen
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
Computerworld tilbyder specialiserede kurser i database-management

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