我想要做的是从我的数据库中获取每个产品的详细信息,使其具有至少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";
}
?>
答案 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', '...');