Problem z zapytaniem MySQL i PHP wynik zwraca 3 razy, dlaczego?
Mav - 20-11-2006 00:02
Problem z zapytaniem MySQL i PHP wynik zwraca 3 razy, dlaczego?
Witam
Mam problem nastepujacy: Skrypt zapytujacy baze wyglada tak:
$aDBLink = mysql_connect( $serwer, $user, $pass ); mysql_select_db( $baza, $aDBLink ); $aSQL = "SELECT * FROM kuracje, dolegliwosci WHERE (dolegliwosci.dolegliwosc LIKE '".$doleg."') AND (kuracje.symbol LIKE d1 OR kuracje.symbol LIKE d2 OR kuracje.symbol LIKE d3 OR kuracje.symbol LIKE d4 OR kuracje.symbol LIKE d5 OR kuracje.symbol LIKE d6 OR kuracje.symbol LIKE d7 OR kuracje.symbol LIKE d8 OR kuracje.symbol LIKE d9 OR kuracje.symbol LIKE d10)"; $aQResult = mysql_query( $aSQL, $aDBLink ) or die(mysql_error()); while ( $aRow = mysql_fetch_array( $aQResult ) )
I teraz pytanie dlaczego przy tym zapytaniu petla while powtarza sie 3 krotnie dla kazdego wiersza tabeli...
czyli zamias wyswietlic np.
K1 nazwa kuracji1 K2 nazwa kuracji2
wyswietla
K1 nazwa kuracji1 K1 nazwa kuracji1 K1 nazwa kuracji1 K2 nazwa kuracji2 K2 nazwa kuracji2 K2 nazwa kuracji2
gdzie zrobilem blad?
Pozdr Mav
Mav - 20-11-2006 00:02
sam znalazlem
mysql_free_result( $aQResult );
nie w tym miejscu :)))
Mav - 20-11-2006 00:02
A jednak sobie nie poradzilem HELP
A.L.E.C - 20-11-2006 00:02
Mav wrote:
> $aSQL = "SELECT * FROM kuracje, dolegliwosci WHERE (dolegliwosci.dolegliwosc > LIKE '".$doleg."') AND (kuracje.symbol LIKE d1 OR kuracje.symbol LIKE d2 OR > kuracje.symbol LIKE d3 OR kuracje.symbol LIKE d4 OR kuracje.symbol LIKE d5 > OR kuracje.symbol LIKE d6 OR kuracje.symbol LIKE d7 OR kuracje.symbol LIKE > d8 OR kuracje.symbol LIKE d9 OR kuracje.symbol LIKE d10)"; > > wyswietla > > K1 nazwa kuracji1 > K1 nazwa kuracji1 > K1 nazwa kuracji1 > K2 nazwa kuracji2 > K2 nazwa kuracji2 > K2 nazwa kuracji2 > > gdzie zrobilem blad?
w zapytaniu, brakuje warunku złączenia tych tabel.
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.alec.pl
Paweł Matejski - 20-11-2006 00:02
Mav wrote: > Witam > > Mam problem nastepujacy: > Skrypt zapytujacy baze wyglada tak: > > $aDBLink = mysql_connect( $serwer, $user, $pass ); > mysql_select_db( $baza, $aDBLink ); > $aSQL = "SELECT * FROM kuracje, dolegliwosci WHERE (dolegliwosci.dolegliwosc > LIKE '".$doleg."') AND (kuracje.symbol LIKE d1 OR kuracje.symbol LIKE d2 OR > kuracje.symbol LIKE d3 OR kuracje.symbol LIKE d4 OR kuracje.symbol LIKE d5 > OR kuracje.symbol LIKE d6 OR kuracje.symbol LIKE d7 OR kuracje.symbol LIKE > d8 OR kuracje.symbol LIKE d9 OR kuracje.symbol LIKE d10)"; > $aQResult = mysql_query( $aSQL, $aDBLink ) or die(mysql_error()); > while ( $aRow = mysql_fetch_array( $aQResult ) ) > > I teraz pytanie dlaczego przy tym zapytaniu > petla while powtarza sie 3 krotnie dla kazdego wiersza tabeli... > > gdzie zrobilem blad?
1. Nie stosujesz formatowania przy pisaniu kodu. 2. Usiłujesz zdebugować skrypt a nie zapytanie.
-- P.M.
Mav - 20-11-2006 00:02
>> $aSQL = "SELECT * FROM kuracje, dolegliwosci WHERE >> (dolegliwosci.dolegliwosc >> LIKE '".$doleg."') AND (kuracje.symbol LIKE d1 OR kuracje.symbol LIKE d2 >> OR >> kuracje.symbol LIKE d3 OR kuracje.symbol LIKE d4 OR kuracje.symbol LIKE >> d5 >> OR kuracje.symbol LIKE d6 OR kuracje.symbol LIKE d7 OR kuracje.symbol >> LIKE >> d8 OR kuracje.symbol LIKE d9 OR kuracje.symbol LIKE d10)"; >>
> w zapytaniu, brakuje warunku złączenia tych tabel.
zmienna doleg jest zmienna do porownania w tabeli dolegliwosci dalej tabela dolegliwosci wyglada tak:
nazwa_dolegliwosc d1 d2 d3 d4 d5 alergie K1 K13 K45 K32 K3
tabela kuracje wyglada tak: id symbol nazwa kuracj 1 K1 xxxxx 2 K1A yyyyyy 3 K2 zzzzzzz
relacje maja wystpowac miedzy dolegliwosci.d1...d10 a kuracje.symbol
nie wiem dlaczego sie tak dzieje
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|