Php-Mysql:gerer un module admin

Php-Mysql:gerer un module admin - PHP - Programmation

Marsh Posté le 31-10-2006 à 17:49:45    

Bonjour,
 
Voilà j'ai un un site qui avec un module administration (php/mysql)
mon souci est le suivant:
j'aimerai savoir comment on pourrais faire pour permettre aux utilisateurs de mettre leur propre logo .
j'ai déjà réussi à creer deux tables ( utilisateurs :id,nom,pass et une autre ou je mets  les logos)
je sais afficher les logos pour un client mais pas pour les autres.
 
j'ai aussi pensé au checkbox dans admin.
 
Help

Reply

Marsh Posté le 31-10-2006 à 17:49:45   

Reply

Marsh Posté le 31-10-2006 à 19:18:33    

utilisateurs : id | nom | pass | id_logo
logos : id_logo | url_logo
 

Code :
  1. $query = "SELECT a.`nom`, a.`pass`, b.`url_logo`
  2. FROM `utilisateurs` a
  3. LEFT JOIN `logos` b ON a.`id_logo`=b.`id_logo`
  4. WHERE a.`id` = ".$_GET['id'];
  5. mysql_query($query);

Reply

Marsh Posté le 01-11-2006 à 14:07:11    

C'est pas très clair tout ça...

Reply

Marsh Posté le 02-11-2006 à 10:47:19    

:) Merci ..
je vais essayer d'être un peu clair donc:
il y a un site avec une partie adminstration que je gère.
A partir du module admin ,je crée un compte client +pass et son propre logo s'il le désire .( unput =file..)
ce logo client ne va s'afficher que dans la partie de ce client lorsqu'il va se logger et le mien dans le reste du site.
Le problème c'est que le logo d'un client s'affiche pour tous les autres puisque je fais un 'include' du script.
 
Ce que je voudrais donc faire c'est pouvoir afficher le logo par rapport au nom du client.Par ex dans la liste des clients que j'aurai crée , cocher un case à cocher pour que chaque client affiche son propre logo et non le mien ou celui d'un autre.
 

Code :
  1. voilà la structure de mes tables:
  2. customer:
  3. CREATE TABLE `customer_access` (
  4.   `id_log` int(4) NOT NULL auto_increment,
  5.   `customer` varchar(6) default '',
  6.   `pass` varchar(20) default '',
  7.   `name` varchar(40) default '',
  8.   PRIMARY KEY  (`id_log`)
  9. ) ;
  10. binary_data:
  11. CREATE TABLE `binary_data` (
  12.   `id` int(4) NOT NULL auto_increment,
  13.   `bin_data` longblob,
  14.   `filename` varchar(50) default NULL,
  15.   `filesize` varchar(50) default NULL,
  16.   `filetype` varchar(50) default NULL,
  17.   `id_log` int(11) NOT NULL default '0',
  18.   PRIMARY KEY  (`id`)
  19. ) ;


 
Merci à tous de votre aide


Message édité par shakalab le 03-11-2006 à 10:16:57
Reply

Marsh Posté le 02-11-2006 à 15:27:31    

C'est à toi de gérer le logo que tu veux afficher en fonction de la page :spamafote:

Reply

Marsh Posté le 02-11-2006 à 15:54:49    

:bounce: oui biensur mais si je savais comment on faisait je n'aurai pas commencé un topic,désolé.  
 
un ex pour illustrer mon explication:
 
j'ai 100 clients auquels j'ai déjà donné un nom et un mot de passe
parmi ces 100 clients il y en 20 qui souhaitent que je rajoute leur logo sur leur page d'accueil  apres qu'ils aient fait  
leur logging et afin de pouvoir l'imprimer en même temps que les données qu'ils ont entrés.  
les autres gardent  mon logo.
 
