Page 1 sur 2

2 petites questions

Posté : 14 déc. 2006, 11:35
par cmoi
Alors voilà, j'ai ce code :
            <?php 
    $table = "organismes"; 
    $sql = "SELECT * FROM " . $table; 
    $res = mysql_query($sql); 
    $nb = mysql_num_rows($res);
    $i = 0; 
	echo '<table>'; 
    while ($i < $nb){ 
        echo '<tr>'; 
		echo '<td>' . mysql_result($res, $i, "LOGO") . '</td>'; 
	    echo '<td>' . '<b>'.'<a href=mysql_result($res, $i, "SITE")>'.mysql_result($res, $i, "SOCIETE") . '</a>'.'</b>'.'</td>'; 
		echo '<td>' . '<center>'.'<font face="Arial, Helvetica, sans-serif" size="1" color="#666666">'.mysql_result($res, $i, "THEMES").'</font>'.'</center>' . '</td>'; 
        echo '<td>' .'<center>'. '<font face="Arial, Helvetica, sans-serif" size="1" color="#666666">'.mysql_result($res, $i, "REGIONS") .'</font>'.'</center>' .'</td>'; 
        echo '</tr>'; 
        $i++; 
    } 
    echo '</table>';
	
?>
Les 2 premiers champs ne s'affichent pas comme je veux :
LOGO devrait afficher une image. Mais je ne sais pas comment configurer le champ correspondant dans PhpMyadmin.
Il devrait y avoir un lien sur SOCIETE. Apparemment ce n'est pas le bon code.

A l'aide svp !!! Merci d'avance.

Posté : 14 déc. 2006, 11:41
par zeus
Modération :
cmoi, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Posté : 14 déc. 2006, 11:50
par Ryle
Concernant ton LOGO, je suppose que la valeur stockée en base correspond à l'url du fichier. Dans ce cas, il te manque les balises html de l'image pour que celui-ci soit correctement affiché par le navigateur
'<img src="'.$nom_du_fichier.'" ... />'
Concernant le lien vers ta société, il te manque les guillemets de l'attribut href, et surtout, comme tu peux le voir grace à la coloration syntaxique, ton lien est interprété comme une chaine de caractère et non comme une commande php:
'<a href="'.mysql_result($res, $i, "SITE").'">'.mysql_result($res, $i, "SOCIETE") . '</a>'

Posté : 14 déc. 2006, 12:25
par cmoi
[quote="Ryle"]Concernant ton LOGO, je suppose que la valeur stockée en base correspond à l'url du fichier. Dans ce cas, il te manque les balises html de l'image pour que celui-ci soit correctement affiché par le navigateur
'<img src="'.$nom_du_fichier.'" ... />'
echo '<td>' . '<img src="'.$nom_du_fichier.'".mysql_result($res, $i, "LOGO")/> . '</td>';

qui ne marche pas !

POur le lien, ça fonctionne super. Merci.

Posté : 14 déc. 2006, 12:29
par Ryle
Ok pour le lien.

Pour le logo faisons preuve d'un peu de logique : on part du principe que " mysql_result($res, $i, "LOGO") " contient le nom du fichier, tandis que par rapport à ton code, la variable " $nom_du_fichier " n'a absolument aucune signification .... ;)

Posté : 14 déc. 2006, 12:31
par jojolapine
met y un peu du tien...
Il faut que tu remplaces $nom_du_fichier, par la valeur que tu as en base de donnée... alors? à ton avis comment procèdes-tu?

Posté : 14 déc. 2006, 12:35
par cmoi
je savais que ça n'avait pas de sens. j'ai essayé ça qui ne marche pas mieux :
echo '<td>' . '< img src="'.mysql_result($res, $i, "LOGO").'"/>' . '</td>'; 
l'adresse s'affiche mais pas l'image !

Posté : 14 déc. 2006, 12:41
par jojolapine
il me semble qu'il y a un espace de trop au début de ta balise img
il faut écrire <img
Sinon que contient le champ LOGO ?, es-tu sûr que le chemin est bon ?

Posté : 14 déc. 2006, 12:42
par fred9999
et le nom du logo????

il y a bien l'extension ???

