Images et MySQL

Mammouth du PHP | 1776 Messages

27 nov. 2006, 18:19

Tu es vraiment compliqué, tu demandes pour un problème qu'il affiche array(), et d'un seul coup tu pars sur la requête SQL. Pas auprès de moi que tu retrouveras de l'aide.

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 18:27

Tu es vraiment compliqué, tu demandes pour un problème qu'il affiche array(), et d'un seul coup tu pars sur la requête SQL. Pas auprès de moi que tu retrouveras de l'aide.
Tu me dit trouve de quelle $variable tu as besoins pour affiché le nom ok c'étais bien ta question ?
Moi je te dit cette $variable récupére le nom à un endroit du script donc tout simplement je me dit que si une $variable fonctionne à un endroit du script je ne voie pas pourquoi elle ne fonctionne pas plus haut.
Je suis peut-être compliqué mais moi ça me semble logique comme question
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 19:04

En clair, tu continues à appliquer ce que tu prêches dans ta signature : bon courage. Je te l'ai dit, ça ne fonctionne pas comme ça.

Une variable ne récupère rien du tout, elle a la valeur que tu lui assignes et s'il s'agit d'une super-globale, elle a la valeur qui lui est assignée par le champ correspondant formulaire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

27 nov. 2006, 19:21

Mon incroyable flair doublé de mon incomparable perspicacité
me laissent penser que ce sujet s'enlise quelque peu... :roll:

Plutôt que de reprendre chacun des arguments fournis
dans cette (trop) longue succession de messages,
je préfère revenir à la source de ce sujet et procéder par étapes.

On a tous intérêt à ce que ce sujet s'habille vite d'un joli petit [Résolu]...
  • Comment stocker des images avec une base de données ? :?:

    Tout d'abord, comme te l'a judicieusement conseillé Ajoloca,
    il vaut mieux stocker les fichiers images dans un répertoire spécifique
    et n'enregistrer dans la base que les éléments premettant d'utiliser cette image.

    Il est certes possible de stocker l'image elle-même dans la base, en données binaires,
    mais l'avantage de ce choix - que je juge catastrophique - m'est toujours inconnu
    tandis que les inconvénients sont évidents : taille de la base, pour n'en citer qu'un.
  • Comment enregistrer les identifiants des images dans la base de données ? :?:

    Il te faut déjà recenser ces identifiants.
    Là, c'est Cyrano qui t'a donné des indications.

    Voici quelques données qui me paraissent essentielles :
    • Le nom du fichier (avec son extension) est bien évidemment indispensable ;
    • Les dimensions de l'image (height et width) peuvent être utiles pour gérer l'affichage.
    • si toutes tes images ne sont pas stockées dans le même répertoire sur ton serveur,
      il te faudra aussi prévoir d'enregistrer le chemin (= nom du dossier).
    • Une légende que tu souhaiterais afficher près de chacune de tes images ?
      La mention de l'auteur (photographe, graphiste, etc.) ? Toute autre info ?
    • etc.
    Et en énumérant toutes ces informations, tu es en train de définir la structure de ta table.
    Tout simplement ! C'est pas beau, ça ?
Pour la suite, je suppose que tu sais utiliser les requêtes SQL : SELECT et INSERT.
Celles-ci seront suffisantes pour enregistrer et lire les infos concernant tes images.

Puis, il ne te restera plus qu'à concevoir une page dynamique (un masque)
qui affichera les images à partir des infos prélevées dans la base,
avec un code du genre :
echo "<img src='".$img_nom."' style='width:".$largeur."px;height:".$hauteur."px' alt='".$legende."' />";
Et ça, ça fait partie des bases les plus élémentaires du PHP. ;)

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 19:35

Mon incroyable flair doublé de mon incomparable perspicacité
me laissent penser que ce sujet s'enlise quelque peu... :roll:

Plutôt que de reprendre chacun des arguments fournis
dans cette (trop) longue succession de messages,
je préfère revenir à la source de ce sujet et procéder par étapes.

On a tous intérêt à ce que ce sujet s'habille vite d'un joli petit [Résolu]...
  • Comment stocker des images avec une base de données ? :?:

    Tout d'abord, comme te l'a judicieusement conseillé Ajoloca,
    il vaut mieux stocker les fichiers images dans un répertoire spécifique
    et n'enregistrer dans la base que les éléments premettant d'utiliser cette image.

    Il est certes possible de stocker l'image elle-même dans la base, en données binaires,
    mais l'avantage de ce choix - que je juge catastrophique - m'est toujours inconnu
    tandis que les inconvénients sont évidents : taille de la base, pour n'en citer qu'un.
  • Comment enregistrer les identifiants des images dans la base de données ? :?:

    Il te faut déjà recenser ces identifiants.
    Là, c'est Cyrano qui t'a donné des indications.

    Voici quelques données qui me paraissent essentielles :
    • Le nom du fichier (avec son extension) est bien évidemment indispensable ;
    • Les dimensions de l'image (height et width) peuvent être utiles pour gérer l'affichage.
    • si toutes tes images ne sont pas stockées dans le même répertoire sur ton serveur,
      il te faudra aussi prévoir d'enregistrer le chemin (= nom du dossier).
    • Une légende que tu souhaiterais afficher près de chacune de tes images ?
      La mention de l'auteur (photographe, graphiste, etc.) ? Toute autre info ?
    • etc.
    Et en énumérant toutes ces informations, tu es en train de définir la structure de ta table.
    Tout simplement ! C'est pas beau, ça ?
