Aide à la création d'une console d'administration

Petit nouveau ! | 4 Messages

04 juil. 2006, 16:43

Bonjour à tous

aller je viens une fois de plus susciter votre aide en matiere de PHP/MySQL.
Je voudrais faire une console d'administration pour le site de la SCI d'un pote.

C'est surement très simple mais comme je n'y connais pas grand chose... je tatonne ^^

J'ai une base tout simple avec 2 tables :

Locations

Code : Tout sélectionner

CREATE TABLE `locations` ( `loc_id` int(11) NOT NULL auto_increment, `loc_ref` varchar(10) NOT NULL default '0', `loc_type` varchar(50) NOT NULL default '', `loc_surface` tinyint(4) NOT NULL default '0', `loc_loyer` smallint(4) NOT NULL default '0', `loc_charges` tinyint(4) NOT NULL default '0', `loc_lieu` varchar(128) NOT NULL default '', `loc_dispo` date NOT NULL default '0000-00-00', `loc_image` varchar(100) NOT NULL default '', `loc_details` text NOT NULL, KEY `loc_id` (`loc_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Ventes

Code : Tout sélectionner

CREATE TABLE `ventes` ( `ventes_id` int(11) NOT NULL auto_increment, `ventes_ref` varchar(10) NOT NULL default '0', `ventes_type` varchar(50) NOT NULL default '', `ventes_surface` tinyint(4) NOT NULL default '0', `ventes_prix` int(20) NOT NULL default '0', `ventes_charges` tinyint(4) NOT NULL default '0', `ventes_lieu` varchar(128) NOT NULL default '', `ventes_dispo` date NOT NULL default '0000-00-00', `ventes_image_01` varchar(100) NOT NULL default '', `ventes_image_02` varchar(100) NOT NULL default '', `ventes_image_03` varchar(100) NOT NULL default '', `ventes_image_04` varchar(100) NOT NULL default '', `ventes_details` text NOT NULL, KEY `ventes_id` (`ventes_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Ce que je voudrais c'est faire une console qui permette de gérer tout ca
mais surtout avec la possibilité d'uploader des photos avec une option "parcourir"
Mais la je suis deja perdu

Je sais que c'est faisable, ca oui, mais est ce que c'est compliqué ?

Merci de votre aide

wuub

Mammouth du PHP | 684 Messages

05 juil. 2006, 18:59

Salut.

Si c'est juste pour faire une petite page php qui rempli tes deux tables, tu peux le faire avec une ou deux pages PHP. Par contre, si tu veux commencer a gerer des comptes utilisateurs, faire des fonctionnalites supplementaires par la suite, tu va avoir beaucoup plus de boulot.

Generalement, on a dans une console d'administration la possibilite d'ajoute, de supprimer et de mettre a jour les donnees dans la bases. Pour tes deux tables sa implique 3 actions chacunes. Tu vois tout de suite que tu peux faire encore plus compliquer.

L'estimation du travail n'est jamais facile a determiner surtout quand on a pas un reel cahier des charges.
J'espere ne pas t'avoir casse le morale, c'est tout de meme realisable comme petit projet.
Bye.
Zigz4g

Petit nouveau ! | 4 Messages

07 juil. 2006, 10:44

Hello et merci de ta reponse !
Je ne me suis pas découragé ^^
Du coup je suis parvenu à faire cela !
Je ne parviens ceci dit pas à faire ensorte que l'utilisateur puisse faire un upload du fichier et que celui ci soit mis dans la valeur de loc_image.
Autre chose idiote, je ne sais pas comment vérifier que les champs sont bien remplis ...

C'est pas grand chose considerant que je viens de m'y mettre seulement et que je n'y connais pas grand chose...

J'ai plus de cheveux a force de me les arracher ^^

Code : Tout sélectionner

CREATE TABLE `locations` ( `loc_id` int(11) NOT NULL auto_increment, `loc_ref` varchar(10) NOT NULL default '0', `loc_type` varchar(50) NOT NULL default '', `loc_surface` tinyint(4) NOT NULL default '0', `loc_loggia` varchar(50) default NULL, `loc_loyer` smallint(4) NOT NULL default '0', `loc_charges` int(5) NOT NULL default '0', `loc_frais` smallint(10) NOT NULL default '0', `loc_lieu` varchar(128) NOT NULL default '', `loc_dispo` date NOT NULL default '0000-00-00', `loc_image` varchar(100) NOT NULL default '', `loc_details` text NOT NULL, PRIMARY KEY (`loc_id`), KEY `loc_id` (`loc_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Et le code

Code : Tout sélectionner

<?php require_once 'secure/dbconnect.php'; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <style> body, table { background-color: #000000; color: #FFFFFF; font: normal normal 12px arial; } fieldset { padding:5px; } .white { font: normal bold 12px arial; color:white; } .red { font: normal bold 12px arial; color:red; } INPUT.button { cursor:hand; font:normal bold 11px arial; color:#FFFFFF; border:1; border-style:solid; border-color:#F24343; background-color:gray; } INPUT.text { font:normal bold 12px arial; color:#000000; border:1; border-style:solid; border-color:#c0c0c0; background-color:white; width:200; } .frame { border-collapse: collapse; border-left: 1px solid #000000; border-right-color: #000000; border-right-style: solid; border-right-width: 1px; border-top: 1px solid #FFFFFF; border-bottom-style: solid; border-bottom-width: 0px; border-bottom-color: #FFFFFF; } </style> </head> <body bgcolor=black text=white> <table cellpadding=0 cellspacing=0 width=700 height=40 border=1 align=center class=frame> <tr> <td align=center bgcolor=#660000><b>Console d'administration</b></td> </tr> </table> <table cellpadding=0 cellspacing=0 width=700 height=40 border=1 align=center class=frame> <tr> <td bgcolor=#000000> <? if(isset($_POST['send'])) { if($_POST['send'] == 'new') { $sql = "INSERT INTO locations ( loc_ref ,loc_type ,loc_surface ,loc_loggia ,loc_loyer ,loc_charges ,loc_frais ,loc_lieu ,loc_dispo ,loc_image ,loc_details ) VALUES ( '".$_POST['loc_ref']."' ,'".$_POST['loc_type']."' ,'".$_POST['loc_surface']."' ,'".$_POST['loc_loggia']."' ,'".$_POST['loc_loyer']."' ,'".$_POST['loc_charges']."' ,'".$_POST['loc_frais']."' ,'".$_POST['loc_lieu']."' ,'".$_POST['loc_dispo']."' ,'".$_POST['loc_image']."' ,'".$_POST['loc_details']."' )"; } elseif($_POST['send'] == 'update') { $sql = ' UPDATE locations SET loc_ref = "' .$_POST['loc_ref'].'" , loc_type = "' .$_POST['loc_type'].'" , loc_surface = "' .$_POST['loc_surface'].'" , loc_loggia = "' .$_POST['loc_loggia'].'" , loc_loyer = "' .$_POST['loc_loyer'].'" , loc_charges = "' .$_POST['loc_charges'].'" , loc_frais = "' .$_POST['loc_frais'].'" , loc_lieu = "' .$_POST['loc_lieu'].'" , loc_dispo = "' .$_POST['loc_dispo'].'" , loc_image = "' .$_POST['loc_image'].'" , loc_details = "' .$_POST['loc_details'].'" WHERE loc_id = "' .$_POST['loc_id'].'"'; } mysql_query($sql,$db_link) or die(mysql_error()); } if(isset($_GET['delete']) and is_numeric($_GET['delete'])) { mysql_query("DELETE FROM locations WHERE loc_id = \"".$_GET['delete']."\"",$db_link); header("location: loc_admin.php"); } if(isset($_GET['edit']) and is_numeric($_GET['edit'])) { $Id = $_GET['edit'] ; $sql = 'SELECT * FROM locations WHERE loc_id = "'.$Id.'" LIMIT 1' ; $rc = mysql_query($sql,$db_link); while($loc_data = mysql_fetch_array($rc)) { // Modification d'une location print ' <fieldset> <legend>Modification d\'une location référence : '.$loc_data['loc_ref'].'</legend> <form action="loc_admin.php" method="post" name="loc_edit"> <table> <tr><td width=100>Référence </td><td> &laquo; <input class="text" type="text" name="loc_ref" size="10" value="'.htmlentities($loc_data['loc_ref']).'"> &raquo; Code de référence correspondant à votre logiciel de gestion</td></tr> <tr><td>Localisation </td><td> &laquo; <input class="text" type="text" name="loc_lieu" size="10" value="'.htmlentities($loc_data['loc_lieu']).'"> &raquo; Emplacement géographique de la location</td></tr> <tr><td>Type </td><td> &laquo; <input class="text" type="text" name="loc_type" size="10" value="'.htmlentities($loc_data['loc_type']).'"> &raquo; Type de location : Studio, T1, T2, T3, T4, T5, Villa, Chateau, etc.)</td></tr> <tr><td>Surface </td><td> &laquo; <input class="text" type="text" name="loc_surface"size="10" value="'.htmlentities($loc_data['loc_surface']).'"> &raquo; Surface habitable de la location en M²</td></tr> <tr><td>Loggia/Terrasse </td><td> &laquo; <input class="text" type="text" name="loc_loggia" size="10" value="'.htmlentities($loc_data['loc_loggia']).'"> &raquo; Informations sur les loggias et terrasses</td></tr> <tr><td>Loyer </td><td> &laquo; <input class="text" type="text" name="loc_loyer" size="10" value="'.htmlentities($loc_data['loc_loyer']).'"> &raquo; Loyer mensuel hors charges en euros</td></tr> <tr><td>Charges </td><td> &laquo; <input class="text" type="text" name="loc_charges"size="10" value="'.htmlentities($loc_data['loc_charges']).'"> &raquo; Charges mensuelles en euros</td></tr> <tr><td>Frais d\'agence </td><td> &laquo; <input class="text" type="text" name="loc_frais" size="10" value="'.htmlentities($loc_data['loc_frais']).'"> &raquo; Frais d\'agence en euros</td></tr> <tr><td>Disponiblité </td><td> &laquo; <input class="text" type="text" name="loc_dispo" size="10" value="'.htmlentities($loc_data['loc_dispo']).'"> &raquo; Date de disposiniblité au format AAAA/MM/JJ</td></tr> <tr><td>Details </td><td> &laquo; <input class="text" type="text" name="loc_details"size="10" value="'.htmlentities($loc_data['loc_details']).'"> &raquo; Commentaires sur l\'offre (160 caractères)</td></tr> <tr><td>Image </td><td> &laquo; <input class="text" type="text" name="loc_image" size="10" value="'.htmlentities($loc_data['loc_image']).'"> &raquo; Photo illustrative de l\'offre</td></tr> <tr> <td><input class="button" type="reset" value="Annuler" onclick="javascript:history.go(-1)"></td> <td><input class="button" type="submit" value="Valider"></td> </tr> <tr> <td><input type="hidden" name="loc_id" value="'.$_GET['edit'].'"></td> <td><input type="hidden" name="send" value="update"></td> </tr> </table> </fieldset> </form> '; } } else { //Ajout des locations print ' <fieldset> <legend>Ajoût d\'une location&nbsp;</legend> <form action="loc_admin.php" method="post" name="loc_add"> <i>* Remplissez les champs de votre choix puis cliquer sur "Valider"</i> <table> <tr><td width=100>Référence </td><td> &laquo; <input class="text" type="text" name="loc_ref" size="10"> &raquo; Code de référence correspondant à votre logiciel de gestion</td></tr> <tr><td>Localisation </td><td> &laquo; <input class="text" type="text" name="loc_lieu" size="10"> &raquo; Emplacement géographique de la location</td></tr> <tr><td>Type </td><td> &laquo; <input class="text" type="text" name="loc_type" size="10"> &raquo; Type de location : Studio, T1, T2, T3, T4, T5, Villa, Chateau, etc.)</td></tr> <tr><td>Surface </td><td> &laquo; <input class="text" type="text" name="loc_surface" size="10"> &raquo; Surface habitable de la location en M²</td></tr> <tr><td>Loggia </td><td> &laquo; <input class="text" type="text" name="loc_loggia" size="10"> &raquo; Informations sur les loggias et terrasses</td></tr> <tr><td>Loyer </td><td> &laquo; <input class="text" type="text" name="loc_loyer" size="10"> &raquo; Loyer mensuel hors charges en euros</td></tr> <tr><td>Charges </td><td> &laquo; <input class="text" type="text" name="loc_charges" size="10"> &raquo; Charges mensuelles en euros</td></tr> <tr><td>Frais d\'agence </td><td> &laquo; <input class="text" type="text" name="loc_frais" size="10"> &raquo; Frais d\'agence en euros</td></tr> <tr><td>Disponibilité </td><td> &laquo; <input class="text" type="text" name="loc_dispo" size="10"> &raquo; Date de disposiniblité au format AAAA/MM/JJ</td></tr> <tr><td>Description </td><td> &laquo; <input class="text" type="text" name="loc_details" size="10"> &raquo; Commentaires sur l\'offre (160 caractères)</td></tr> <tr><td>Image </td><td> &laquo; <input class="text" type="text" name="loc_image" size="10"> &raquo; Photo illustrative de l\'offre</td></tr> <tr> <td><input class="button" type="reset" value="Effacer"></td> <td><input class="button" type="submit" value="Valider"></td> </tr> </table> </fieldset> <input type="hidden" name="send" value="new"> </form> '; //Gestion des locations print '<hr><fieldset><legend>Gestion des locations&nbsp;</legend>'; $sql = 'SELECT * FROM locations ORDER BY loc_id DESC' ; $rc = mysql_query($sql,$db_link); while($loc_data = mysql_fetch_array($rc)) { print '<table><tr><td width=350>' .'<li>Référence : ' .$loc_data['loc_ref'] .'<li>Localisation : ' .$loc_data['loc_lieu'] .'<li>Type : ' .$loc_data['loc_type'] .'<li>Surface : ' .$loc_data['loc_surface'] . '&nbsp;m²' .'<li>Loggia / Terrasse : ' .$loc_data['loc_loggia'] .'<li>Loyer : ' .$loc_data['loc_loyer'] . '&nbsp;€ &nbsp;+&nbsp;' .$loc_data['loc_charges'] .'&nbsp;€ de charges' .'<li>Frais d\'agence : ' .$loc_data['loc_frais'] . '&nbsp;€' .'<li>Disponibilité : ' .$loc_data['loc_dispo'] .'<li>Description : ' .$loc_data['loc_details'] .'<li>Image : ' .$loc_data['loc_image'] .'</td><td width=350><img width=80 height=80 src=img/loc/'.$loc_data['loc_image'].'></td></tr></table>' .'<br><a href="?delete='.$loc_data['loc_id'].'">Supprimer</a> - ' .'<a href="?edit='.$loc_data['loc_id'].'">Modifier</a><br><hr>' ; } } ?> </fieldset> <br> </td> </tr> </table> <table class=frame cellpadding=0 cellspacing=0 width=700 height=18 border=1 align=center> <tr> <td align=center bgcolor=#660000>&copy;2006</td> </tr> </table> </body> </html>

Mammouth du PHP | 684 Messages

07 juil. 2006, 14:01

Je ne parviens ceci dit pas à faire ensorte que l'utilisateur puisse faire un upload du fichier et que celui ci soit mis dans la valeur de loc_image.
Tu peux commencer par un simple test d'upload de fichier en regardant les tutoriaux de phpfrance. http://www.phpfrance.com/tutoriaux/inde ... e-fichiers
Autre chose idiote, je ne sais pas comment vérifier que les champs sont bien remplis ...
Voici un petit bout de code qui va te recuperer des informations d'un formulaire.
<?php
if (isset($_GET['une_var_dans_mon_form'])) {
    echo 'Je peux l'afficher car elle est presente : ', $_GET['une_var_dans_mon_form']), '<br />';
}
else {
    echo 'La variable ne contient rien.<br />';
}
?>
Tu peux essayer ce bout de code en l'appelant avec l'url vers le fichier. Tu rajoute ou non ce bout de texte a la fin de l'url.

Code : Tout sélectionner

http://ma_machine/ma_page_de_test.php?une_var_dans_mon_form=Youpppiiiiiiii
Je te conseil encore une fois de faire des tests avec les tutoriels de phpfrance.

http://www.phpfrance.com/tutoriaux/index.php/toc/home
Zigz4g

Petit nouveau ! | 4 Messages

13 juil. 2006, 11:01

hello
merci pour tes reponses... presque tout a l'air de marcher ^^

pour l'upload j'ai quand même un soucis.
Bon deja ca marche ^^
mais je voudrais faire bien entendu l'envoi du fichier mais aussi mettre sont nom dans la base sql...
et la je vois pas

[ABUSE]tu veux pas m'ecrire le code ? ^^[/ABUSE]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juil. 2006, 11:16

[ABUSE]tu veux pas m'ecrire le code ? ^^[/ABUSE]
:afraid: mouais, c'est abusé ça :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 4 Messages

13 juil. 2006, 18:01

bon j'avance petit a petit mais c'est deja ca ^^

Code : Tout sélectionner

<fieldset> <legend>Modification d\'une location référence : '.$loc_data['loc_ref'].'</legend> <form action="loc_admin.php" method="post" name="loc_edit" enctype="multipart/form-data"> <table> <tr><td width=100>Référence </td><td> &laquo; <input class="text" type="text" name="loc_ref" size="10" value="'.htmlentities($loc_data['loc_ref']).'"> &raquo; Code de référence correspondant à votre logiciel de gestion</td></tr> <tr><td><b>Localisation</b> </td><td> &laquo; <input class="text" type="text" name="loc_lieu" size="10" value="'.htmlentities($loc_data['loc_lieu']).'"> &raquo; Emplacement géographique de la location</td></tr> <tr><td>Type </td><td> &laquo; <input class="text" type="text" name="loc_type" size="10" value="'.htmlentities($loc_data['loc_type']).'"> &raquo; Type de location : Studio, T1, T2, T3, T4, T5, Villa, Chateau, etc.)</td></tr> <tr><td>Surface </td><td> &laquo; <input class="text" type="text" name="loc_surface"size="10" value="'.htmlentities($loc_data['loc_surface']).'"> &raquo; Surface habitable de la location en M²</td></tr> <tr><td>Loggia/Terrasse </td><td> &laquo; <input class="text" type="text" name="loc_loggia" size="10" value="'.htmlentities($loc_data['loc_loggia']).'"> &raquo; Informations sur les loggias et terrasses</td></tr> <tr><td>Loyer </td><td> &laquo; <input class="text" type="text" name="loc_loyer" size="10" value="'.htmlentities($loc_data['loc_loyer']).'"> &raquo; Loyer mensuel hors charges en euros</td></tr> <tr><td>Charges </td><td> &laquo; <input class="text" type="text" name="loc_charges"size="10" value="'.htmlentities($loc_data['loc_charges']).'"> &raquo; Charges mensuelles en euros</td></tr> <tr><td>Frais d\'agence </td><td> &laquo; <input class="text" type="text" name="loc_frais" size="10" value="'.htmlentities($loc_data['loc_frais']).'"> &raquo; Frais d\'agence en euros</td></tr> <tr><td>Disponiblité </td><td> &laquo; <input class="text" type="text" name="loc_dispo" size="10" value="'.htmlentities($loc_data['loc_dispo']).'"> &raquo; Date de disposiniblité</td></tr> <tr><td>Details </td><td> &laquo; <input class="text" type="text" name="loc_details"size="10" value="'.htmlentities($loc_data['loc_details']).'"> &raquo; Commentaires sur l\'offre (160 caractères)</td></tr> <tr><td>Image </td><td> &laquo; <input class="text" type="text" name="loc_image" size="10" value="'.htmlentities($loc_data['loc_image']).'"> &raquo; Photo illustrative de l\'offre</td></tr> <tr><td>Nouvelle image </td><td> &laquo; <input class="text" type="file" name="loc_image" size="10"> &raquo; Choisir une nouvelle image sur votre ordinateur</td></tr> <tr> <td><input class="button" type="reset" value="Annuler" onclick="javascript:history.go(-1)"></td> <td><input class="button" type="submit" value="Valider"></td> </tr> </table> <input type="hidden" name="loc_id" value="'.$_GET['edit'].'"> <input type="hidden" name="send" value="update"> <input type="hidden" name="MAX_FILE_SIZE" value="500000"> </form> </fieldset>
j'ai ecris ca en esperant que ca irait pour faire l'envoi des fichiers et mettre le nom dans la DB...

et nop ! ^^
je pense pour commencer que le fait d'avoir "loc_image" n'aide pas mais quelle type de champs faut il choisir pour que l'image soit prise encompte dans la DB ?

Help please... je rame ^^

Mammouth du PHP | 684 Messages

15 juil. 2006, 11:12

Essaye avec seulement un nom unique pour chaque champs dans ton formulaire.
name="loc_image"
est plusieurs fois dans ton formulaire par exemple.
Ou tu en fais un tableau avec
name="loc_image[]"
si je me rappel bien de cette syntaxe.
Zigz4g