Jump to content

substr and strlen


SF23103

Recommended Posts

Hello all,

 

I have created a script that queries my MySQL database and gets a certain row, then echoes out:

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}

while($row = mysqli_fetch_array($result))
  {
   echo "<li><a href=\"#\">"; 
  echo $row['col_5'];
  echo "</li>";
  }

I would like to check to see if each of the row outputs has a string that is more than 13 characters, and if so, strip it down to 13 and add "..." to the end of the string.  I did some research and added a line of code, but it still outputs the long string.  Any ideas on where I went wrong?

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}

while($row = mysqli_fetch_array($result))
  {
$row = (strlen($row) > 13) ? substr($row,0,10).'...' : $row;    // ADDED THIS LINE
   echo "<li><a href=\"#\">"; 
  echo $row['col_5'];
  echo "</li>";
  }
Link to comment
https://forums.phpfreaks.com/topic/287311-substr-and-strlen/
Share on other sites

$row is an array of all the columns for the current row iteration. So you are attempting to use strlen and substr on the entire array.

 

I *assume* given your echo, that you really want this:

 

$row['col_5'] = (strlen($row['col_5']) > 13) ? substr($row['col_5'],0,10).'...' : $row['col_5']; // ADDED THIS LINE

Link to comment
https://forums.phpfreaks.com/topic/287311-substr-and-strlen/#findComment-1474033
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.