[RESOLU] Probleme formulaire inserction BBD php

toto69
Invité n'ayant pas de compte PHPfrance

03 août 2012, 15:35

Salut ,

Effectivement c'etait le desc mais lorsque je rempli tout les champs rien ne s'affiche .. aucun message d'erreur rien du tout .. pourtant tout les if ont des else :shock:

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 août 2012, 15:38

tu peux aussi essayer le debugger c'est super pratique :)
montre nous ton dernier code

Pour le problème d'upload des fichier tu doit utiliser le champ error de $_FILES['image']

j'avais fait une tite fonction pour traiter la chose (a complter avec le code erreur manquant)
    <?php
    function up_error($code,$nom) {
    switch ($code) {
    case UPLOAD_ERR_OK : $erreur = 'Pas d\'erreur';$valid = true;break;
    case UPLOAD_ERR_INI_SIZE : $erreur = 'Votre fichier `'.$nom.'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';$valid = false;break;
    case UPLOAD_ERR_FORM_SIZE : $erreur = 'Votre fichier dépasse la taille maximale demandée par le Webmestre';$valid = false;break;
    case UPLOAD_ERR_PARTIAL : $erreur = 'Le fichier n\'a été que partiellement téléchargé. !!!';$valid = false;break;
    case UPLOAD_ERR_NO_FILE : $erreur = 'Aucun fichier téléchargé !!!';$valid = false;break;
    case UPLOAD_ERR_NO_TMP_DIR : $erreur = 'Un dossier temporaire est manquant.'
    case UPLOAD_ERR_CANT_WRITE : $erreur = 'Échec de l\'écriture du fichier sur le disque.'
    case UPLOAD_ERR_EXTENSION : $erreur = 'Une extension PHP a arrété l\'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L\'examen du phpinfo() peut aider.';
    default : $erreur = 'L\'upload a rencontré une erreur inconnue !!!';$valid = false; break;
    }
     
    $return[] = $valid;
    $return[] = $erreur;
    return $return;
    }
    ?>
Tu pourra y voir, par exemple, les erreurs pour fichier trop gros.


Pour ce qui est de la table SQL, cela dépend de tes besoin.
Perso, avec mysql (mais je sais pas ce n'ai pas normé SQL) j'utilise plutot un int unsigned (non signé donc "taille" double, vue que l'on n'utilise pas d'id négatif c'est pas plus mal XD).

par contre coté modélisation des données il y a revoir étant donné que tu ne respect pas la 1ère forme normale (atomicité de l'information).
En clair, action et classification doivent être des tables et non des infos en dur dans le code.

pourquoi ?
- Parce que si un malin modife le source du formulaire ça va être le merdier dans la base.
- Parce que si tu veux modifier un champ (faut d’orthographe, élément qui change complètement de dénomination etc etc) tu va devoir faire un update sur toute la table et donc potentiellement sur des million de tuples (j'exagère a peine :mrgreen: ) et tu sera confronté au problème de casse et d'orthographe).
si tu a une table avec les action et que dans la table jeux_desc tu ne met que la clef primaire correspondante tu n'a plus ces problèmes tu ne va mettre a jour d'une seule ligne de la table, c'est plus performant et moins bordélique. tu va aussi gagner en terme de taille de la base vu que tu va stocker moins de chose (un id prend moins de place qu'un varchar(150) ;) ).

je ferais quelque chose comme ça (à partir de ta table)
MCD
Image
MDL si tu préfère ;)
Image

ce qui donne, en SQL :
CREATE TABLE jeux_desc(
        id                              int(11) Auto_increment  NOT NULL ,
        nom                             Varchar (40) NOT NULL ,
        sortie_fr                       Date  NOT NULL ,
        image                           Varchar (150) NOT NULL ,
        description                     Text  NOT NULL ,
        commentaire                     Varchar (250) NOT NULL ,
        idSupport_support               Int  NOT NULL ,
        idClassification_Classification Int  NOT NULL ,
        idType_type                     Int  NOT NULL ,
        idDev_developpeur               Int  NOT NULL ,
        PRIMARY KEY (id)
)ENGINE=InnoDB;

CREATE TABLE developpeur(
        idDev int(11) Auto_increment  NOT NULL ,
        nom   Varchar (40) NOT NULL ,
        PRIMARY KEY (idDev)
)ENGINE=InnoDB;

CREATE TABLE type(
        idType  int(11) Auto_increment  NOT NULL ,
        nomType Varchar (25) NOT NULL ,
        PRIMARY KEY (idType)
)ENGINE=InnoDB;

DROP TABLE IF EXISTS support;
CREATE TABLE support(
        idSupport  int(11) Auto_increment  NOT NULL ,
        nomSupport Varchar (25) NOT NULL ,
        PRIMARY KEY (idSupport)
)ENGINE=InnoDB;

CREATE TABLE Classification(
        idClassification int(11) Auto_increment  NOT NULL ,
        nom              Varchar (25) NOT NULL ,
        description      Varchar (50) NOT NULL ,
        PRIMARY KEY (idClassification)
)ENGINE=InnoDB;

ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idSupport_support FOREIGN KEY (idSupport_support) REFERENCES support(idSupport)
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idClassification_Classification FOREIGN KEY (idClassification_Classification) REFERENCES Classification(idClassification)
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idType_type FOREIGN KEY (idType_type) REFERENCES type(idType)
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idDev_developpeur FOREIGN KEY (idDev_developpeur) REFERENCES developpeur(idDev)
Tu génère les select à partir de la base de données. dans les values des options tu met les clef primaire (id) et en label les nom / description

Je me demande si la description et le commentaire du jeux ne font pas redondance ?

@+
Il en faut peu pour être heureux ......

toto69
Invité n'ayant pas de compte PHPfrance

03 août 2012, 15:55

Salut moogli,

Alors deja merci encore de m'aider !! :love4:

