Chyba při dotazu na databázi - Microsoft Office Access – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Chyba při dotazu na databázi - Microsoft Office Access – PHP – Fórum – Programujte.comChyba při dotazu na databázi - Microsoft Office Access – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Markaos0
Návštěvník
8. 6. 2013   #1
-
0
-

Dobrý den,
mám menší problém se spojováním dvou tabulek z databáze Accessu (dělám to v PHP pomocí ODBC).

Původní SQL dotaz byl asi takovýto: 

SELECT second.*,first.price FROM first JOIN second ON first.group=second.group

Různě jsem ho upravoval, ale vždy jsem se zasekl u části FROM. Nepodařilo se mi najít žádný použitelný návod, vždy z toho vzešlo toto: 

[Microsoft][Ovladač ODBC pro Microsoft Access] Syntaktická chyba v klauzuli FROM.

Už si s tím opravdu nevím rady. Používám WinXP.

Předem děkuji za každou radu

Nahlásit jako SPAM
IP: 89.24.9.–
Linux is like a wigwam
No gates, no windows, apache inside.
Reklama
Reklama
TomasUL0
Newbie
10. 6. 2013   #2
-
0
-

#1 Markaos
Ahoj,

zde by mohl být problém ve jménu tabulky FIRST. Jde o to, že ty uděláš dotaz, který jde přes ODBC do MS Access a to ODBC ten dotaz nějak upraví. A zde bych se bál, že jméno tabulky FIRST interpretuje jako SQL funkci first(), která se používá v seskupovacích dotazech.

Zkus stejný dotaz např. na tabulky klient vs. adresa a myslím, že by to mělo jet.

Nahlásit jako SPAM
IP: 83.240.112.–
Markaos0
Návštěvník
10. 6. 2013   #3
-
0
-

#2 TomasUL
Tím to zřejmě není, protože i když jméno tabulky nahradím za lalalalalalalala, což pravděpodobně nebude žádná SQL funkce, tak vypisuje pořád stejnou chybovou hlášku...

Nahlásit jako SPAM
IP: 89.24.20.–
Linux is like a wigwam
No gates, no windows, apache inside.
TomasUL0
Newbie
10. 6. 2013   #4
-
0
-

#3 Markaos
Když uděláš klasický dotaz SELECT * FROM tabulka1, tak ti to funguje?

Nenašel jsem na netu, jak to řešit pomocí JOIN, ale tam to řeší pomocí WHERE

SELECT p.name, p.description, p.price 
FROM product p, product_category pc 
WHERE p.id  = pc.productId AND pc.category_id = 1 
ORDER BY name
Nahlásit jako SPAM
IP: 83.240.112.–
Markaos0
Návštěvník
10. 6. 2013   #5
-
0
-

Tak to spojování už jsem vyřešil jinak. Nejdřív jsem si tabulky uložil do dvou polí a spojil je. Tady je ten kód: 

// nejdřív uložím hodnoty do dvou polí...
while($res = odbc_fetch_array($result_first)){
  $groups[] = $res;
}

while($res = odbc_fetch_array($result_second)){
  $places[] = $res;
}

// ...pak je spojím..
foreach($places as $place){
  foreach($groups as $group){
    if($group['group']==$place['group']) $places_n[] = array_merge($place,$group);
  }
}

// ... a nakonec vypíšu.
foreach($places_n as $place){
  print_r($place);
  echo "<br>";
}

Děkuji za odpovědi

#4 TomasUL
Ano, to funguje

Nahlásit jako SPAM
IP: 89.24.20.–
Linux is like a wigwam
No gates, no windows, apache inside.
TomasUL0
Newbie
10. 6. 2013   #6
-
0
-

#5 Markaos
Ještě můžeš vyzkoušet kód níže. Tak by se to napsalo přímo v Accessu.

SELECT second.*,first.price 
FROM first INNER JOIN second ON first.group=second.group
Nahlásit jako SPAM
IP: 83.240.112.–
Markaos0
Návštěvník
10. 6. 2013   #7
-
0
-

#6 TomasUL
To bylo první, co jsem zkoušel, ale stejně děkuji za odpověď 

Nahlásit jako SPAM
IP: 89.24.20.–
Linux is like a wigwam
No gates, no windows, apache inside.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 79 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý