Extraire une partie de chaines d' une champ d'un tableau
dacosta67
Messages postés4Date d'inscriptionvendredi 9 octobre 2009StatutMembreDernière intervention18 août 2011
-
7 janv. 2011 à 18:03
dacosta67
Messages postés4Date d'inscriptionvendredi 9 octobre 2009StatutMembreDernière intervention18 août 2011
-
7 janv. 2011 à 23:18
jai souhaite extraire une partie de chaine d'un champ de ma table.
voici ma table
CREATE TABLE IF NOT EXISTS `news` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`auteur` varchar(30) NOT NULL,
`titre` text NOT NULL,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`texte_news` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
et mon script, jai souhaite extraire une partir des chaines de text_news , et l'afficher .
voici mon script :
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', 'dacosta67');
mysql_select_db('News', $base);
// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC';
// tu recupere ta chaine a partir de ta requete et tu extrait la partie que tu veux avec la fonction substr
$sqli= 'SELECT texte_news FROM news ORDER BY date DESC';
$query=mysql_query($sqli);
while ($row = mysql_fetch_object($query))
{
//echo $row->texte_news;
$val = $row->texte_news;
}
//comment extraire la 5 eme phrase d'une chaine
$delimiter='.';
$string=$val;
$sentence= explode ($delimiter ,$string );
echo '
';
//faut tester si ton champs contient un nombre de phrase >= 3
if(count($sentence)>3)
{
echo $sentence[4].'
';
}
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);
if ($nb_news == 0)
{
echo 'Aucune news enregistrée.';
}
else
{
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req))
{
// on décompose la date
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 201319 7 janv. 2011 à 20:52
bonsoir
quelle est le probleme ?
veux tu extraire pour chaque ligne ?
si c'est ça je te propose
(remettre ton password)
a++
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('News', $base);
// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC';
// tu recupere ta chaine a partir de ta requete et tu extrait la partie que tu veux avec la fonction substr
$sqli= 'SELECT texte_news FROM news ORDER BY date DESC';
$query=mysql_query($sqli);
while ($row = mysql_fetch_object($query))
{
//echo $row->texte_news;
$val = $row->texte_news;
//comment extraire la 5 eme phrase d'une chaine
$delimiter='.';
$string=$val;
$sentence= explode ($delimiter ,$string );
echo '
';
//faut tester si ton champs contient un nombre de phrase >= 3
if(count($sentence)>3)
{
echo ''.$sentence[4].'
';
}
}
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);
if ($nb_news == 0)
{
echo 'Aucune news enregistrée.';
}
else
{
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req))
{
// on décompose la date
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
// on affiche les résultats
echo '
News de : ' , htmlentities(trim($data['auteur'])) , '
';
echo 'Titre : ' , htmlentities(trim($data['titre'])) , '
';
echo 'Postée le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '
';
echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '
';
}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données
mysql_close ();
?>