[질문]php 에러 질문입니다.(다시 질문입니다)

price의 이미지

간단한 전철요금 조회를 만들고 합니다.
개요는 이렇습니다.

<?
include "price_ivynet.php";

?>

<html>
<head>
<title></title>

</head>

<body>
<?
// $find=$find1 $find2;

if ($pricein)
{

$result = mysql_query("select * from $spost where code like '%$find%'");
$rows = mysql_num_rows($result);

if ($rows)
{
while ($row = mysql_fetch_array($result)){

?>


<?
echo ("
▶ $row[pricecode]
");
?>

<br>
<?
}
}else{
echo "검색결과가 없습니다.";
}
}
?>

<table border=1 cellpadding=0 cellspacing=1 bordercolor=#ffffff>
<form action=price.php method=post>
<input type=hidden name=pricein value=a>
<tr>
<td height=23 width=80 align=center bordercolor=#410606>시작</td>
<td width=300 align=center bordercolor=#410606>
시작위치 :: <select name=find1>
<option value=1>강남
<option value=2>서초
<option value=3>방배
</select>
종료위치 :: <select name=find2>
<option value=1>강남
<option value=2>서초
<option value=3>방배
</select>

<input type=submit name=submit value=find>
</td>
</tr>
</table>
</form>

이렇게도 했는데 잘 되지가 않네요..

디비값을 주고 불러오는건데도.....

조언을 바랄수밖에 없네요....

shyxu의 이미지

에러메시지가 어떻게 나오는지 보여주셔야 할 것 같습니다 ^^;

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

dsh의 이미지

뭐가 잘 안된다는 건가요?
에러 메세지라도 알려주셔야 같이 고민해 드릴 수 있겠죠.

price의 이미지

이런...ㅜㅜ 미안합니다..
급한 나머지...질문은 던지지 않았네요..

위 프로그램 실행하면 전체가 다 나와버립니다.

$find=$find1$find2;

if ($pricein)
{

이부분에서 find 값을 select 2개로 했는데 그것을 합쳐서 하나의 find 값을 만들어야 하는데 잘 안되네요...

참, 그리고 위 $find=$find1$find2 를 지워 버리면 위에서 말했듯이..

모든 값들이 다 출력되는 문제가 생깁니다.....

$result = mysql_query("select * from $spost where code like '%$find%'");

이부분에서 %$find% 부분에서 정확한 값만 찾을 방법은 없는지 궁금합니다.
(%$find% 비슷한 것을 다 찾는것이지요?)

[ShadowMind_Angels]
배움의 길은 멀고도 험하군요..............
진정한 배움의 길이란 ★━────

dsh의 이미지

. 빼먹으신 건 아니죠?

$find = $find1 . $find2;
나 register_globals = off 이면
$find = $_POST['find1'] . $_POST['find2'];
[/code]
price의 이미지

$find = $find1 . $find2;
나 register_globals = off 이면
$find = $_POST['find1'] . $_POST['find2'];

앗...점이 빠졌군요... ^^;

그런데 디비 값이 다음과 같습니다.

code | pricecode
11 100
12 200
13 300
.
.
.
.

그런데 위 방식으로 하면 두개의 값이 나옵니다.
첫번째 값은 정상적으로 나오는데 두번째 값은 왜 나오는지 모르겠네요.
(원래는 첫번째 값만 나와야하는데.........)

[ShadowMind_Angels]
배움의 길은 멀고도 험하군요..............
진정한 배움의 길이란 ★━────

price의 이미지

값이 작을 수록 code=11 ~ 15 에서는 두개의 값이 나오지만
값이 클수록 code=18 ... 이러거는 정상적으로 나오네요..

어휴... 잘 안되네요...쩝

그게 문제네요...에구...

%$find% 이게 문제였네요;....... 음...

정확한 값만 불러와야하는데 비슷한것을 불러와버리네요.....

정확하게 불러오는 방법 없을까요?

[ShadowMind_Angels]
배움의 길은 멀고도 험하군요..............
진정한 배움의 길이란 ★━────

Gargoyle의 이미지

$result = mysql_query("select * from $spost where code like '%$find%'");

$result = mysql_query("select * from $spost where code =$find '");

code가 int형인지 varchar인지는 모르겠지만... (varchar형이라면 code='$find' 로...) 정확한 값을 뽑아오셔야 한다고 하셨는데 like를 써서 그러한 문제가 생긴 것 같이 보이는군요.

price의 이미지

ㅠㅠ 감사합니다..

여러모로 도움을 많이 받는것 같네요....

열심히 하겠습니다.

[ShadowMind_Angels]
배움의 길은 멀고도 험하군요..............
진정한 배움의 길이란 ★━────

price의 이미지

또 에러가 발생해서 질문을 해봅니다.

조언을 다시 구해봅니다.

해당 사이트 보시면

www.gosoksubway.co.kr/price/price.php

강남-의정부 하면 17000원이 2개
의정부-강남 하면 17000원이 1개 나와요....

당채 왜이런지 모르겠네요.

증상은 위와 같은 현상이 나와요...강남-강남 이렇게 해도 2개가 나오고요..

소스는 아래와 같습니다.

price.php-----------------------------------

<?
include "price_ivynet.php";
?>

<html>
<head>
<title></title>

</head>

<body>
<?
$find=$find1 . $find2;

if ($pricein)
{

$result = mysql_query("select * from $spost where code = '$find' ");
$rows = mysql_num_rows($result);

if ($rows)
{
while ($row = mysql_fetch_array($result)){

?>


<?
echo ("
▶ $row[pricecode] 원
");
?>

<br>
<?
}
}else{
echo "검색결과가 없습니다.";
}
}
?>

<table border=1 cellpadding=0 cellspacing=1 bordercolor=#ffffff>
<form action=price.php method=post>
<input type=hidden name=pricein value=a>
<tr>
<td height=23 width=80 align=center bordercolor=#410606>시작</td>
<td width=300 align=center bordercolor=#410606>
시작위치 :: <select name=find1>
<option value=a1>강남
<option value=a2>강동
<option value=a3>강북
<option value=a4>강서
<option value=a5>관악
<option value=a6>광진
<option value=a7>광명
<option value=a8>구로
<option value=a9>금천
<option value=a10>노원
<option value=a11>도봉
<option value=a12>동대문
<option value=a13>동작
<option value=a14>마포
<option value=a15>서대문
<option value=a16>서초
<option value=a17>성동
<option value=a18>성북
<option value=a19>송파
<option value=a20>양천
<option value=a21>영등포
<option value=a22>용산
<option value=a23>은평
<option value=a24>종로
<option value=a25>중구
<option value=a26>중랑
<option value=a27>부천
<option value=a28>인천
<option value=a29>안양
<option value=a30>수원
<option value=a31>안산
<option value=a32>성남
<option value=a33>일산
<option value=a34>의정부

</select>
종료위치 :: <select name=find2>
<option value=b1>강남
<option value=b2>강동
<option value=b3>강북
<option value=b4>강서
<option value=b5>관악
<option value=b6>광진
<option value=b7>광명
<option value=b8>구로
<option value=b9>금천
<option value=b10>노원
<option value=b11>도봉
<option value=b12>동대문
<option value=b13>동작
<option value=b14>마포
<option value=b15>서대문
<option value=b16>서초
<option value=b17>성동
<option value=b18>성북
<option value=b19>송파
<option value=b20>양천
<option value=b21>영등포
<option value=b22>용산
<option value=b23>은평
<option value=b24>종로
<option value=b25>중구
<option value=b26>중랑
<option value=b27>부천
<option value=b28>인천
<option value=b29>안양
<option value=b30>수원
<option value=b31>안산
<option value=b32>성남
<option value=b33>일산
<option value=b34>의정부
</select>

<input type=submit name=submit value=find>
</td>
</tr>
</table>
</form>

---------------------------------------------------
db table --------------------
code | pricecode
a1b1 | 5000
.
.
a34b34 | 5000

[ShadowMind_Angels]
배움의 길은 멀고도 험하군요..............
진정한 배움의 길이란 ★━────

codebank의 이미지

결과값이 이상하게 나올때는 먼저 인수부터 체크하는게 순서일것 같네요.
일단 넘어온 $find1, $find2의 값이 무엇인지 echo로 찍어보세요.
다음에 query값이 어떻게 들어가는지도 echo로 찍어보시고요.
그런다음에 php를 이용하지 마시고 직접 mysql에 접속해서 똑같은 쿼리값을
실행시켜보세요.
만일 같은 쿼리값에 다른 동작을 한다면(이러면 안되지만...) 로직상에 문제를
찾아야겠죠.
mysql_query를 실행한 이후의 값이나 rows값등을 echo값으로 점검을 해보면서
어디에서 문제를 일으켰는지를 확인해보시면 되겠죠.
rows값을 가져왔다면 while보다는 for를 이용하는게 어떨까 생각도 듭니다.
그리고... 만일 mysql에 접근해서 직접 쿼리를 날렸는데도 같은 값이 나온다면
이것은 데이터를 의심해봐야합니다.
즉, 같은 데이터가 들어갔는지부터 확인하는게 좋겠죠.

결론은 while에의한 값이 두번이상 출력될 가능성과 데이터의 중복이 될것 같네요.

------------------------------
좋은 하루 되세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.