IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Définir ordre d'affichage d'images


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut Définir ordre d'affichage d'images
    Bonjour,

    J'ai un module que j'utilise dans une interface d'administration pour insérer des images.
    Tout fonctionne très bien mais j'ai des difficultées à construire ma requête pour définir l'ordre d'affichage.
    Exemple j'ai 4 images qui s'affiche dans cet ordre, image A=position 1, image B=position 2, image C=position 3, d=position 4
    Comment on peut faire pour que l'image C=position 3 puisse passer en position 1 ?

    Voici mon code, c'est un peu long mais plutot que de donner des morceaux en plusieurs fois on gagnera du temps

    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    // module image dans l'interface d'administration //
    define('ROOT','./');
    // fichier de connexion Mysql
    require(ROOT.'config.php');
    // fichier SBImage.php est la class pour redimentioner automatiquement les images
    require('SBImage.php');
    // Les images sont insérées et stocké directement dans le rértoire Ftp
    if(!empty($_POST['ID_BIEN'])){
    	$erreurs = array(); //initialise un tableau d'erreurs au cas ou :)
    	$lienimage = '';
    	$typesacceptes = array('image/jpeg','image/jpg','image/png','image/gif');
    //vérifie si les images existent et qu'elles sont au bon format
    	if(!empty($_FILES['image']['name']) && in_array($_FILES['image']['type'],$typesacceptes)){
    		$lienimage = mysql_escape_string($_FILES['image']['name']);
    		copy($_FILES['image']['tmp_name'],'./images/'.$lienimage);
    		// Redimentionne l'image (grande) avec require('SBImage.php'); ////
    		SBImage::resize('./images/'.$lienimage,400,300,true,'./images/'.$lienimage);
    		copy($_FILES['image']['tmp_name'],'./images/miniatures/'.$lienimage);
    		// Redimentionne l'image migniature avec require('SBImage.php'); ////
    		SBImage::resize('./images/'.$lienimage,120,90,true,'./images/miniatures/'.$lienimage);
    //connexion à la base Mysql
    		$connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion'); 
    		mysql_select_db(MYDB) or die ('erreur de connexion à la base'); 
    // l'insertion des images ajoute des lignes directement dans la table "images"
    		$requeteinsert = 'INSERT INTO images(ID_BIEN,lienimage) VALUES(\''.$ID_BIEN.'\',\''.$lienimage.'\')';
    		$result = mysql_query($requeteinsert,$connect);
    // Confirmation positive, la mise en forme dans la page se fait par le css		
    		echo '<p class="success">Votre image a bien été enregistré, elle s\'affiche ci dessous</p>';
    			echo '<p class="success">Vous voulez ajouter une autre image ?</p>';
    		mysql_close($connect);	
    // Confirmation des erreurs, la mise en forme dans la page se fait par le css		
    	}	
    	else{
    		$erreurs[] = 'Votre image n\'est pas au bon format, une image valide doit etre au format( jpg, png ou gif)!';
    	}
    }
    		if(!empty($erreurs)){
    			echo '<div class="error">
    					<p>Internaute</p>
    					<ul>';
    			foreach($erreurs as $erreur){
    				echo '<li>'.$erreur.'</li>';
    			}
    			echo '</ul>
    			</div>';
    		}
    // Foumulaire pour la validation de l\'insertion des images
    echo '<form id="insertion_Images" class="class-galerie-images" method="post" action="?module=scaff&amp;table='.$this->table.'&amp;action=edit&id='.$id.'" enctype="multipart/form-data">';
    echo "\n<input type=\"hidden\"     name=\"ID_BIEN\"    Value=\"".$ID_BIEN."\">  \n";
    echo '<fieldset>
    				<legend>Ajout d\'une image</legend>
    				<label for="image">Image</label>
    				<input type="file" id="image" name="image"/>			
    				<button type="submit">Uploader</button>
    			</fieldset>
    		</form>
    		<br/>
    			<div class="tableau">
    		<table summary="Liste des images de la galerie">
    			<caption>Liste des images</caption>
    			<tr>
    				<th>Id</th>
    				<th>Images</th>
    				<th>Supprimer</th>
    			</tr>
    	';
    // Suppression dans l\interface d'administation d'une image déja insérée 
    			$connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion'); 
    			mysql_select_db(MYDB) or die ('erreur de connexion la base'); 
    			if(!empty($_GET['sup']) && is_numeric($_GET['sup'])){
    				$requeteselect = 'SELECT lienimage FROM images WHERE  id=\''.mysql_escape_string($_GET['sup']).'\'   AND   ID_BIEN=\''.$ID_BIEN.'\'';  
    				$result = mysql_query($requeteselect, $connect);
    				$image_courante = mysql_fetch_array($result,MYSQL_ASSOC);
    				unlink('./images/'.$image_courante['lienimage']);
    				unlink('./images/miniatures/'.$image_courante['lienimage']);
    				$requetesup = 'DELETE FROM images WHERE id=\''.mysql_escape_string($_GET['sup']).'\'';
    				$result = mysql_query($requetesup, $connect);
    				echo '<p class="success">Votre image a bien été supprimé</p>';
    				echo '<p class="success">Vous pouvez en ajouter une autre.</p>';
    			}
    // Affichage des miniatures qui ont été insérées en dessous du formulaire d'insertion des images dans l\interface d'administation			
    			$requeteselect = 'SELECT id,lienimage FROM images WHERE ID_BIEN=\''.$ID_BIEN.'\'';
    			$result = mysql_query($requeteselect, $connect);
    			while($image_courante = mysql_fetch_array($result,MYSQL_ASSOC)){			
    				echo '<tr>
    						<td>'.$image_courante['id'].'</td>
    					<td><img src="./images/miniatures/'.$image_courante['lienimage'].'"/></td>
    						<td><a href="?module=scaff&amp;table='.$this->table.'&amp;action=delete_image&sup='.$image_courante['id'].'&ID_BIEN='.$ID_BIEN.'&amp;action=edit&id='.$id.'">Supprimer</a></td>
    				</tr>
             ';  
    			}
    			mysql_close($connect);	
    		 echo '</table></div><br/>';
          } 
      }

  2. #2
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Bonjour,

    tu peux utilisé la clause ORDER BY avec le paramètre (ASC ou DESC) pour ascendant et descendant.

    Exemple pour trier les images par l'ID en partant du bas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requeteselect = 'SELECT id,lienimage FROM images WHERE ID_BIEN=\''.$ID_BIEN.'\' ORDER BY ID DESC';

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    c'est une solution mais pas exactement ce que je cherche.
    Ce que je cherche c'est comment construire l'apparition des numéros d'images (1,2,3,4) sur la page pour pourvoir choisir et changer l'ordre d'affichage

  4. #4
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Je ne sais pas si j'ai bien compris, mais pour pourvoir changer l'ordre de tri il te faudra un champs pour ça.

    Pour la modification de l'ordre d'affiche il te faudra aussi une fonction qui te permettra de mettre a jour les positions des images après une modification (si on passe la dernière en première, la première passe en deuxième )

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    oui oui c'est ça, mais je ne sais pas faire

Discussions similaires

  1. [XPATH 1.0] Définir l'ordre d'affichage d'une requête
    Par LhIaScZkTer dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 17/01/2013, 14h26
  2. Réponses: 3
    Dernier message: 27/06/2011, 20h32
  3. Réponses: 2
    Dernier message: 24/07/2006, 16h23
  4. PB affichage d'image avec IE
    Par arturo dans le forum Modules
    Réponses: 6
    Dernier message: 25/09/2003, 17h28
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo