PHP - Image, liens et ID manquants
Fermé
Izrafelus
-
25 oct. 2008 à 01:06
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 25 oct. 2008 à 02:22
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 25 oct. 2008 à 02:22
A voir également:
- PHP - Image, liens et ID manquants
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
- Document id lycamobile - Forum Logiciels
- Email id - Forum Consommation & Internet
- Liens copiés - Forum Téléphones & tablettes Android
5 réponses
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
25 oct. 2008 à 01:15
25 oct. 2008 à 01:15
Premièrement, un conseil : redimensionne tes images afin d'en avoir une version plus petite à utiliser sur les pages où elles sont en miniatures, ça accélèrera grandement le chargement !
Deuxièmement, il faudrait expliquer un peu mieux ton problème, je ne comprends pas vraiment ce que tu attends de nous.
Deuxièmement, il faudrait expliquer un peu mieux ton problème, je ne comprends pas vraiment ce que tu attends de nous.
Je bosse sur un Thumbnail déjà, on m'a déjà fait plusieurs fois la remarque sur la lourdeur des images.
Ce qui me pose probleme en clair, c'est le cas des ID manquants. Dans le Picture Viewer, j'aimerais quand je clique sur suivant (ou précédent) qu'il aille me chercher l'ID suivante qui existe. Et pas une simple incrémentation de l'ID de un.
Ce qui me pose probleme en clair, c'est le cas des ID manquants. Dans le Picture Viewer, j'aimerais quand je clique sur suivant (ou précédent) qu'il aille me chercher l'ID suivante qui existe. Et pas une simple incrémentation de l'ID de un.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
25 oct. 2008 à 01:21
25 oct. 2008 à 01:21
Et tu veux quel résultat si l'id n'existe pas ?
Qu'il ne m'affiche pas une page vide tout simple.
Si l'id 13 existe => il affiche l'image de l'id 13. clique sur suivant, si l'id 14 exite => il affiche l'image de l'id 14, si n'existe pas on passe directement a l'id 15 pour voir si il existe, si oui affiche l'image sinon passe a l'id suivante. etc.
Celon moi c'est la meilleure méthode.
Je me suis renseigné aussi aupres d'autres amis webmaster et m'ont dit qu'une autre solution serait de faire un select * sur la base et de stocker ca dans un tableau, ainsi il aurait une liste des ID qui existent. Mais je ne sais pas comment mettre cela en application.
Si l'id 13 existe => il affiche l'image de l'id 13. clique sur suivant, si l'id 14 exite => il affiche l'image de l'id 14, si n'existe pas on passe directement a l'id 15 pour voir si il existe, si oui affiche l'image sinon passe a l'id suivante. etc.
Celon moi c'est la meilleure méthode.
Je me suis renseigné aussi aupres d'autres amis webmaster et m'ont dit qu'une autre solution serait de faire un select * sur la base et de stocker ca dans un tableau, ainsi il aurait une liste des ID qui existent. Mais je ne sais pas comment mettre cela en application.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
25 oct. 2008 à 01:49
25 oct. 2008 à 01:49
Au lieu de faire un SELECT * FROM table WHERE id=n, tu fais juste un SELECT * FROM table. Ensuite, ton lien pour passer d'une photo à l'autre pourrait être un bouton de validation de formulaire, formulaire qui passerait le tableau obtenu précédemment et l'id de la photo courante (voire son indice dans le tableau).
Cette méthode à de nombreux avantages puisqu'elle permet de ne faire qu'une requête sur la base et de gérer les cas où les id ne sont pas consécutives. En retour, elle implique de passer une quantité de données importante si le nombre de photos est grand.
Cette méthode à de nombreux avantages puisqu'elle permet de ne faire qu'une requête sur la base et de gérer les cas où les id ne sont pas consécutives. En retour, elle implique de passer une quantité de données importante si le nombre de photos est grand.
Izrafelus
>
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
25 oct. 2008 à 02:02
25 oct. 2008 à 02:02
D'accord je vois plus ou moins ce que tu veux dire par la, je me disait aussi que ma methode devait etre bouffe mémoire a en crever, j'ai deja fait ca en orienté objet et ca à été la cata ^^ .
dans les <input type=button>, je devrait lui mettre précisément quoi en argument pour qu'il renvoie le tableau précédement généré ?
De plus, pour la requete SQL, je passe par un mysql_num_row ou un mysql_fetch_array pour créer le tableau ?
Merci de ton aide en tout cas ...
dans les <input type=button>, je devrait lui mettre précisément quoi en argument pour qu'il renvoie le tableau précédement généré ?
De plus, pour la requete SQL, je passe par un mysql_num_row ou un mysql_fetch_array pour créer le tableau ?
Merci de ton aide en tout cas ...
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
25 oct. 2008 à 02:06
25 oct. 2008 à 02:06
Le formulaire pourrait ressembler à ça :
Bien sûr sur la première page, il faut interroger la base de données pour récupérer tableau_photos.
Il faut aussi penser à vérifier que l'indice ne descende pas en dessous de zéro et ne dépasse pas l'indice maximum du tableau.
<?php $tableau_photos = unserialize( stripslashes( $_POST['photos'] ) ); if ( isset( $_POST['precedent'] ) ) { $indice = intval( $_POST['indice'] - 1 ); } elseif ( isset( $_POST['suivant'] ) ) { $indice = intval( $_POST['indice'] + 1 ); } ?> // Tu affiches l'image qui se trouve à l'indice $indice dans $tableau_photos <form method="post"> <input type="hidden" name="indice" value="<? echo $indice; ?>" /> <input type="hidden" name="photos" value='<? serialize( $tableau_photos ); ?>' /> <input type="image" name="precedent" src="images/precedent.png" /> <input type="image" name="suivant" src="images/suivant.png" /> </form>
Bien sûr sur la première page, il faut interroger la base de données pour récupérer tableau_photos.
Il faut aussi penser à vérifier que l'indice ne descende pas en dessous de zéro et ne dépasse pas l'indice maximum du tableau.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
>
Izrafelus
25 oct. 2008 à 02:22
25 oct. 2008 à 02:22
Je pense que je dormirai demain matin, donc ne t'inquiètes pas si je ne réponds pas avant tard...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
25 oct. 2008 à 02:21
25 oct. 2008 à 02:21
<?php function listePhotos() { // Connexion au serveur $handler = mysql_connect( $host, $user, $pass ); // Choix de la base $database = mysql_select_db( "ma_base", $handler ); // Requête $req = "SELECT * FROM table_photos"; $resultat = mysql_query( $req, $handler ); // On stocke le résultat dans un tableau associatif avec pour clé le champs id $i = 0; $tableau = array(); while ( $row = mysql_fetch_array( $resultat, MYSQL_ASSOC ) ) { $tableau["$i"] = $row; ++$i; } return $tableau; } ?>
Et ensuite, en fonction du schéma de ta table, tu récupèreras l'url de l'image à afficher par $tableau[$indice]['url'], si c'est le champs url de ta table qui contient l'adresse de l'image.
Cette fonction ne doit être appelée que lorsque l'utilisateur clique sur une miniature pour afficher le zoom.