PHP 페이지에서 쿼리를 입력하여 테이블에서 정보를 추출하는 코드를 작성하고 있습니다. 그래서 만약 내가 검색 상자에 SQL 문을 써주면, 그것은 나에게 결과를 줄 것이다.mysql_field_type을 사용하지 않고 mysql 열의 필드 유형을 추출하는 방법
문제점 : mysql 문은 사용자가 위에서 설명한대로 입력 할 수 있습니다. entries_date 및 unique_id와 같은 테이블에 걸쳐 반복되는 몇 가지 열이 있습니다. mysql_fetch_assoc을 사용하여 필드를 추출합니다. 그렇게하면 중복 열이 제거됩니다. 그런데 날짜 필드가 있는지 확인하고 그에 따라 사람이 읽을 수있는 "2010 년 1 월 4 일"형식으로 변경해야합니다. 이를 위해 나는 mysql_field_type에 의존한다. 문제가 있습니다.
mysql_field_type 중복 된 필드를 포함하여 모든 필드가 고려됩니다. 하지만 mysql_fetch_assoc에 의해 생성 된 테이블은 중복 필드를 사용하지 않습니다. 따라서 아래 코드에서 이해할 수 있듯이 일부 필드가 날짜 필드로 생각되고 잘못된 대답이 인쇄되고 있습니다.
while($search_now1=mysql_fetch_assoc($search_now))
{
// echo "in here";
$checkvalue=0;
echo "<tr>";
foreach($search_now1 as $key => $value)
{
if($key=='type')
{
switch($value){
case 1:$value="Student";break;
case 2:$value="Normal";break;
case 3:$value="Government";break;
case 4:$value="compl";break;
case 5:$value="compl-For";break;
case 6:$value="Foreign";break;
}
}
else
if($key=='city')
{
$value=city($value);
}
else if($key=='state')
{
$value=state($value);
}
else if($key=='country')
{
if($value!='IN')
{
$value=state($value);
}
}
// this is the error prone area $checkvalue is incremented at the bottom
else if(mysql_field_type($search_now,$checkvalue)=='date')
{
$value=changedate($value);
}
if($value)
{
echo "<td class=\"";
if($checkvalue<8)
{
echo "show";
}
else
echo "none";
echo "\"><span class=\"$key\">$value</span></td>";
}
else if(!$value)
{
echo "<td class=\"";
if($checkvalue<8)
{
echo "show";
}
else
echo "none";
echo "\"><span class=\"$key\">-</span></td>";
}
$checkvalue++;
}
어떻게 수정합니까?
** ** –
검색 창에 SQL 문을 쓰면 안됩니다. 내 내부 데이터베이스에서 검색 할 수 있습니다. 하나만 검색합니다. mysql의 열을 비교하는 것이 정말 번거 롭다. 그들은 내 화면의 작은 창문에 나타난다. 이것은 나를 위해 일을 분명히하는 데 정말로 도움이되었습니다. – user165242
누군가 나를 도와주세요! – user165242