Bonjour,
Voici mon problème:
J'ai un texte enregistré dans une base de données et j'y insère des codes pour afficher des images.
1 2 3 4 5 6 7 8 9 10 11 12
|
CREATE TABLE `PAGES` (
`idpage` int(255) NOT NULL auto_increment,
`texte` text NOT NULL,
PRIMARY KEY (`idpage`)
) TYPE=MyISAM;
CREATE TABLE `IMAGES` (
`idimage` int(255) NOT NULL auto_increment,
`description` varchar(255) NOT NULL default '',
PRIMARY KEY (`idimage`)
) TYPE=MyISAM; |
Exemple du texte enregistré dans texte de la table PAGES:
[img]1-left[/img]Ceci est mon texte.
Le chiffre 1 correspond à idimage de la table IMAGES.
Je veux maintenant afficher mon texte et l'image correctement. J'ai besoin que l'image et le texte s'affichent comme ceci:
<img src="1.jpg" align="left">Ceci est mon texte.
Jusqu'ici, aucun problème pour afficher ces informations. J'utilise le code suivant pour afficher l'image correctement:
1 2
|
$texte=preg_replace('#[img]([^[]+)-([^[]+)[/img]#i','<img src="$1.jpg" align="$2"/>',$texte); |
En-dessous de l'image, je dois afficher sa description. Je dois faire une requête dans la base de données pour aller chercher l'image.
Voici ce que ça devrait donner:
1 2
|
<img src="1.jpg" align="left"><div>description de l'image</div>Ceci est mon texte. |
Mais là, j'ai un bogue, je ne suis pas capable d'extraire correctement le chiffre 1 pour faire la recherche dans la table IMAGES. Est-ce possible d'utiliser encore $1 à l'extérieur de la commande preg_replace ? Jusqu'à présent, je n'ai pas su comment faire.
Y aurait-il un code plus simple qui faciliterait mon travail?
---
Présentement, les informations sont placées dans plusieurs champs et tout était facile à placer. Maintenant, je dois placer plusieurs images dans le champs texte. Les images doivent se retrouver exactement à côté de certaines parties du texte. Ex:
[img]1-right[/img]Ceci est mon premier paragraphe
[img]2-left[/img]Ceci est mon deuxième paragraphe
Ceci est mon troisième paragraphe et je n'ai pas d'image.
... etc
---
Merci à l'avance pour votre aide.
Pierre-Antoine
Partager