Pour la suite, je suppose que tu sais utiliser les requêtes SQL : SELECT et INSERT.
Celles-ci seront suffisantes pour enregistrer et lire les infos concernant tes images.

Puis, il ne te restera plus qu'à concevoir une page dynamique (un masque)
qui affichera les images à partir des infos prélevées dans la base,
avec un code du genre :
echo "<img src='".$img_nom."' style='width:".$largeur."px;height:".$hauteur."px' alt='".$legende."' />";
Et ça, ça fait partie des bases les plus élémentaires du PHP. ;)
Bon alors mon formulaire.
1 - Il enregistre correctement mes images dans un dossier donc ça OK
2 - Il enregistre correctement le chemin dans ma TABLE donc ça OK
3 - Il ne lui reste que à prendre ce zarabotak.com de nom de fichier
e c'est là et uniquement là que le script ne fonctionne pas.

Alors moi dans ma grande ignorance je n'arrive pas à comprendre pourquoi il m'affichier n° 1 photo1.jpg bien télécharger
et pour avoir le nom de l'image donc ici photo1.jpg qui provient de la $variable
$filenamehttp
cela fonctionne
Alors pourquoi quand je reprend la même^$variable pour ma requette sql il ne m'indique pas le nom donc photo1.jpg

Voilà ma simple question.

Merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 19:51

Bon je vais en étonner mais voilà j'ai trouvé :lol:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 19:54

Bon je vais en étonner mais voilà j'ai trouvé :lol:
On en attendait pas moins de ta part ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 20:04

Bon je vais en étonner mais voilà j'ai trouvé :lol:
On en attendait pas moins de ta part ;)
Enfin presque :oops: il m'indique bien le nom
il me fait bien 5 insertion mais toujours avec le même nom :cry:
J'ai juste rajouter ceci pour le faire fonctionner
$tableau = $_FILES['userfile']['name'];
foreach ($tableau as $cle=>$nom)
J'ai ceci comme erreur
Warning: Invalid argument supplied for foreach() in E:\wamp\www\mabrique\clients\envoie.php on line 12
je cherche pourquoi !
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 20:06

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 20:16

Et oui et c'est là que je plante je comprend rien
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 20:25

Ça m'avance drôlement ça : il y a une chose qu'il serait grand temps que tu réalises, c'est que la solution se trouve au départ dans la bonne formulation d'une question : à une question mal formulée, tu n'obtiendras aucune réponse satisfaisante. :-k

En d'autres termes : qu'est-ce que tu ne comprends pas ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 20:31

Ça m'avance drôlement ça : il y a une chose qu'il serait grand temps que tu réalises, c'est que la solution se trouve au départ dans la bonne formulation d'une question : à une question mal formulée, tu n'obtiendras aucune réponse satisfaisante. :-k

En d'autres termes : qu'est-ce que tu ne comprends pas ?
J'avance
$tableau = $_FILES['userfile']['name'];
foreach ($tableau as $key=>$nom)
//$nom = array(0,1,2,3,4,5);
$nom['userfile'] = array();
$nom['error'] = array();
$nom['userfile']['name'] = array(); <--- j'ai une erreur ici :Fatal error: Cannot use string offset as an array in ----->
$nom['userfile']['type'] = array();
$nom['userfile']['tmp_name'] = array();
$nom['error']['size'] = array();
enfin je crois :!:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 20:38

Reprends la structure du tableau $_FILES tel qu'il est envoyé par le formulaire : essaye de me construire le même tableau en PHP avec des valeurs quelconques : mettons que tu me crée un tableau contenant les informations pour deux images. Si tu arrives à comprendre ça, alors le reste ira tout seul, mais tant que tu n'auras pas assimilé le fonctionnement des tableaux, tu resteras paumé.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2291 Messages

27 nov. 2006, 21:20

Reprends la structure du tableau $_FILES tel qu'il est envoyé par le formulaire : essaye de me construire le même tableau en PHP avec des valeurs quelconques : mettons que tu me crée un tableau contenant les informations pour deux images. Si tu arrives à comprendre ça, alors le reste ira tout seul, mais tant que tu n'auras pas assimilé le fonctionnement des tableaux, tu resteras paumé.
Voilà je pense avoir comprid
$tableau = $_FILES['userfile']['name'];
foreach ($tableau as $key=>$nom)

$nom = array();
$nom['name']    = array();
$nom['userfile'] = array();

$nom['userfile']['name']     = array();
$nom['userfile']['type']     = array();
$nom['userfile']['tmp_name'] = array();
$nom['userfile']['size']     = array();
je pense l'avoir créer correctement a partir de ceci

Code : Tout sélectionner

Array ( [userfile] => Array ( [name] => Array ( [0] => 5.gif [1] => 3.gif ) [type] => Array ( [0] => image/gif [1] => image/gif ) [tmp_name] => Array ( [0] => E:/wamp/tmp\php36A.tmp [1] => E:/wamp/tmp\php36B.tmp ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 2463 [1] => 2601 ) ) )
Ceci dit j'ai encore un Array
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

27 nov. 2006, 21:25

Si tu essayes de faire :
echo($nom['userfile']['name']);
Alors effectivement, ça va afficher "Array" : mais comprends-tu pourquoi ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: