2011-10-05 3 views
1

Donc je suis nouveau sur PHP et j'ai de la difficulté avec la fonction trim.PHP Trim après avoir récupéré des données avec MySQL

Fondamentalement, je besoin de

  • garniture @ example.com de toutes les valeurs agent_email.
  • couper le traffic_source jusqu'à 30 caractères à savoir http://www.example.com/ex/test ...

Voici mon code source.

<?php 

include "../include/setup.inc.php"; 


$query="SELECT offer_id,title,email,phone,site,zip,price,return_customer,request_date,traffic_source,agent_email,released FROM jos_quote 
    where request_date >= '2011-10-04' order by request_date"; 
$result = mysql_query($query);   
    if (!$result) {echo "<p><b>".$query ."</b></p>";echo 'MySQL Error: ' . mysql_error(); return;} 
$num_rows = mysql_num_rows($result); 
    echo '<br><table border="1" align="center" width="700px"> 
    <tr bgcolor="#FF8000"><td colspan="11" align="center">Total: '.$num_rows.'quotes - Date Range: '.$_POST['date1'].' -- '.$_POST['date2'].' </td></tr> 
    <tr><th>Title</th><th>Email</th><th>Site</th><th>Zip</th><th>Price</th> 
<th>Return Customer</th><th>Request Date</th><th>Agent</th><th>Released</th><th>Traffic Source</th>'; 
while ($row = mysql_fetch_assoc($result)) { 
    echo '<tr> 
    <td>'.$row['title'].'</td> 
    <td>'.$row['email'].'</td> 
    <td>'.$row['site'].'</td> 
    <td>'.$row['zip'].'</td> 
    <td>'.$row['price'].'</td>        
    <td>'.$row['return_customer'].'</td>         
    <td>'.$row['request_date'].'</td>         
    <td>'.$row['agent_email'].'</td>          
    <td>'.$row['released'].'</td>         
    <td>'.$row['traffic_source'].'</td>             
    </tr>'; 
} 
echo '</table>'; 
$query="select agent_email,num_quote,num_receive,set_date from quote_distro where set_date >= '2011-10-04'"; 
$result = mysql_query($query);   
    if (!$result) {echo "<p><b>".$query ."</b></p>";echo 'MySQL Error: ' . mysql_error();  return;} 
    while ($row = mysql_fetch_assoc($result)) { 
$quote_info[$row['agent_email']][$row['set_date']] =$row; 

} 


} 


?> 

Répondre

1

Ce n'est pas ce que la fonction trim() fait. trim() supprime les espaces entre le début et la fin d'une chaîne.

Je dois découper @ example.com à partir de toutes les valeurs d'agent_email.

Vous pouvez utiliser str_replace pour cela. Par exemple pour supprimer @ example.com d'une chaîne.

$string = str_replace ('@example.com', '', $string); 

Si au contraire vous souhaitez supprimer tout après l'arobase (@), vous pouvez utiliser explode:

list($string) = explode('@', $string); 

Je dois aussi couper le traffic_source jusqu'à 30 caractères

Ceci est encore un autre concept. Vous pouvez utiliser la fonction php substr pour que:

$string = substr($string, 0, 30); 

Si vous voulez ajouter signe ellipsis que lorsque la chaîne a été tronquée:

if (strlen($string) > 30) { 
    $string = substr($string, 0, 30) . '&hellip;'; 
} 
0
substr($row['traffic_source'], 0, 30); 
str_replace('@example.com', '', $row['agent_email']); 
0

Je le ferais dans MySQL, pas PHP. Le cas des sources de trafic est aussi simple que cela:

SELECT LEFT(traffic_source, 30) as traffic_source FROM (...) 

Pour le @ example.com, vous pouvez utiliser REPLACE:

SELECT REPLACE(email, '@example.com', '') AS email (...) 

Vous pouvez également utiliser SUBSTRING

SELECT SUBSTRING(email, 0, INSTR(url, '@')) AS email 

Ces et plusieurs fonctions de chaîne sont documentées here.

Questions connexes