묻고답하기
데이타베이스 뽑아오기.
2008.12.16 17:55
안녕하세요. 요즘 PHP 공부하고 있는 초보 학생입니다. 꾸벅~
mySQL 에서 DB 를 뽑아오는 공부를 하려고 예제 소스를 만들어서 해보고 있는데요.
막히는 부분이 있어서 고수님들께 조언을 구하고자 달려왔습니다.
ex_join
-----------------------------
no | user_id | user_pw
-----------------------------
1 | test1 | 1234
-----------------------------
2 | test2 | 6789
-----------------------------
3 | test3 | 3456
ex_join 테이블 중...
------------------------------------------------------------------------
$query = "select user_id, user_pw from ex_join";
$result = mysql_query($query);
$data = mysql_fetch_array($result);
echo $data[user_id];
echo $data[user_pw];
------------------------------------------------------------------------
제가 의도한 바로는 ex_join 테이블 중에서 user_id , user_pw 열에 있는 모든 자료를
불러오고 싶었습니다.
출력값은 =
test1 test2 test3
1234 6789 3456
이럴 줄 알았는데. echo $data[user_id] 출력값은 = test1 로 하나의 값만 출력되더군요.
그래서 다시 생각해봤는데요.
while 반복문을 써서.
------------------------------------------------------------------------
while($data = mysql_fetch_array($result))
{
echo $data[user_id];
}
------------------------------------------------------------------------
다시 출력을 해보았는데 제가 원하는 출력값을 볼 수 있었습니다.
test1 test2 test3
이렇게 나왔다는 것은.
------------------------------------------------------------------------
$query = "select user_id, user_pw from ex_join";
------------------------------------------------------------------------
이 구문에서 user_id , user_pw 열에 있는 모든 자료가 쿼리에 전달이 됬는데,
각 자료에 접근하는 소스가 잘못된 것으로 봐도 되는지요?
(echo $data[user_id]; 를 했을때는 test1 만 출력되던 것이.
반복문을 썼을 때는 해당 열의 모든 정보를 보여주는 것..)
=======================================
제가 원했던 것은,
로그인 폼을 만들어서,
아이디 폼값에 login_id 를 비밀번호 폼값에 login_pw 를 주고.
사용자가 아이디와 비밀번호를 입력시에,
데이타베이스에 있는 user_id와 user_pw를 불러와서 비교하여,
맞으면 pass 를 틀리면 fale 을 출력하는 소스를 만들어 보고 있었습니다.
그런데 데이타베이스에서 처음 입력했던 test1 만 비교가 되고 test2 와 test3 는 비교를 못하고 있습니다.
(폼값에 test1 과 1234 를 입력했을 때는 pass 가 나오지만, test2 와 test3 을
입력했을 때는 fale 이 나옵니다.)
그래서, 애초에 쿼리를 불러올때 첫번째 줄만 불려오나 했는데, 반복문을 썼을때는
출력이 되는 것을 보니 그렇지도 않은 것 같습니다.
--------------------------------------------------------------------------------------------
if($login_id != $data[user_id]){error('올바른 아이디가 아닙니다');}
--------------------------------------------------------------------------------------------
$data[user_id] 를 했을 때 test1 만 불려오는데, 해당 열에 대한 모든 자료에
어떤식으로 접근을 해야 될까요?
조언 부탁드리겠습니다. 꾸벅~
$data = mysql_fetch_array($result);
if(!$data[0]) message("입력하신 정보와 일치하는 회원이 없습니다");
이렇게 하면 아이디와 패스워드가 일치하는 회원이 있을 경우에만 data변수에 결과값이 저장됩니다
반복문 쓸 필요 없습니다