Posté : 14 déc. 2006, 12:55
par cmoi
il me semble qu'il y a un espace de trop au début de ta balise img
il faut écrire <img
Sinon que contient le champ LOGO ?, es-tu sûr que le chemin est bon ?
On avance : l'image s'affiche. De plus comme j'ai mis un lien sur l'image, j'ai un cadre. Ma balise border n'est peut-être pas au bon endroit.

Code : Tout sélectionner

echo '<td>' . '<font border="0">'.'<a href="'.mysql_result($res, $i, "WEB").'">'.'<img src="'.mysql_result($res, $i, "LOGO").'"/>' . '</a>'.'</font>'.'</td>';
Merci pour votre aide.

Posté : 14 déc. 2006, 12:58
par Ryle
En effet, tu peux virer la balise <font> qui ne sert à rien ici, quant à l'attribut border="0" sa place est dans le tag <img> :)

Posté : 14 déc. 2006, 16:40
par cmoi
En effet, tu peux virer la balise <font> qui ne sert à rien ici, quant à l'attribut border="0" sa place est dans le tag <img> :)
j'ai fini par le comprendre. Mais je n'arrive à trouver la bonne syntaxe.

Code : Tout sélectionner

echo '<td>'.'<a href="'.mysql_result($res, $i, "WEB").'">'.'<img src="'.mysql_result($res, $i, "LOGO").'"/>'.'</a>'.'</td>';

Code : Tout sélectionner

'<img src="'.mysql_result($res, $i, "LOGO").'border="0"'.'"/>'
Ca par exemple ne va pas.

Posté : 14 déc. 2006, 17:07
par Ryle
Tu n'est as obligé de faire une chaine avec chaque balise html tu sais :)
Ca serait bien plus lisible si tu ne le faisais d'ailleurs pas et tu verrais plus facilement ce qui ne va pas (c'est un problème de guillemets. De même en utilisant le tag [ php ] au lieu de [ code ] tu peux profiter de la coloration syntaxique :)
'<img src="'.mysql_result($res, $i, "LOGO").'border="0"'.'"/>'
//revient à 
'<img src="'.mysql_result($res, $i, "LOGO").'border="0""/>'
Le plus simple pour ne pas te tromper, c'est d'écrire le html que tu veux obtenir en sortie, et compléter la où il faut avec le php. Par exemple ici tu veux obtenir ce code :

Code : Tout sélectionner

<td><a href="MON_LIEN"><img src="MON_IMAGE" border="0" /></a></td>
Pour le passer en php, on commence simplement par l'afficher tel quel :
echo '<td><a href="MON_LIEN"><img src="MON_IMAGE" border="0" /></a></td>';
Ensuite on sort les variable que l'on veut modifier
echo '<td><a href="'.MON_LIEN.'"><img src="'.MON_IMAGE.'" border="0" /></a></td>';
Et il ne reste plus qu'à remplacer avec les valeurs qui vont bien :
echo '<td><a href="'.mysql_result($res, $i, "WEB").'"><img src="'.mysql_result($res, $i, "LOGO").'" border="0" /></a></td>'; 
Et là tu es sur d'avoir une syntaxe html correcte :)

Posté : 14 déc. 2006, 17:47
par cmoi
Merci pour ces atuces. Peu à peu ça rentre !

2 autres petites question:
- chaque enregistrement est numéroté de 1 à ... Comment afficher le dernier n° ?
- comment afficher par ordre alphabétique ?

Posté : 14 déc. 2006, 17:56
par Ryle
Concernant l'ordre, il te suffit de préciser la (ou les) colonne(s) suivant les quelles tu veux trier tes résultats dans ta requête. Par exemple, pour les trier par ordre alphabétique des sociétés :
$sql = "SELECT * FROM " . $table . " ORDER BY societe";  
(ou, sans intérêt, mais c'est pour l'exemple, par ordre inverse des noms des logo, puis par societe pour celles qui ont le même nom de logo :
$sql = "SELECT * FROM " . $table . " ORDER BY logo DESC, societe";  
Par contre je n'ai pas bien compris ta question sur la numérotation. Si c'est le nombre de ligne que tu recherches, tu l'as dans ta variable $nb (puisque tu affiches chaque ligne de 0 à $nb) ?