Ce que je n'arrive pas à faire c'est réussir à extraire l'image
commençant pas 1 pour la zone 1 de ma page, ou 4 pour la zone 4 de ma
page, donc j'ai fais des explode, mais là je bloc je sais pas comment
faire ???
Mon code PHP :
// recupération des éléments de la bdd ---------------------------------------------------------------------------
$requete_recuperation_image ='SELECT fond FROM '.$base_de_donnees.'.book limit 1;'; $insertion mysql_query($requete_recuperation_image) or die('La requete de récupération d\'image a échouée: '.mysql_errno().' '.mysql_error());
while ($ligne = mysql_fetch_array($insertion)) // faire un tableau de ce qu'on vient de récupérer de la table
{
natsort($ligne);
//ici tu recupere toutes les url de la base -----------------------------------------------------------------------
echo ' ici toutes les url sur un champ | ';
print_r($ligne);
echo '
';
//ici tu cree un tableau ou tu liste tes url ----------------------------------------------------------------------
$recuperation_nom_image = explode('|',$ligne['fond']); // tu explode la ligne qui t'interesse
echo ' ici les url | ';
print_r($recuperation_nom_image);
echo '
';
$nom_image_recuperee = explode('/',$recuperation_nom_image[0]);
echo ' tu recupere ce qui t interesse / ';
print_r($nom_image_recuperee);
echo '
';
// et t'as plus qu'a faire ta redirection...
//echo '';
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 8 févr. 2009 à 21:51
Salut,
Pour commencer, stocker toutes tes url dans un seul champ séparées par un pipe est une mauvaise idée. Tu devrais te faire une table spécialement pour ceci. Suivant ce modèle tu peux récupérer les url sans avoir besoin d'un explode (merci les jointures en SQL).
En ce qui concerne la partie qui t'intéresse :
Récupérer le nom du fichier (virer tout le chemin qui est devant) à l'aide de basename(). Exemple :
$fichier = '../toto/titi/chose.jpg';
echo basename($fichier); // affiche la chaine 'chose.jpg'.
Une chaine caractère est plus ou moins considérés comme un tableau de caractère (c'est le bordel en php). L'exemple suivant affiche la première lettre de la chaine :
echo $fichier[0];
allellla
Messages postés19Date d'inscriptionlundi 8 décembre 2008StatutMembreDernière intervention15 avril 2011 9 févr. 2009 à 16:32
Bonjour,
Merci pour la réponse, en fait il y a tellement d'image à télécharger qu'il serait ingérable de créer un champs voir une table pour chaque image uploader.
sinon je vais me pencher sur le basename que je ne connaissait pas, merci pour l'info
sinon je vais faire un explode avec le "|" (et supprimer le 2ème explode) et ensuite faire une conditionnelle avec un if, du style si le 23ème caractère est strictement égal au chiffre voulu (selon la zone qui va de 1 à 5), affiche moi ce que tu as récupérer !!! dans la théorie j'ai l'impression que ça pourrait marché donc j'essaierai et donnerai des nouvelles
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 9 févr. 2009 à 19:40
Salut,
"en fait il y a tellement d'image à télécharger qu'il serait ingérable
de créer un champs voir une table pour chaque image uploader."
Tu es dans l'erreur, c'est bien plus propre et efficace de créer une entrée par image dans une table spécifique que d'aller coller d'immenses chaînes de caractères dans un champ que tu va ensuite traiter a la main. Les bases de données sont conçues spécialement pour stocker des donnés, même si c'est en grand nombre.
Actuellement j'ai des tables contenant quelques milliers ou dizaines de milliers d'entrées, ce n'est pas grand chose.
allellla
Messages postés19Date d'inscriptionlundi 8 décembre 2008StatutMembreDernière intervention15 avril 2011 12 févr. 2009 à 15:51
Bonjour,
C'est vrai que je n'y connais pas gd chose, je me suis fait conseiller par mon professeur, peut être que dans un an j'aurais plus de recul pour savoir quelle méthode pour quel cas utilisé.
Pour l'instant j'écoute tout les conseils que l'on me donne, et essai de faire avec mes connaissance lol.