Autor | Zpráva | ||
---|---|---|---|
Fisir Profil |
Ahoj,
zabývám se webovou evidencí, ve které si uživatel může libovolně přidávat věci, odebírat. Dále jsem udělal evidenci manipulace, která je s evidencí věcí propojená. Věci mají svou tabulku, jedinečné id . Manipulace má také svojí tabulku, ve které má sloupce id , Artikl , Výdej , Datum . Sloupec Artikl obsahuje jedinečné id věci, která je uložená v tabulce artikly . Já nyní potřebuji získat z databáze věci, se kterými se manipulovalo tento měsíc. (Přesněji řečeno, podle parametru v adrese, ten bude obsahovat číslo měsíce.)
Sesmolil jsem tento kód: <?php // připojení k databázi $sqlt = mysql_query("CREATE TEMPORARY TABLE fakturace (artikl INT(10) NOT NULL PRIMARY KEY);"); $y = Date("Y", Time()); $datum = $_GET["m"].".".$y; $sql = mysql_query("SELECT DISTINCT Artikl FROM manipulace WHERE Datum LIKE '%".$datum."';"); while($row = mysql_fetch_object($sql)){ mysql_query("INSERT INTO fakturace VALUES ('".$row["Artikl"]."');"); $sqlv = mysql_query("SELECT artikl FROM fakturace;"); while($row2 = mysql_fetch_object($sqlv)){ $sqlz = mysql_query("SELECT * FROM Artikly WHERE id='".$row2["artikl"]."';"); while($row3 = mysql_fetch_object($sqlz)){ echo($row3["Artikl"]); }; }; }; echo(mysql_error); ?> mysql_error nic nevypisuje. Proč? Případně, máte nějaký jiný nápad jak toto vyřešit?
|
||
Kajman Profil |
#2 · Zasláno: 12. 3. 2012, 15:59:54
Na to stačí jeden jednoduchý dotaz.
SELECT * FROM Artikly WHERE id in (SELECT Artikl FROM manipulace WHERE Datum >= '2012-03-01' and Datum < '2012-04-01') |
||
Fisir Profil |
Reaguji na Kajmana [#2]:
On je problém v tom, že v databázi datum není uložené jako datum. Ono se totiž zobrazuje uživateli a uživatel jej může editovat. A také potřebuji každé id jen jednou.
Pak jsem zkoušel tenhle kód a stejně nic: $sql = mysql_query("SELECT * FROM artikly WHERE id in (SELECT DISTINCT Artikl FROM manipulace WHERE Datum LIKE '%.3.2012')"); while($row = mysql_fetch_object($sql)){ echo($row["Artikl"]); }; echo(mysql_error()); mysql_error() stále nic nevypisuje.
|
||
Kajman Profil |
#4 · Zasláno: 12. 3. 2012, 16:33:56
Fisir:
„On je problém v tom, že v databázi datum není uložené jako datum. Ono se totiž zobrazuje uživateli a uživatel jej může editovat.“ Ano to jste si zadělal na problém. Opravte si to, dokud je čas. Uživateli to samozřejmě můžete převést na jiný formát a stejně ho přijmou před ukládáním a převést si to na korektní datum pro uložení. „A také potřebuji každé id jen jednou.“ Ten kompletní dotaz snad zobrazil nějaké vícekrát? |
||
Fisir Profil |
Reaguji na sebe [#3]:
Hm, stačilo místo mysql_fetch_object použít mysql_fetch_array .
Už je to funkční! Děkuji Kajmanovi za základ SQL dotazu!
|
||
Časová prodleva: 12 let
|
0