Tu m'a completement pommée Hahaa .. non je rigole ;P
Et bien pour le probleme de SQL effectivement je suis a 100% d'ac avec toi et merci pour les petite astuce, effectivement ce serra bien plus simple comme ca mais juste un petit truc ce code :
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idSupport_support FOREIGN KEY (idSupport_support) REFERENCES support(idSupport);
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idClassification_Classification FOREIGN KEY (idClassification_Classification) REFERENCES Classification(idClassification);
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idType_type FOREIGN KEY (idType_type) REFERENCES type(idType);
ALTER TABLE jeux_desc ADD CONSTRAINT FK_jeux_desc_idDev_developpeur FOREIGN KEY (idDev_developpeur) REFERENCES developpeur(idDev);
Je doit la rajouter dans la base ?! :o ( desolée si c'est une question bete :/ )

Bonh j'imagine que apres niveau php se serra bien plus complexe ensuite avec ce systeme mais tant mieux j'apprendrai *o*

Avec le code que tu viens de me passer pour les " erreur image " cela donne :
<?php
define ( 'ROOT', '../' );
$dossierImages = ROOT . 'img/images-slider/';
require ('config/config.php');
require ('SBImage.php');
require ('top_page.php');

if (! empty ( $_POST )) {
        if (! empty ( $_POST ['nom'] ) && ! empty ( $_POST ['developpeur'] ) && ! empty ( $_POST ['desc'] ) && ! empty ( $_POST ['annee'] ) && ! empty ( $_POST ['mois'] ) && ! empty ( $_POST ['jour'] )) {
                $connect = mysql_connect ( MYHOST, MYUSER, MYPASS ) or die ( '<p class="alert_error">Identifiants incorrects<br />' . mysql_error () .'</p>');
                mysql_select_db ( MYDB ) or die ( '<p class="alert_error">Base de données incorrecte<br />' . mysql_error () .'</p>' );
                if (isset ( $_FILES ['image'] )) {
                        if (verifieTypeMime ( $_FILES ['image'] ['type'] )) {
                                $fichier = $dossierImages . $_FILES ['image'] ['name'];
                                if (move_uploaded_file ( $_FILES ['image'] ['tmp_name'], $fichier )) {
                                        SBImage::resize ( $fichier, 210, 160, true );
                                        $bonnedate = $_POST ['annee'] . '-' . $_POST ['mois'] . '-' . $_POST ['jour'];
                                        $reqFile = $_FILES ["image"] ["name"];
                                        $requete = "INSERT INTO jeux_desc(nom,developpeur,type,sortie_fr,support,classification,image,description)
                                        VALUES('" . mysql_real_escape_string($_POST ['nom']) . "',
                                               '" . mysql_real_escape_string($_POST ['developpeur']) . "',
                                               '" . mysql_real_escape_string($_POST ['type']) . "',
                                               '" . mysql_real_escape_string($bonnedate) . "',
                                               '" . mysql_real_escape_string($_POST ['support']) . "',
                                               '" . mysql_real_escape_string($_POST ['class']) . "',
                                               '" . mysql_real_escape_string($reqFile) . "',
                                               '" . mysql_real_escape_string($_POST ['desc']) . "')";
                                        $ret = mysql_query ( $requete );
                                        if ($ret === false) {
                                                $erreur = 'Erreur SQL : <br />' . mysql_error () . '';
                                        }
                                        else {
                                                $super = 'Ajout du jeux réalisé avec succès';
                                        }
                                } else {
                                        $erreur = 'Erreur au déplacement de l\'image';
										function up_error($code,$nom) {
											switch ($code) {
											case UPLOAD_ERR_OK : $erreur = 'Pas d\'erreur';$valid = true;break;
											case UPLOAD_ERR_INI_SIZE : $erreur = 'Votre fichier `'.$nom.'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';$valid = false;break;
											case UPLOAD_ERR_FORM_SIZE : $erreur = 'Votre fichier dépasse la taille maximale demandée par le Webmestre';$valid = false;break;
											case UPLOAD_ERR_PARTIAL : $erreur = 'Le fichier n\'a été que partiellement téléchargé. !!!';$valid = false;break;
											case UPLOAD_ERR_NO_FILE : $erreur = 'Aucun fichier téléchargé !!!';$valid = false;break;
											case UPLOAD_ERR_NO_TMP_DIR : $erreur = 'Un dossier temporaire est manquant.';
											case UPLOAD_ERR_CANT_WRITE : $erreur = 'Échec de l\'écriture du fichier sur le disque.';
											case UPLOAD_ERR_EXTENSION : $erreur = 'Une extension PHP a arrété l\'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L\'examen du phpinfo() peut aider.';
											default : $erreur = 'L\'upload a rencontré une erreur inconnue !!!';$valid = false; break;
											}
											 
											$return[] = $valid;
											$return[] = $erreur;
											return $return;
										}
                                }
                        } else {
                                $erreur = 'Type de fichier non pris en charge (mettre les fichier acceptés)';
                                ;
                        }
                }
                else {
                        $erreur = 'Image obligatoire !';
                }
                
                mysql_close ();
        }
        else {
                $erreur = 'Formulaire corrompu merci de bien vouloir recommencer';
        }
}
?>


Un dernier truc tu entend quoi par : "j'utilise plutot un int unsigned" :)
Un dernier truc-bis : le champ " commentaire" a vrai dire ne me servira pas tant que ca je l'ai ajoutée juste au cas ou mais je prefere l'enlever ... sa prend de la place pour rien ;D

Merci encore ;D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 août 2012, 16:58

Un dernier truc tu entend quoi par : "j'utilise plutot un int unsigned" :)
il s'agit d'une option de mysql et non quelque chose de normé, donc à ne pas utiliser si tu compte changer de sgbd un jour ;)
Tous les types entiers ont un attribut optionnel (non-standard) UNSIGNED (non-signé, en fran¸ais). Les valeurs non-signées peuvent être utilisées pour n'autoriser que des valeurs positives dans une colonne, ou bien pour exploiter un intervalle de validité plus haut.
....
Lorsque MySQL doit stocker une valeur qui est hors de l'intervalle de validité d'une colonne, il ramène la valeur à la plus proche possible, et stocke cette valeur. Par exemple, l'intervalle de validité d'une colonne d'entiers INT va de -2147483648 à 2147483647. Si vous essayez d'insérer -9999999999 dans une colonne de ce type, la valeur sera ramenée à la plus proche possible, c'est à dire -2147483648. De même, si vous essayez d'insérer 9999999999, 2147483647 sera stocké à la place.

Si la colonne INT possède l'attribut UNSIGNED, l'intervalle de validité est aussi large, mais les valeurs extrêmes se décalent vers 0 et 4294967295. Si vous essayez de stocker -9999999999 et 9999999999 dans cette colonne, vous obtiendrez respectivement 0 et 4294967296.
Taille des entiers
Type Octets De A
TINYINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -9223372036854775808 9223372036854775807

Plus d'infos => http://dev.mysql.com/doc/refman/5.0/fr/ ... types.html
Pour la 1ère question SQL :
- alter est la commande sql qui permet de modifier quelque chose. dans ce cas précis il s'agit d'une table (alter table) et de la tablejeux_desc (ALTER TABLE jeux_desc)
- le ADD indique que l'on ajoute une quelque chose :), dans notre cas il s'agit d'une contrainte (constraint) avec un nom (FK_xxxx)
- FOREIGN KEY : cette contrainte sera dite de clef étrangère O_o : késako ? c'est simplement une référence à une autre table (dans la table jeux_desc l'on fait référence aux tables : support, classification, type et developpeur). c'est une contrainte de clef, parce qu'elle s'effectue sur les clef primaire. simplement parce que la clef primaire est l'élément unique permettant de trouver un tuple (pas de confusion possible). donc lorsque dans la tabel jeux_desc j'utilise l'idtype cette contrainte impose l'idtype que l'on essai d'utiliser existe dans la table type.
ce mécanisme permet de s'assurer de la cohérence de la base de données (que tu n'ai pas un type indiqué dans la table jeux alors qu'il n'existe pas en vrai :)).

Les 4 lignes que tu indique permette d'ajouter les contrainte de clef étrangère aux tables créer avant.

Il est aussi possible de créer ces contraintes dans la déclaration de la table (create table) mais cela impose un ordre dans la création des tables (tu ne fait pas référence à une table qui n'existe pas). donc c'est plus pratique d'utiliser un ordre alter.

Attention si tu dois utiliser mon script tu va perdre les données existante dans la table jeux_desc que tu a déjà. si tu veux le conserver il faut modifier la table, créer les 4 tables en plus et ensuite créer les 4 contraintes de tables, seulement lorsque les données de la table jeux_desc seront corrects (c'est a dire que les clef étrangère seront renseignées et existante dans les autes tables :) ).

plus d'info sur L'intégrité référentielle
sans oublier la base sur les contraintes http://sqlpro.developpez.com/cours/sqlaz/ddl/#L7.3
Bonh j'imagine que apres niveau php se serra bien plus complexe ensuite avec ce systeme mais tant mieux j'apprendrai *o*
Pas forcément :)
Mais par contre c'est la que l'on entrevois l'utilité de la POO (programmation orientée objet) mais c'est un autre débat :)

donc au lieu d'un select en dur tu va faire (par exemple pour le type)
<?php
// je te laisse faire la connexion au sgbd tu sais faire 
$sql = 'select * from type';
$ret = mysql_query($sql);
if ($ret === false)
echo '<p class="alert_error">Erreur SQL : <br />' . mysql_error () . '</p>';
else {
echo '<select name="type">'."\n";
while($data = mysql_fetch_assoc($ret)) {
echo '<option value="'.$data['idType'].'">'.$data['nomtype'].'</option>'."\n";
}
mysql_free_result($ret);
echo '</select>';
}
?>
idem pour les autres.

tu passe les clef primaire avec le value="", la nom ou la description c'est juste pour que l'utilisateur s'y retrouve mais la base de données elle n'utilise que les clefs.
Un dernier truc-bis : le champ " commentaire" a vrai dire ne me servira pas tant que ca je l'ai ajoutée juste au cas ou mais je prefere l'enlever ... sa prend de la place pour rien ;D
c'est juste une remarque, suivant ton cahier des charges ce champs peu être cohérent ;)

la fonction up_error doit être déclarée avant tous cela (dans un autre fichier que tu inclus par exemple). et tu l'utilise de la même façon que la fonction verifieTypeMime (), avec un if et tout, a la ligne du dessous et le code qui suis sera utilisé seulement si la fonction retourne true dans l'index zéro du tableau qu'elle retroune.

en gros
<?php
$v = up_error($_FILES['image']['error'], 'le nom du champ file');
if ($v[0] === true) {
// le code de copie, de redimensionnement et d'insertion dans la db
}
else {
// à bah non boulette  echo $v[1];
}
?>
si tu veux que ton code soit plus lisible, je te conseil de créer des fonctions pour la génération des select histoire de pas avoir des pâtés de code partout. une fonction générique qui prend en paramètre le nom du select et un table de donnée avec des index précis, comme $data['value'] et $data['label'] par exemple. il te faut aussi prévoir de normaliser ou les requete ou les données, les requêtes c'est le plus simple. pour cela utilise un alias sur les colonnes (as)
par exemple
 select idType as value, nomtype as label from type;
un mysl_fetch_assoc pour avoir les résultat et tu passe la chose à la fonction (attention, soit tu passe un jeux de résultat, doit tu passe un tableau et la tu est "universel").

@+

edit : j'allais oublier : bonne lecture :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

03 août 2012, 17:50

Merciii beaucoup pour toute ses infos *o* !!

J'ai un dernier petit soucis maintenant pour inserer dans les differente table je suis pas trop a l'aise avec les join !! :/
                $reqFile = $_FILES ["image"] ["name"];
                 $requete = "INSERT INTO jeux_desc(nom,developpeur,type,sortie_fr,support,classification,image,description)
                		VALUES('" . mysql_real_escape_string($_POST ['nom']) . "',
                        '" . mysql_real_escape_string($bonnedate) . "',
                        '" . mysql_real_escape_string($reqFile) . "',
                        '" . mysql_real_escape_string($_POST ['desc']) . "',
                        '" . mysql_real_escape_string($_POST ['developpeur']) . "')";
Tu pourrais m'aider ou me donner un exemple se serai parfait !! ;D

Merci encoree !! :D

Petit nouveau ! | 6 Messages

03 août 2012, 17:52

Ma question 'est plus comment reprendre une ID pour la reutiliser je me rapelle plus de la fonction ;D

Petit nouveau ! | 6 Messages

03 août 2012, 18:09

