Inclure automatiquement une image ?

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 13:21

LUuu,

Enfaite je souhaiterai inclure a mon script de news des images selon la news que je souhaite mettre mais je ne c'est vraiment pas comment m'y prendre

J'ai deja une table et un script pr upé mes images et mettre les données dans ma mysql

Voici la base de donné pr les images


CREATE TABLE `images` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `image` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
Et celle pr mes news
CREATE TABLE `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titre` varchar(255) NOT NULL DEFAULT '',
  `contenu` text NOT NULL,
  `timestamp` bigint(20) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
( si sa peu servir )

Ensuite voici le code du script pour mes news


<html>
<body>
<?php
mysql_connect("localhost", "******", "******");
mysql_select_db("site");
// On récupère les 5 dernières news
$num = 1;
$position = 0;
$maxi     = 120 ;
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 5');
while ($donnees = mysql_fetch_assoc($retour))
{
    $cont     = $donnees['contenu'];
    $final    = substr($cont, $position, $maxi);
    $contenu  = nl2br(stripslashes($donnees['contenu']));
?>
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" width="500" height="60">
        <tr>
            <td rowspan="3" width="60" height="60">
            <p align="center"><img src="images/sga-maintitle2.jpg" width="50" height="50" border="1"></p></td>
            <td width="10">&nbsp;</td>
            <td><?php echo $donnees['titre']; ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo date('d.m.Y à H\hi', $donnees['timestamp']); ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo $final; ?>... </td>
        </tr>
    </table>
</div>

<?php
}
mysql_close(); // Fin de la boucle des news
?>
</body>

</html>
Je croi qu'il faut utiliser les id de mes images dans ma table mais je ne vois absolument pas comment

Merci pour votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 avr. 2006, 13:42

Salut,

Pourquoi ne pas ajouter un champ "image" dans la table "news" ?

seule réponse possible =>
plusieurs news peuvent avoir les mêmes images et ce de manière régulière.

tu n'aurai plus qu'à ajouter une balise image avec le nom déjà relevé avec le reste des infos de la news

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 768 Messages

05 avr. 2006, 14:19

    $final    = substr($cont, $position, $maxi);
tu peux éviter à l'éléphant de couper ta chaîne....
demande plutot au dauphin

exemple:

Code : Tout sélectionner

mysql> SELECT LEFT('Allez servir à cet homme un whisky', 20); +------------------------------------------------+ | LEFT('Allez servir à cet homme un whisky', 20) | +------------------------------------------------+ | Allez servir à cet h | +------------------------------------------------+ 1 row in set (0.00 sec)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 15:41

Salut,

Pourquoi ne pas ajouter un champ "image" dans la table "news" ?

seule réponse possible =>
plusieurs news peuvent avoir les mêmes images et ce de manière régulière.

tu n'aurai plus qu'à ajouter une balise image avec le nom déjà relevé avec le reste des infos de la news
Et bien enfaite toute mes news n'auront pas les memes images c'est sa le probleme,

J'ai le script qui note les images dans la db et celui des news et l'on ma dit que avec l'id des images je pouvais faire de facon a que les images puissent s'afficher dans le news au fur et a mesure que je met une news ( et bien sur que je met un nouvelle image)
    $final    = substr($cont, $position, $maxi);
tu peux éviter à l'éléphant de couper ta chaîne....
demande plutot au dauphin

exemple:

Code : Tout sélectionner

mysql> SELECT LEFT('Allez servir à cet homme un whisky', 20); +------------------------------------------------+ | LEFT('Allez servir à cet homme un whisky', 20) | +------------------------------------------------+ | Allez servir à cet h | +------------------------------------------------+ 1 row in set (0.00 sec)
Par contre la lol je n'est pas trop compris :(

Mammouth du PHP | 768 Messages

05 avr. 2006, 16:21

Par contre la lol je n'est pas trop compris :(
bon, je m'explique...

Tu utilises la fonction substr qui retourne un segment de chaîne (PHP)
Tu peux le faire directement dans ta requête... inutile de décharger un camion remplit de tomate pour n'en prendre q'une dizaine :D
L'astuce est d'utiliser la fonction LEFT(nomduchamp, nombredecaractères), qui te retournera les x premiers caractères (en partant de la gauche)

tu peux tester ça sous phpmyadmin pour te faire une idée
exemple
SELECT LEFT(nomduchamp, 20) AS nomduchamp FROM matable
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 avr. 2006, 17:23

Pourquoi ne pas ajouter un champ "image" dans la table "news" ?
seule réponse possible =>
plusieurs news peuvent avoir les mêmes images et ce de manière régulière.
Et bien enfaite toute mes news n'auront pas les memes images c'est sa le probleme
Et donc je ne vois pas l'interet d'un table séparée pour stocker les noms images :-k

Moi j'ajouterais un champ "image" avec le nom de l'image dans la table "news" que tu peux récupérer en même temps que les autres données sans jointure ou autre.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 18:37

Enfaite voila j'ai essayer de bricoler un ti truc
<?php
$reponse = mysql_query("SELECT image FROM images");

while ($donn = mysql_fetch_array($reponse) )
{
}
<img src=" <?php echo $donn['image'];?> " width="50" height="50" alt="">

}
?>
Et je compernd pas mais l'image que je selectionne ne s'affiche pas :(

( bien sur plus haut j'ai ouvert ma base et en bas je lé fermer

Mammouth du PHP | 768 Messages

05 avr. 2006, 18:38

a tu testé SELECT image FROM images dans phpMyAdmin ???
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 18:41

Ba enfaite je voulé pas demander mais je rentrer bien sa dans :

base de donnée => requete puis je rentre " SELECT image FROM images " en bas ?

Mammouth du PHP | 768 Messages

05 avr. 2006, 18:44

Ba enfaite je voulé pas demander mais je rentrer bien sa dans :

base de donnée => requete puis je rentre " SELECT image FROM images " en bas ?
dans phpMyAdmin, tu sélectionnes ta base de donnée,
ensuite tu cliques sur SQL tout en haut et tu tapes SELECT image FROM images. Clique sur Exécuter
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 18:49

Merci je vien de le faire

J'ai ceci en resultat

requête SQL:
SELECT image
FROM images
LIMIT 0 , 30

Ainsi que le chemin d'une images que j'ai upé
Mais que puis je en faire ?

Mammouth du PHP | 768 Messages

05 avr. 2006, 18:54

Merci je vien de le faire

J'ai ceci en resultat

requête SQL:
SELECT image
FROM images
LIMIT 0 , 30

Ainsi que le chemin d'une images que j'ai upé
Mais que puis je en faire ?
est ce que ton image est stockée dans le même dossier que ton script ? ou c'est une image d'un site distant (http: / / .... )
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 18:56

Mon script de news est dans un autre dossier ainsi que celui d'images, l'image et situé quand a elle dans un dossier images

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 19:04

Je vien de tester un bout de code
<?php
$reponse = mysql_query("SELECT image FROM images");

while ($donn = mysql_fetch_array($reponse) )
{
?>
<img src="<?php echo $donn['image']; ?>" width="50" height="50" alt="">
<?php
}
?>
Il affiche bien l'image mais lorsque je post une nouvelle news et ensuite une nouvelle images et bien les deux images s'affiche pr chaque news

( voir ici

Alors que il devrai y en avoir qu'une seul