从mysql表中获取文本,编辑它并使用php打印

时间:2012-03-07 21:28:14

标签: php mysql html

我想要做的是从我的数据库中获取每个产品的详细信息,使其具有至少200长度的特定数量的字符,但我想编辑它以便它不显示半个字。这是我已经组装但没有运气的代码。

<?php 
//Block to show the latest products
$dynamicList="";
$sql=mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 6");
$product_count=mysql_num_rows($sql);

if($product_count > 0){

    while($row = mysql_fetch_array($sql)){

        $id=$row["id"];
        $product_name=$row["product_name"];
        $price=$row["price"];
        $details[]=$row["details"];
        $details = substr($details, 0, 490);
        for($counter = strlen($details); $counter >= 0; $counter--){

            if($details[$counter] != " "){
                $details=substr($details, 0, ($counter -1));
            }else if($details[$counter] == " "){
                break;
            }

        }


        $date_added=strftime("%b %d, %Y", strtotime($row["date_added"]));
        $dynamicList .='<table width="100%" border="0" cellspacing="0" cellpadding="1">
                <tr>
                  <td width="20%" height="121" valign="top">
                  <a href="product.php?id=' . $id . '">
                  <img src="inventory_images/' . $id . '.jpg" alt="' . $product_name . '" width="auto" style="border:#FFFFFF 1px solid" height="150" border="1"/></a></td>
                  <td width="80%" valign="top">
                  <p><a href="product.php?id=' . $id . '">' . $product_name . '</a></p>
                  <p>' . $details . '</p>

                  <p>' . $price . '€</p>
                  <form id="form1" name="form1" method="post" action="cart.php">
                        <input type="hidden" name="pid" id="pid" value="'.$id.'" />
                        <input type="submit" name="button" id="button" value="Προσθήκη στο Καλάθι" />
                  </form>

                  </td>
                </tr>
              </table>';
    }

}else{

    $dynamicList="We have no products in our store yet";    

}

?>

2 个答案:

答案 0 :(得分:2)

您的问题是$details是一个数组,在那部分您没有使用数组索引。如果你想使用字符串,最好的办法就是重命名其中一个字符串,这样PHP就不会混淆两者。

答案 1 :(得分:0)

从wordwrap的手册页,这应该做你想要的。

function cutstr($str, $length, $ellipsis=''){
   $cut=(array)explode('\n\n',wordwrap($str),$length,'\n\n'));
   return $cut[0].((strlen($cut)<strlen($str))?$ellipsis:'');
}

将功能添加到页面并用以下内容替换第14行到第24行:

$details=cutstr($row["details"], '200', '...');