ce que je ne sais pas faire c'est lier un nom à un login dans une table de plus de 100 clients.
 tel client a demandé son logo..il se logue et son logo s'affiche sur sa page ..cela semble simple mais  c'est un vrai casse tête.
 
Merci à tous

Reply

Marsh Posté le 02-11-2006 à 19:00:44    

Donc le code du bouzin n'est pas de toi :??:
 
Le id_log dans binary_data est bien le même que dans customer_access :??:
 
Si oui, suffit de faire une petite jointure pour récupérer ton logo visiblement stocké directement dans la base :??:
 
Mais après faut l'afficher que là où tu veux et c'est ça que je comprends pas bien, tout comme je comprends pas bien en général ce que tu fais, ce que tu as et ce que font les "clients" :spamafote:

Reply

Marsh Posté le 03-11-2006 à 10:16:33    

:D je ne suis pas un programmeur php pro mais seulement en train d'apprendre petit à petit.
je sais inserer et afficher une image à partir de 2 tables (jointure) pour un client MAIS mon problème c'est faire de même pour les autres avec les fameuses boucles.
quand je stocke plusieurs clients et logos c'est toujours la premiere ligne qui s'affiche  :fou:  
 
voici les differents scripts utilisés:
 
page d'accueil des clients:
 

Code :
  1. <?
  2. include('logged.php');
  3. ?>
  4. <?
  5. if (trim($language_code)=="" )
  6. {
  7.  $language_code="en";
  8. }
  9. else
  10. require('./lang/'.$language_code.'_track_trace.php');
  11. require(_MY_INCLUDE.'scripts/mysql_setup.php');
  12. require(_MY_INCLUDE.'scripts/sqlconnect_src.php');
  13. ?>
  14. <body background="<? print $company_background_logo; ?>">
  15. <A class="topmenu" href="track_trace.php">Track & Trace</a>
  16. &nbsp;|&nbsp;<A class="topmenu"  href="logout.php"><? print _LNG_LOGOUT_LABEL; ?></a>
  17. <?
  18.          require('./print_logo.php');
  19. ?>
  20. <br>
  21. <br>
  22. <br>
  23. <br>
  24. <?
  25. require(_MY_INCLUDE.'scripts/print_bottom.php');
  26. ?>
  27. <?
  28. mysql_close($link);
  29. ?>
  30. </body>
  31. </html>


 
 
le lien d'impression du logo:
 

Code :
  1. <table width="95%" align=center cellpadding=0 cellspacing=0 border=0>
  2. <tr>
  3. <td align=left valign=bottom>
  4. <?
  5. if ($company_motto_file!="" )
  6. {
  7. print "<img src=\"$company_motto_file\">\n";
  8. }
  9. ?>
  10. <td align=right valign=bottom>
  11. <?
  12. mysql_connect("localhost","","x2*f$.325" );
  13. mysql_select_db("vxr2" );
  14. if ($data=="" )
  15. {
  16.      print "<img src=\"get.php?id=id\">\n";
  17. }
  18. else
  19. {
  20.   print "<img src=\"$company_logo\">\n";
  21. }
  22. ?>
  23. <tr><td align=center colspan=2><hr size="3" color="<? print $company_color;?>">
  24. </table>


 
 
et enfin l'affichage du logo avec les differents tests de jointure :

Code :
  1. <?php
  2. // by Florian Dittmer <dittmer@gmx.net>
  3. if($id)
  4. {
  5.     @MYSQL_CONNECT("localhost","","x2*f$.325" );
  6.     @mysql_select_db("vxr2" );
  7.   $query = "select bin_data,filetype from binary_data2 where id=$id order by id";
  8. //  $query = "select bin_data,filetype from binary_data2 where id=".$_GET['id'],"0" order by id";
  9. //  $query = "select bin_data from customer_access left join binary_data2 on //customer_access.id_log=binary_data2.id_log where customer_access.id=$id";
  10. //  $query = "select customer_access.id from customer_access left join binary_data2 on //customer_access.id=binary_data2.id where binary_data2.id=customer_access.id";
  11.     $result =@MYSQL_QUERY($query);
  12.     $data =@MYSQL_RESULT($result,0,"bin_data" );
  13.     $type =@MYSQL_RESULT($result,0,"filetype" );
  14.     Header( "Content-type: $type" );
  15.     echo $data;
  16.    
  17. };
  18. ?>


 
Merci à vous


Message édité par shakalab le 03-11-2006 à 10:23:44
Reply

Marsh Posté le 03-11-2006 à 15:49:14    

Ton $id il vient d'où :??:

Reply

Marsh Posté le 03-11-2006 à 16:19:45    

:whistle:  bon c'est un reste de script qui traine.
la ligne 4,5 et 21 sont à ignorer.
++

Reply

Marsh Posté le 03-11-2006 à 16:19:45   

Reply

Marsh Posté le 03-11-2006 à 16:29:35    

Ca change pas que ton $id de la ligne 9 (la requête) il vient d'où :??: C'est celui là qu'il faut adapté selon le client ;)

Reply

Marsh Posté le 04-11-2006 à 02:09:41    

:) c'est l'id qui vient de la table binary_data2 et qui contient le blob.
 
si on fait where id=id le premier logo s'affiche.
 
bye

Reply

Marsh Posté le 04-11-2006 à 02:45:27    

:pfff:  
Dans ton code php, la variable $id contient quoi :??: C'est cette variable qui te permet de choisir le tuple que tu veux dans la table. D'ailleur le order by n'a aucun sens si id sert bien à identifier une ligne...
 
Et where id=id ça vaut 1 c'est normal que ça marche, ça te renvoit toutes les lignes en effet [:itm]
 
Sauf qu'il faudrait que tu choissises celle que tu veux plutot que d'utiliser la première qui arrive [:itm]

Reply

Marsh Posté le 07-11-2006 à 11:59:23    

Merci de ton aide..
 
voici ce que j'ai dans mes tables:
 
table clients:
    id_log --customer--pass--name
    -------------------------------
     21        bob         1224    boil
 
table binary_data2:
     id--bin_data--filename--filesize--filetype--id_log
    -----------------------------------------------
     21        blob   tarif.jpg   31280    img/jpg    21
 
en faisant un join des 2 tables sur l'id_log je sais afficher le premier logo mais ça bloque  quand il faut passer au suivant.
 
Merci
 
 

Reply

Marsh Posté le 07-11-2006 à 16:22:30    

En faisant une jointure sur id_log, tu récupères normalement les couples de tuples ayant le même id_log, après faut choisir celui qui t'intéresse en faisant un where l'id qui t'intéresse ;)
 
Tu ne dois pas avoir plusieurs logo pour un même id, du moins je pense que c'est ce que tu veux :)

Reply

Marsh Posté le 09-11-2006 à 17:01:15    

:)  biensur ..cela je l'avais dejà fais mais je ne connais pas le bon id à l'avance .
ce que je ne sais pas ç'est qu'elle boucle je dois employer pour ça.Là est le problème.
j'ai deux tables :toutes deux ont un id_log identique.je fais un join et récupere le premier record et ensuite..
 
Merci

Reply

Marsh Posté le 14-11-2006 à 15:31:56    

Salut à tous...
y a t il encore une personne dans ce forum qui pourrait me venir en aide?
 
Merciiiiiiiiiiiiiiiiiiiiii.
 

Reply

Marsh Posté le 16-11-2006 à 02:39:39    

Je comprends plus ton problème :spamafote:

Reply

Marsh Posté le 30-11-2006 à 14:50:14    

:hello:  salut à tous,
 
je continue à chercher une solution ailleurs et dès que je l'ai trouvé je la donne  
sur ce forum qui m'a bien aidé à avancer .Merci surtout à toi leflos5.
 
A ++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed