Tronquage du contenu d'un champ

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tronquage du contenu d'un champ

par BaLiSTiK » 28 avr. 2006, 12:46

bah voila merciiii ça fonctionne, oki maintenant faut que j integre la fonction link_extract...je re posterai si j'arrive pas à l'intégrer.et encore merci pour l'aide ^^

par chris3719 » 28 avr. 2006, 12:39

décidément je suis gauche , j'ai oublié un petit truc :

while($tab=mysql_fetch_array($req)){
echo $tab['URL_LINK']!=""?$tab['URL_LINK'].'<br>':"";
$tab_content[$i]['CONTENT']=$tab['CONTENT'];
$i++;
}

si on met rien dans $tab_content[$i]['CONTENT'], ça risque pas marcher

par BaLiSTiK » 28 avr. 2006, 12:36

toujours pareil :( ...des que mes collegues auront du temps libre je leur demanderai...ou si qqun d autre a une soltion lol.
En tout cas merci pour ton aide :D

par chris3719 » 28 avr. 2006, 12:27

autant pour moi, je dois être fatigué,

-- connexion BDD --
$req = mysql_query( $sql ) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

/*-- Affichage des liens de URL_LINK --*/
echo '<b>Liste de tous les liens de URL_LINK :</b><br>';
$i=0;
while($tab=mysql_fetch_array($req)){
echo $tab['URL_LINK']!=""?$tab['URL_LINK'].'<br>':"";
$tab_content[$i]['CONTENT'];
$i++;
}

/*--Affichage du CONTENT*/
echo '<br><b>Affichage du CONTENT tronqué:</b><br>';
for($i=0;$i<count($tab_content);$i++){
echo $tab_content[$i]['CONTENT']!=""?$tab_content[$i]['CONTENT'].'<br>':"";
}

ça devrai aller mieux

par BaLiSTiK » 28 avr. 2006, 12:22

j ai suivi ce que tu m as dis, le code donne ça (le tronquage est mis en comm pour l'instant...)
-- connexion BDD --
$req = mysql_query( $sql ) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$tab_content=$tab; 

/*-- Affichage des liens de URL_LINK --*/
echo '<b>Liste de tous les liens de URL_LINK :</b><br>';
while($tab=mysql_fetch_array($req)){
	 echo $tab['URL_LINK']!=""?$tab['URL_LINK'].'<br>':""; 
	 }
	 
/*--Affichage du CONTENT*/
echo '<br><b>Affichage du CONTENT tronqué:</b><br>';
while($tab_content = mysql_fetch_array($req)){
	echo $tab_content['CONTENT']!=""?$tab_content['CONTENT'].'<br>':"";
		}
mais ça n'affiche toujours pas le contenu de ma deuxieme table :(

pb avec ta première boucle

par chris3719 » 28 avr. 2006, 12:04

Le fait que tu ne puisses pas afficher le chaps CONTENT vien du fait que tu vas à la fin de ton tableau $tab avec ta première boucle while().

la solution pourrait être de faire une copie de $tab dans un autre.
ex :
$tab_content=$tab;
avant ta 1ère boucle while
et dans ta deuxième pour afficher CONTENT, utiliser $tab_content au lieu de $tab

par BaLiSTiK » 28 avr. 2006, 11:48

j ai retravailler un peu le code en concaténant les deux code, ça donne ceci :
/*-- Connexion base de donnée --*/
$con = mysql_connect("localhost","root","argos") or die('Pbl SGBD');
mysql_select_db("MIGRATION2", $con) or die ('Pb Base de donnée');
$sql = 'select URL_LINK, DELIA_ARTICLE.ARTICLE_ID, DELIA_HTML_CONTENT.ARTICLE_ID, CONTENT 
		from DELIA_ARTICLE, DELIA_HTML_CONTENT 
		where DELIA_ARTICLE.ARTICLE_ID = DELIA_HTML_CONTENT.ARTICLE_ID 
		ORDER BY URL_LINK DESC';
$req = mysql_query( $sql ) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

/*-- Affichage des liens de URL_LINK --*/
echo '<b>Liste de tous les liens de URL_LINK :</b><br>';
while($tab=mysql_fetch_array($req)){
	 echo $tab['URL_LINK']!=""?$tab['URL_LINK'].'<br>':""; 
	 }
	 
/*--Affichage & tronquage du CONTENT pour recuperer que les URL --*/
echo '<br><b>Affichage du CONTENT tronqué:</b><br>';
function link_extract($str)
{
    if (ereg("(<a href=\"([a-zA-Z\.]{1,})\".+>([a-zA-Z]{1,})</a>)?", $str,$out))
    //return(array($out[2],$out[3]));
	return $str;
}
$link = link_extract( $tab[ 'CONTENT' ] ); 
//echo $link;
while($tab = mysql_fetch_array($req)){
	echo $tab['CONTENT']!=""?$tab['CONTENT'].'<br>':"";
	echo $link!=""?$tab['CONTENT'].'<br>':"";
	}
mais le probleme reste intact.J'avoue la jen'ai plus aucune idée...

par Vaedan » 28 avr. 2006, 11:10

$link = link_extract( $tab[ 'CONTENT' ] );
// $link[0] = URL
// $link[1] = description
EDIT: Tout compte fait je ne suis pas sûr. Si c'est bien le cas, il n'extrait qu'un lien ...

Tronquage du contenu d'un champ

par BaLiSTiK » 28 avr. 2006, 11:02

Bonjour,
Je suis actuellement en stage de developpement PHP mais c est que mes connaissances la dedans sont tres basiques (c est un stage d'apprentissage^^, donc en gros j'suis un noob :)).
On m'as demandé de faire un 'ti bout de code qui permet de recuperer des URL présentent dans des champs d'une table de la BDD MySQL.
mon 1er soucis :
je dois récuperer les liens présent dans deux tables mais je n'arrive a afficher que le contenu d'une des deux tables...
le code source :

/*-- Connexion base de donnée --*/
$con = mysql_connect("localhost","root","MDP") or die('Pbl SGBD');
mysql_select_db("MIGRATION2", $con) or die ('Pb Base de donnée');
$sql = 'select URL_LINK, DELIA_ARTICLE.ARTICLE_ID, DELIA_HTML_CONTENT.ARTICLE_ID, CONTENT 
		from DELIA_ARTICLE, DELIA_HTML_CONTENT 
		where DELIA_ARTICLE.ARTICLE_ID = DELIA_HTML_CONTENT.ARTICLE_ID 
		ORDER BY URL_LINK DESC';
$req = mysql_query( $sql ) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

/*-- Affichage des liens de URL_LINK --*/
echo '<b>Liste de tous les liens de URL_LINK :</b><br>';
while($tab=mysql_fetch_array($req)){
	 echo $tab['URL_LINK']!=""?$tab['URL_LINK'].'<br>':""; 
	 }

/*-- Affichage de CONTENT --*/
echo '<br><br><b>Liste du contenu de CONTENT :</b><br>';
while($tab = mysql_fetch_array($req)){
	echo $tab['CONTENT']!=""?$tab['CONTENT'].'<br>':"";
	}
Je souhaite afficher d'abor le contenu du champ URL_LINK (de la table DELIA_ARTICLE) et puis apres, le contenu du chanp CONTENT(table DELIA_HTML_CONTENT).
sur la page ça doit donner ceci :http://bacasable1.argosdev2.net/checklink.php

Deuxième probleme :
Le champ "CONTENT" contient que des codes html, donc je dois le tronquer pour ne récuperer que les liens. En cherchant j ai trouvé plus ou moins une fonction qui serait censé le faire mais je ne sais pas trop comment l'utiliser :
function link_extract($str)
{
    if (ereg("(<a href=\"([a-zA-Z\.]{1,})\".+>([a-zA-Z]{1,})</a>)?", $str,$out))
    return(array($out[2],$out[3]));
}
Merci de me répondre :)