J'ai essayer ca mais je pense pas que ca marche :/
				$req_dev = "INSERT INTO developpeur(nom)
                		VALUES('" . mysql_real_escape_string($_POST ['developpeur']) . "')";
                $req_dev_ret = mysql_query ( $req_dev );
				$ID_dev = mysql_insert_id();
				
				$req_sup = "INSERT INTO support(nom)
                		VALUES('" . mysql_real_escape_string($_POST ['support']) . "')";
                $req_sup_ret = mysql_query ( $req_sup );
				$ID_sup = mysql_insert_id();
				
				$req_type = "INSERT INTO type(nom)
                		VALUES('" . mysql_real_escape_string($_POST ['type']) . "')";
                $req_type_ret = mysql_query ( $req_type );
				$ID_type = mysql_insert_id();
				
				$req_class = "INSERT INTO Classification(nom,description)
                		VALUES('" . mysql_real_escape_string($_POST ['class']) . "','" . mysql_real_escape_string($_POST ['class']) . "')";
                $req_class_ret = mysql_query ( $req_class );
				$ID_class = mysql_insert_id();
				
                 $requete = "INSERT INTO jeux_desc(nom,sortie_fr,image,description,idSupport_support,idClassification_Classification,idType_type,idDev_developpeur)
                		VALUES('" . mysql_real_escape_string($_POST ['nom']) . "',
                        '" . mysql_real_escape_string($bonnedate) . "',
                        '" . mysql_real_escape_string($reqFile) . "',
                        '" . mysql_real_escape_string($_POST ['desc']) . "',
                        '" . mysql_real_escape_string($ID_sup) . "',
                        '" . mysql_real_escape_string($ID_class) . "',
                        '" . mysql_real_escape_string($ID_type) . "',
                        '" . mysql_real_escape_string($ID_dev) . "',
						)";
                $ret = mysql_query ( $requete );

Petit nouveau ! | 6 Messages

03 août 2012, 18:39

Sayer j'ai enfin reussie tout est bon *o*

Merci beaucoup a toi moogli :D :D

Pour ceux qui veulent le code final :
<?php
  
/************************************************************
 * Definition des constantes / tableaux et variables
 *************************************************************/
 
// Constantes
define ( 'ROOT', '../' );
$dossierImages = 'img/images-slider/';
require ('config/config.php');
require ('top_page.php');

define('TARGET', $dossierImages);    // Repertoire cible
define('MAX_SIZE', 100000);    // Taille max en octets du fichier
define('WIDTH_MAX', 800);    // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800);    // Hauteur max de l'image en pixels
 
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
$infosImg = array();
 
// Variables
$extension = '';
$message = '';
$nomImage = '';
 
/************************************************************
 * Creation du repertoire cible si inexistant
 *************************************************************/
if( !is_dir(TARGET) ) {
  if( !mkdir(TARGET, 0755) ) {
    exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
  }
}
 
/************************************************************
 * Script d'upload
 *************************************************************/
if (! empty ( $_POST ['nom'] ) && ! empty ( $_POST ['developpeur'] ) && ! empty ( $_POST ['desc'] ) && ! empty ( $_POST ['annee'] ) && ! empty ( $_POST ['mois'] ) && ! empty ( $_POST ['jour'] )) {
  // On verifie si le champ est rempli
  if( !empty($_FILES['image']['name']) )
  {
    // Recuperation de l'extension du fichier
    $extension  = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);
 
    // On verifie l'extension du fichier
    if(in_array(strtolower($extension),$tabExt))
    {
      // On recupere les dimensions du fichier
      $infosImg = getimagesize($_FILES['image']['tmp_name']);
 
      // On verifie le type de l'image
      if($infosImg[2] >= 1 && $infosImg[2] <= 14)
      {
        // On verifie les dimensions et taille de l'image
        if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
        {
          // Parcours du tableau d'erreurs
          if(isset($_FILES['image']['error']) 
            && UPLOAD_ERR_OK === $_FILES['image']['error'])
          {
            // On renomme le fichier
            $nomImage = md5(uniqid()) .'.'. $extension;
 
            // Si c'est OK, on teste l'upload
            if(move_uploaded_file($_FILES['image']['tmp_name'], TARGET.$nomImage))
            {
				$connect = mysql_connect ( MYHOST, MYUSER, MYPASS ) or die ( '<p class="alert_error">Identifiants incorrects<br />' . mysql_error () .'</p>');
                mysql_select_db ( MYDB ) or die ( '<p class="alert_error">Base de données incorrecte<br />' . mysql_error () .'</p>' );
				$bonnedate = $_POST ['annee'] . '-' . $_POST ['mois'] . '-' . $_POST ['jour'];
                $reqFile = $_FILES['image']['tmp_name'];
				
				$req_dev = "INSERT INTO developpeur(nom)
                		VALUES('" . mysql_real_escape_string($_POST ['developpeur']) . "')";
                $req_dev_ret = mysql_query ( $req_dev );
				$ID_dev = mysql_insert_id();
				
				$req_sup = "INSERT INTO support(nomSupport)
                		VALUES('" . mysql_real_escape_string($_POST ['support']) . "')";
                $req_sup_ret = mysql_query ( $req_sup );
				$ID_sup = mysql_insert_id();
				
				$req_type = "INSERT INTO type(nomType)
                		VALUES('" . mysql_real_escape_string($_POST ['type']) . "')";
                $req_type_ret = mysql_query ( $req_type );
				$ID_type = mysql_insert_id();
				
				$req_class = "INSERT INTO Classification(nom,description)
                		VALUES('" . mysql_real_escape_string($_POST ['class']) . "','" . mysql_real_escape_string($_POST ['class']) . "')";
                $req_class_ret = mysql_query ( $req_class );
				$ID_class = mysql_insert_id();
				
                 $requete = "INSERT INTO jeux_desc(nom,sortie_fr,image,description,idSupport_support,idClassification_Classification,idType_type,idDev_developpeur)
                		VALUES('" . mysql_real_escape_string($_POST ['nom']) . "',
                        '" . mysql_real_escape_string($bonnedate) . "',
                        '" . mysql_real_escape_string($reqFile) . "',
                        '" . mysql_real_escape_string($_POST ['desc']) . "',
                        '" . mysql_real_escape_string($ID_sup) . "',
                        '" . mysql_real_escape_string($ID_class) . "',
                        '" . mysql_real_escape_string($ID_type) . "',
                        '" . mysql_real_escape_string($ID_dev) . "'
						)";
                $ret = mysql_query ( $requete );
              $super = 'Jeux ajoutée avec succées !';
            }
            else
            {
              // Sinon on affiche une erreur systeme
              $message = 'Problème lors de l\'upload !';
            }
          }
          else
          {
            $message = 'Une erreur interne a empêché l\'uplaod de l\'image';
          }
        }
        else
        {
          // Sinon erreur sur les dimensions et taille de l'image
          $message = 'Erreur dans les dimensions de l\'image !';
        }
      }
      else
      {
        // Sinon erreur sur le type de l'image
        $message = 'Le fichier à uploader n\'est pas une image !';
      }
    }
    else
    {
      // Sinon on affiche une erreur pour l'extension
      $message = 'L\'extension du fichier est incorrecte !';
    }
  }
  else
  {
    // Sinon on affiche une erreur pour le champ vide
    $message = 'Veuillez remplir le formulaire svp !';
  }
}
?>


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 août 2012, 16:37

salut,

petite précision quand même, les insertions dans les tabels ne devrais être fait que si tu laisse la possibilité au gens d'ajouter des classifications, des dev etc

si ce n'est pas le cas tu affiche des select avec le valeur présente dans la base et utilise les id pour alimenter la table jeux_desc. sinon ben c'est toujours le merdier XD

Si le sujet est résolu peux tu cliquer sur le (gros) bouton résolu en haut :D

@+
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 août 2012, 16:51

Si le sujet est résolu peux tu cliquer sur le (gros) bouton résolu en haut :D
Nope, il ne peut pas, vu qu'il n'était pas authentifié pour son premier post... donc je l'ai fait pour lui :)

Ps : il est pas gros ! il a juste une ossature épaisse ! :P
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

04 août 2012, 22:02

Merci ryle !!! Et merci pour tout moogli ;) :D