简体   繁体   English

使用PHP根据MySQL表中的特定文本显示特定图像

[英]Display specific image depending on specific text in MySQL table using PHP

In my MySQL database I have table named game with columns: sport_cat , timelive , match_title , selection , 在我的MySQL数据库中,我有一个名为game表,该表的sport_catsport_cattimelivematch_titleselection

I am exactly this MySQL query SELECT statement for displaying them in grid view on site: 我正是这个MySQL查询SELECT语句,用于在站点的网格视图中显示它们:

<?
$qry = "
SELECT sport_cat,match_title,selection,
CASE 
WHEN game.result LIKE '' THEN 'PENDING'
WHEN game.result LIKE game.selection THEN 'WON'
WHEN game.result NOT LIKE game.selection THEN 'LOST'
END AS result
FROM game
";
$searchText = "";
if($_REQUEST['search_text']!=""){
$searchText = mysql_real_escape_string($_REQUEST['search_text']);
$qry .=" WHERE sport_cat.timelive LIKE '%$searchText%' " . 
       " OR game.timelive LIKE '%$searchText%' " .
       " OR game.match_title LIKE '%$searchText%' ";      
}

$qry .= " ORDER BY timelive DESC";

$obj = new pagination_class($qry,$starting,$recpage);       
$result = $obj->result;

?>

In first column sport_cat there are few possible text inputs: football , tennis , basketball . 在第一列sport_cat ,几乎没有文本输入: footballtennisbasketball

HTML of my file where this part is looks like this: 这部分所在的文件的HTML如下所示:

<table>
<?if(mysql_num_rows($result)!=0){
$counter = $starting + 1;
while($data = mysql_fetch_array($result)) {?>
<tr>
<td align="center"><? echo $data['sport_cat']; ?></td>
<td align="center"><? echo $data['timelive']; ?></td>
<td align="center"><? echo $data['match_title']; ?></td>
<td align="center"><? echo $data['selection']; ?></td>
</tr>
<?
$counter ++;
} ?>
</table>

What I am trying to do is to display specific picture in those cell according to that input in cell. 我想做的是根据单元格中的输入在这些单元格中显示特定的图片。 So if there is football want to display football.png picture or if there is tennis want to display tennis.png or if there is basketball want to display basketball.png . 所以,如果有football想要显示football.png图片或是否有tennis希望显示tennis.png或有basketball要显示basketball.png Also, if there is maybe some unknown input like cricket and don't have picture specified for that word would like to display unknown.png picture. 另外,如果有可能像一些未知的输入cricket和不具备这个词指定的图片想显示unknown.png图片。 Pictures are stored under images/icons on my server. 图片存储在服务器上的images/icons下。

Now i'm not sure how to implement this code regarding picturing issue into this already existent i have. 现在,我不确定如何将有关将问题图像化的代码实现到我已经存在的代码中。 Thanks. 谢谢。

ADDED full example code: 03.11.2011.: 添加了完整的示例代码:03.11.2011 .:

<?php
error_reporting(E_ALL^E_NOTICE);
include('pagination_class.php');
mysql_connect('xxx.xxx.xxx.xx', 'xxxxxx', 'xxxxxxxx') or die(mysql_error());
mysql_select_db('xxxxxxx');

?>
<script language="JavaScript" src="pagination.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />

<?
$qry = "
SELECT sport_cat,bidprice,timelive,match_title,selection,winnings_with_startamount,odds,odds*10 AS gainedodds,username,
CASE 
WHEN game.result LIKE '' THEN 'pending'
WHEN game.result LIKE game.selection THEN 'WON'
WHEN game.result NOT LIKE game.selection THEN 'LOST'
END AS result
FROM game
";
$searchText = "";
if($_REQUEST['search_text']!=""){
$searchText = mysql_real_escape_string($_REQUEST['search_text']);
$qry .=" WHERE game.sport_cat LIKE '%$searchText%' " . 
       " OR game.timelive LIKE '%$searchText%' " .
       " OR game.match_title LIKE '%$searchText%' " .
       " OR game.selection LIKE '%$searchText%' " .
       " OR game.username LIKE '%$searchText%'";
}

$qry .= " ORDER BY timelive DESC";

//for pagination
$starting=0;
$recpage = 10;//number of records per page

$obj = new pagination_class($qry,$starting,$recpage);       
$result = $obj->result;


function getStyleColorForStatus($status) {
  if ($status == 'WON') {
    return '#99ff99';
  }
  else if ($status == 'LOST') {
    return '#ff9999';
  }
  else if ($status == 'pending') {
    return '#e5e5e5';
  }
  return '';
}

?>

        <form name="form1" action="testpage.php" method="POST" style="background-color:#f9f9f9; -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1); -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1); box-shadow: 0 1px 10px rgba(0,0,0,.1);">

        <table border="0" align="center" width="1000px" padding-left="0px" style="background:#F9F9F9;">

          <TD colspan="0" style="padding-left:0px; padding-bottom:5px; padding-top:10px; text-align:center;">
            Search: <input type="text" name="search_text" value="<?php echo $searchText; ?>">
                <input type="submit" value="Search">
          </TD> 

        <tr><TD colspan="0">

        <div id="page_contents">

            <table width="968px" cellspacing="0" cellpadding="5" align="center" frame="box" rules="none" style="padding-bottom:20px; margin-bottom:8px;margin-top:3px; -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1); -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1); box-shadow: 0 1px 10px rgba(0,0,0,.1); border: 1px solid #cccccc;">
            <tr style="height: 50px;">
<td width="10%" align="center" td class="winheader"><div class="glowtext">Event Category</div></td></td>
<td width="5%" align="center" td class="winheader"><div class="glowtext">Bid Cost</div></td></td>
<td width="10%" align="center" td class="winheader"><div class="glowtext">Event Start Time</div></td></td>
<td width="35%" align="center" td class="winheader"><div class="glowtext">Market/Event</div></td></td>
<td width="10%" align="center" td class="winheader"><div class="glowtext">Selection</div></td></td>
<td width="10%" align="center" td class="winheader"><div class="glowtext">Winnings</div></td></td>
<td width="5%" align="center" td class="winheader"><div class="glowtext">Odds</div></td></td>
<td width="5%" align="center" td class="winheader"><div class="glowtext">Gained Odds</div></td></td>
<td width="10%" align="center" td class="winheader"><div class="glowtext">Winning Bidder</div></td></td>
<td width="10%" align="center" td class="winheader"><div class="glowtext">Final Result</div></td></td>
            </tr>
            <?
            if(mysql_num_rows($result)!=0){
                $counter = $starting + 1;
                $pathImg = "/images/icons/";
                while($data = mysql_fetch_array($result)) {
                    //calculate url image
                    $pathFile = $pathImg . $data['sport_cat'] . ".png";
                    if (!file_exists($pathFile)) {
                        $pathFile = $pathImg . "unknown.png";
                    }
                    ?>

    <tr class="initial" onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'">

                    <td align="center"><img src="<?=$pathFile?>" alt="<?=$data['sport_cat']?>"></TD>
                    <td align="center"><? echo $data['bidprice']; ?></TD>
                    <td align="center"><? echo $data['timelive']; ?></TD>
                    <td align="left"><? echo $data['match_title']; ?></TD>              
                    <td align="left"><? echo $data['selection']; ?></TD>
                    <td align="center"><font color="green">&euro; <? echo $data['winnings_with_startamount']; ?></TD>
                    <td align="center"><? echo $data['odds']; ?></TD>
                    <td align="center"><? echo $data['gainedodds']; ?></TD>
                    <td align="center"><? echo $data['username']; ?></TD>
                    <td align="center" style="background-color:<?php echo getStyleColorForStatus($data['result']); ?>"><? echo $data['result']; ?></td>
                    </tr>

                <?
                    $counter ++;
                } 
            }
        ?>

                <tr><TD align="center" colspan="10" style="padding-bottom:1px; padding-top:10px; color:#333;"><? echo $obj->anchors; ?></TD></tr>
                <tr><TD align="center" colspan="10" style="padding-bottom:10px; padding-top:5px; color:#333;"><? echo $obj->total; ?></TD></tr>
            <?}else{?>
                <tr><TD align="center" colspan="10" style="padding-bottom:10px padding-top:10px; color:red;">No Data Found</TD></tr>
            <?}?>
            </TD></tr>
            </table>
        </div>
        </tr>
        </TD>
    </form>
    </table>

try this: 尝试这个:

$sql = "SELECT * FROM game";
$result = mysql_query($sql) or die(mysql_error());
$pathImg = "/images/icons/";
while ($row = mysql_fetch_array($result)) {
    $pathFile = $pathImg . $row['sport_cat'] . ".png";
    if (!file_exists($pathFile)) {
        $pathFile = $pathImg . "unknown.png";
    }
    echo '<img src="' . $pathFile . '">';
}

You edit Ask and I edit Anwer :P 您编辑Ask,然后编辑Anwer:P

<table>
    <?
    if (mysql_num_rows($result) != 0) {
        $counter = $starting + 1;
        $pathImg = "/images/icons/";
        while ($data = mysql_fetch_array($result)) {
            //calculate url image
            $pathFile = $pathImg . $data['sport_cat'] . ".png";
            if (!file_exists($pathFile)) {
                $pathFile = $pathImg . "unknown.png";
            }
            ?>
            <tr>
                <td align="center"><img src="<?=$pathFile?>" alt="<?=$data['sport_cat']?>"></td>
                <td align="center"><? echo $data['sport_cat']; ?></td>
                <td align="center"><? echo $data['timelive']; ?></td>
                <td align="center"><? echo $data['match_title']; ?></td>
                <td align="center"><? echo $data['selection']; ?></td>
            </tr>
            <?
            $counter++;
        }
    }
    ?>
</table>

Something like the following should work. 像下面这样的东西应该起作用。

<?php
$sql = "SELECT * FROM game";
$result = mysql_query($sql)or die(mysql_error());
while ($row = mysql_fetch_array($result)){
// Show images

if($row['sport_cat']=='football'){
 print "<img src='football.png'/>";
}
elseif($row['sport_cat']=='basketball'){
 print "<img src='basketball.png'/>";
}
elseif($row['sport_cat']=='tennis'){
 print "<img src='tennis.png'/>";
}else{
 print "<img src='unknown.png' />";
}


} // End while loop
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM