IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insert Array dans Mysql


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Points : 43
    Points
    43
    Par défaut Insert Array dans Mysql
    Bonjour,

    À travers un formulaire, les utilisateurs peuvent s'inscrire à des neswletters thématiques (8 en tout).

    D'abords, ils renseignent leur nom, email, civilité (Madame ou Monsieur), acceptation d'offres personnalisées, et enfin acceptation d'offres de sites partenaires.
    Ensuite, un mail de confirmation leur est envoyé avec un lien pour activation/validation.

    Le traitement côté serveur (php) et en JavaScript de ces données POSTées ne me pose pas de difficultés, et sont enregistrées dans une table 'newsletterusers'.

    Structure table 'newsletterusers' :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      `userID` int(11) NOT NULL AUTO_INCREMENT,
      `civilite` varchar(10) NOT NULL,
      `nom` varchar(26) NOT NULL,
      `email` varchar(30) NOT NULL,
      `infosite` varchar(1) NOT NULL,
      `infopart` varchar(1) NOT NULL,
      `validated` int(1) NOT NULL DEFAULT '0',
      `validkey` varchar(255) NOT NULL,
      PRIMARY KEY (`userID`)

    Sachant que chaque utilisateur peut choisir une ou plusieurs newsletters, je voudrais enregistrer ce tableau dynamique dans ma bdd, données nécessaires pour l’édition/envoi des newsletters choisies et pour offrir la possibilité de modifier ultérieurement les options (choix).

    Qusetion 1 : Comment organiser l'enregistrement de cet tableau ? Dans la même table 'newsletteruwsers'
    ou créer une nouvelle table 'optionsnewsletter' et faire des jointures ?
    Question 2 : Comment y enregistrer les options choisies ?

    Merci pour vos éclairages.
    Voici mon essai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    	if(isset($_POST['submit'])){
     
    		if(isset($_POST['option'])){
    			$option=$_POST['option'];
    		}else {
    			$option = Array ();
    		}
     
    		require("config-db.php");
    		mysql_connect($adresse,$nom,$motdepasse);
    		mysql_select_db($database); 
     
    		$sql = "INSERT INTO optionsnewsletter (";
    		$length = count($option);
    		$i = 1;
    		foreach($option as $column=>$value){  
    			$appendToSql = ',';
    			if($i==$length){$appendToSql = '';}
    			$col .= $column.$appendToSql;
    			$val .= $value.$appendToSql;
    			$i++;
    		}
    		$sql .= $col.") ";
    		$sql .= " VALUES (".$val.") ";
    		$req = mysql_query($sql) or die("Erreur SQL!<br>".$sql.'<br>'.mysql_error());
    	}
    ?>
    <form id="themes"  action="" method="post">
    	<input id="actualites" type="checkbox" name="option[]" value="Actualités"
    	<?php if($_POST && in_array('Actualités',$option)){ echo "checked";} ?>/>
     
    	<input id="sante" type="checkbox" name="option[]" value="Santé et Bien-être"
    	<?php if($_POST && in_array('Santé et Bien-être',$option)){ echo "checked";} ?>/>
     
    	<input id="hightech" type="checkbox" name="option[]" value="Hight-tech"
    	<?php if($_POST && in_array('Hight-tech',$option)){ echo "checked";} ?>/>
    	<!-- .......-->
     
    	<button id="submit" name="submit" type="submit">JE M'INSCRIS</button>
    </form>

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    une solution serait de créer une table "user_newsletter", d'ailleur la table que tu as crée "newsletterusers" devraient s'appeler "user" si elle ne contient que les informations de l'utilisateur. Mais ce n'est que de la sémantique

    Dans user_newsletter tu mets l'id_user et l'id_newsletter pour les lier les utilisateurs aux différentes newsletters

Discussions similaires

  1. Insertion image dans mysql = problème
    Par omlip dans le forum JDBC
    Réponses: 2
    Dernier message: 20/05/2009, 23h59
  2. [MySQL] Insertion constante dans MySQL
    Par novphp dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/01/2009, 21h38
  3. Insertion utilisateur dans mysql avec le shell UNIX
    Par loopback dans le forum Débuter
    Réponses: 3
    Dernier message: 18/11/2006, 18h01
  4. [Upload] Insertion image dans mysql après upload
    Par alexmorel dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 23h46
  5. pb avec insertion sigle € dans MySql
    Par mohican13 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 02/12/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo