Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tableau a decouper

24 réponses
Avatar
Pascale
Bonjour,

Je bute le problème suivant :

Je génère un zouli tableau comme suit :

$ordre=$_GET['ordre'];
// L'utilisateur a le choix de l'ordre d'affichage des fiches
if ($ordre=='')
{$sel="SELECT numfiche,nom,datevalid from matable WHERE etat='3' ORDER BY
datevalid DESC";}
elseif ($ordre=='nom')
{$sel="SELECT numfiche,nom,datevalid from matable WHERE etat='3' ORDER BY
nomplante ASC";}
elseif ($ordre=='numfiche')
{$sel="SELECT numfiche,nom,datevalid from matable WHERE etat='3' ORDER BY
numfiche ASC";}
$req = mysql_query($sel) or die('Erreur SQL !'.$sel.'<br>'.mysql_error());
echo '<table><tr><td><a href="affichage.php?ordre=numfiche">Photo</a></td>
<td><a href="affichage.php?ordre=nom">Intitul&eacute;</a></td>
<td><a href="affichage.php?ordre=">Date d\'identification</a></td>
</tr>';
while ($data=mysql_fetch_assoc($req))
{
$numfiche=$data['numfiche'];
$nom=$data['nom'];
$datevalid=$data['datevalid'];
$dateident=dateendroit($datevalid);
$photo='photos/'.$numfiche.'_1.jpg';
$image = exif_thumbnail($photo, $larg, $haut, $type);
echo'<tr><td><a href="voirfiche.php?numfiche='.$numfiche.'"
target="_blank">';
// Si la vignette existe on l'affiche, sinon on met le numéro de la fiche
if ($image)
{echo '<img
src="data:image/png;base64,'.base64_encode($image).'"
width="'.$larg.'" height="'.$haut.'" alt="mini" />';}
else
{
echo $numfiche;
}
echo '</a></td>
<td>'.stripslashes($nom).'</td>
<td>'.$dateident.'</td></tr>';
}
echo'</table>

Jusqu'à présent, ce tableau ne comportait aucune image, il était donc vite
chargé bien que le nombre d'enregistrements soit important (il y avait
juste l'inconvénient d'un ascenseur à rallonge, pas très élégant et peu
pratique).
Avec les vignettes, je ne peux plus continuer comme ça, il faut que je
fasse des pages moins longues, par exemple d'une vingtaine ou d'une
trentaine de fiches) et que les utilisateurs puissent « naviguer » d'une
page à l'autre (sans perdre l'ordre de tri qu'ils ont choisi.
Je pense qu'il faut utiliser l'option LIMIT dans Mysql pour récupérer les
enregistrements par « paquets » mais ça ne m'amène pas bien loin...

J'imagine que c'est un problème simple et classique, mais je m'y paume
quand même. Votre aide sera la bienvenue...

--
Pascale

4 réponses

1 2 3
Avatar
Olivier Miakinen
Le 15/09/2008 08:23, Pascale a écrit :

Où se trouve physiquement le répertoire 'vignettes' sur ton disque ?
Est-ce que l'utilisateur propriétaire du script y a accès en lecture,
écriture et exécution ?



vignettes est un sous-répertoire au même niveau hiérarchique que photos.
[...]
$numfiche='1964';
$photo='photos/'.$numfiche.'_1.jpg';



Ok. $photo vaut donc 'photos/1964_1.jpg'.

[...]
// Jusque là, il semble qu'on n'ait rien perdu en route
imagejpeg($vign,"vignettes/$photo", 100);



Et là tu cherches à créer 'vignettes/photos/1964_1.jpg'. Ce n'est donc
pas seulement le répertoire 'vignettes' que tu dois créer, mais aussi le
sous-répertoire 'vignettes/photos'.

Ou bien tu fais :
$nomvignette = substr_replace($photo, 'vignettes', 0, 6);
imagejpeg($vign, $nomvignette, 100);

echo '<img src="vignettes/'.$photo.'">



Je rappelle à tout hasard que les guillemets simples sont autorisés
autour des valeurs en HTML comme en XHTML. Tu pouvais donc écrire plus
simplement :
echo "<img src='vignettes/$photo'>";
(je trouve ça plus lisible).
Avatar
Olivier Miakinen
Le 15/09/2008 08:41, je répondais à Pascale :

[...]
$numfiche='1964';
$photo='photos/'.$numfiche.'_1.jpg';



[...]

Ou bien tu fais :
$nomvignette = substr_replace($photo, 'vignettes', 0, 6);



Ou plus simplement :
$nomvignette = "vignettes/${numfiche}_1.jpg";

imagejpeg($vign, $nomvignette, 100);


Avatar
Pascale
Olivier Miakinen <om+ écrivait
news:48ce02e9$:

Ok. $photo vaut donc 'photos/1964_1.jpg'.



Oui.

// Jusque là, il semble qu'on n'ait rien perdu en route
imagejpeg($vign,"vignettes/$photo", 100);



Et là tu cherches à créer 'vignettes/photos/1964_1.jpg'. Ce n'est donc
pas seulement le répertoire 'vignettes' que tu dois créer, mais aussi le
sous-répertoire 'vignettes/photos'.



Rhââââ... c'est pas la peine de faire l'élection de la reine des buses sur
ce forum, j'ai gagné d'avance !

Ou bien tu fais :
$nomvignette = substr_replace($photo, 'vignettes', 0, 6);
imagejpeg($vign, $nomvignette, 100);
Ou plus simplement :
$nomvignette = "vignettes/${numfiche}_1.jpg";



Tiens, je ne connais pas cette façon d'écrire une variable avec des
accolades. J'en ai, des trucs à apprendre (:

Je rappelle à tout hasard que les guillemets simples sont autorisés
autour des valeurs en HTML comme en XHTML. Tu pouvais donc écrire plus
simplement :
echo "<img src='vignettes/$photo'>";
(je trouve ça plus lisible).



Ouaip, mais j'ai pris l'habitude (bonne ou mauvaise) de mettre un '
derrière chaque echo... déjà qu'il m'arrive de me planter même quand je
respecte mes habitudes...

Je me répète, mais merci pour ton aide et ta patience ! Maintenant, ÇA
MARCHE !

--
Pascale
Avatar
Olivier Miakinen
Le 15/09/2008 18:15, Pascale a écrit :

Rhââââ... c'est pas la peine de faire l'élection de la reine des buses sur
ce forum, j'ai gagné d'avance !



(-;

ÇA MARCHE !



C'est l'essentiel.
1 2 3