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 :

répéter ligne de array chiffre aléatoire pour insertion dans une base de donnée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut répéter ligne de array chiffre aléatoire pour insertion dans une base de donnée
    Bonsoir à tous ,
    Je n'arrive pas a insérer dans une base de donnée nommé eleves_sports qui contient des champs : id,eleves_id,eleves_sports, des lignes qui pourrai se répéter car l'élèves peux faire plusieurs sports. Merci de prendre le temps de m'aider.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 600
    Billets dans le blog
    10
    Par défaut
    bonsoir,

    Il faut vérifier quelles sont les colonnes (et non pas les champs, les champs n'existent pas dans les bases de données), qui font l'objet d'une contrainte unique. Pour ces colonnes, les valeurs ne doivent pas être répétées.
    Pour rappel, les clef primaires sont implicitement uniques, mais d'autres colonnes peuvent également faire l'objet d'une contrainte unique.

    Si la même valeur devait toutefois, d'un point de vue métier, être insérée plusieurs fois dans la table concernée, c'est qu'il y a une erreur de modélisation.

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 324
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 324
    Billets dans le blog
    17
    Par défaut
    Je n'arrive pas a insérer
    Quelle est la difficulté ? Tu as un message d'erreur ? Du code à nous montrer ?
    Pour commencer tu peux faire autant de INSERT qu'il y a de couples élève/sport à insérer

  4. #4
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    ok Escartefigue , en faite je veux ajouter plusieurs fois dans la table Eleves_sport l'id de l'éléves si celui-ci fait plusieurs fois différents sport et la valeur du nombre de sport et aléatoire. Je vous montre ce que j'avais fait juste avant mais c'est autre chose,si ca peux vous donner une idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function addInfoTableEleves(tableEleves $table_info)// Un objet Breve est attendu
    	{
    		$sql = 'INSERT INTO eleves (id, nom, ecole_id) VALUES (:id, :nom, :ecole_id)';
    		$stmnt = $this->_db->prepare($sql);
    		$valeurId = htmlspecialchars($table_info->getId());
    		$valeurNom = htmlspecialchars($table_info->getNom());
    		$valeurEcole_id = htmlspecialchars($table_info->getEcole_id());
    		$stmnt->bindParam(':id', $valeurId);
    		$stmnt->bindParam(':nom', $valeurNom);
    		$stmnt->bindParam(':ecole_id',$valeurEcole_id);
    		$stmnt->execute();
    	}
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    $aleatoire1_ecole_id = rand(1,3);
    $aleatoire2_ecole_id = rand(1,3);
    $aleatoire3_ecole_id = rand(1,3);
    $aleatoire4_ecole_id = rand(1,3);
    $aleatoire5_ecole_id = rand(1,3);
    $aleatoire6_ecole_id = rand(1,3);
    $aleatoire7_ecole_id = rand(1,3);
    $aleatoire8_ecole_id = rand(1,3);
    $aleatoire9_ecole_id = rand(1,3);
    $aleatoire10_ecole_id = rand(1,3);
    $aleatoire11_ecole_id = rand(1,3);
    $aleatoire12_ecole_id = rand(1,3);
    $aleatoire13_ecole_id = rand(1,3);
    $aleatoire14_ecole_id = rand(1,3);
    $aleatoire15_ecole_id = rand(1,3);
    $aleatoire16_ecole_id = rand(1,3);
    $aleatoire17_ecole_id = rand(1,3);
    $aleatoire18_ecole_id = rand(1,3);
    $aleatoire19_ecole_id = rand(1,3);
    $aleatoire20_ecole_id = rand(1,3);
     
    $infos_eleves = array 
    (
    	array('id'=> 1, 'nom' => 'Dupont', 'ecole_id' =>$aleatoire1_ecole_id), 
    	array('id'=> 2, 'nom' => 'Durant', 'ecole_id' =>$aleatoire2_ecole_id), 
    	array('id'=> 3, 'nom' => 'lecomte', 'ecole_id' =>$aleatoire3_ecole_id), 
    	array('id'=> 4, 'nom' => 'Charpentier', 'ecole_id' =>$aleatoire4_ecole_id),
    	array('id'=> 5, 'nom' => 'Petit', 'ecole_id' =>$aleatoire5_ecole_id), 
    	array('id'=> 6, 'nom' => 'Dubois', 'ecole_id' =>$aleatoire6_ecole_id), 
    	array('id'=> 7, 'nom' => 'Moreau', 'ecole_id' =>$aleatoire7_ecole_id), 
    	array('id'=> 8, 'nom' => 'Roux', 'ecole_id' =>$aleatoire8_ecole_id), 
    	array('id'=> 9, 'nom' => 'Michel', 'ecole_id' =>$aleatoire9_ecole_id),
    	array('id'=> 10, 'nom' => 'Robert', 'ecole_id' =>$aleatoire10_ecole_id), 
    	array('id'=> 11, 'nom' => 'Roche', 'ecole_id' =>$aleatoire11_ecole_id),
    	array('id'=> 12, 'nom' => 'Roussel', 'ecole_id' =>$aleatoire12_ecole_id), 
    	array('id'=> 13, 'nom' => 'Noel', 'ecole_id' =>$aleatoire13_ecole_id), 
    	array('id'=> 14, 'nom' => 'Giraud', 'ecole_id' =>$aleatoire14_ecole_id), 
    	array('id'=> 15, 'nom' => 'Colin', 'ecole_id' =>$aleatoire15_ecole_id), 
    	array('id'=> 16, 'nom' => 'Pierrat', 'ecole_id' =>$aleatoire16_ecole_id), 
    	array('id'=> 17, 'nom' => 'Verdet', 'ecole_id' =>$aleatoire17_ecole_id),
    	array('id'=> 18, 'nom' => 'Aubert', 'ecole_id' =>$aleatoire18_ecole_id),
    	array('id'=> 19, 'nom' => 'Berger', 'ecole_id' =>$aleatoire19_ecole_id),
    	array('id'=> 20, 'nom' => 'Caron', 'ecole_id' =>$aleatoire20_ecole_id)
    );
    foreach($infos_eleves as $lignes)
    {
    	try
    	{
     
    		$tableEleves = new tableEleves($lignes);
     
    		//affectation de la variable $db de la connexion PDO
    		$db = new PDO('mysql:host=localhost;dbname=dbdevoir','root','');
     
    		//instanciation de la classe breveManager, nous créons un objet manager
    		//La connexion PDO est passé en paramêtre au constructeur.
    		$manager = new tableManager($db);
     
    		//appel de la méthode addBreve, nous passons un objet breve en argument.
    		$manager->addInfoTableEleves($tableEleves);
    		//le manager a ajouté la nouvelle breve, à vérifier dans la base de donnée
    		var_dump($tableEleves);
    	}
    	catch (Exception $e)
    	{
    			echo $e->getMessage();
    	}
     
    }

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 324
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 324
    Billets dans le blog
    17
    Par défaut
    On ne sait toujours pas quel est le problème.



    À propos du code que je vois :
    -- On n'insère pas en base d'entités HTML (htmlspecialchars()) mais du texte brut, le htmlspecialchars() est à appliquer à l'affichage
    -- Il ne faut pas préparer une requête DANS une boucle, mais 1 fois AVANT la boucle

  6. #6
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    ok ok bah le problème c'est que je voudrai ajouter plusieurs ligne du même éléve dans la table parce que l'éléve fait plusieurs sport et se chiffre et aléatoire et je ne sais pas comment mis prendre.

Discussions similaires

  1. [Python 3.X] Récupérer une réponse Input pour insert sur une base de donnée SQLite3
    Par Kamoulox Pelvis dans le forum Général Python
    Réponses: 4
    Dernier message: 31/07/2021, 14h06
  2. [MySQL] Problème pour l'insertion dans une base de données avec variables $_POST
    Par hakkio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2012, 17h04
  3. Réponses: 2
    Dernier message: 05/05/2010, 17h01
  4. Réponses: 2
    Dernier message: 07/09/2009, 21h20
  5. Problème format de champs pour insertion dans une base FileMaker
    Par guiguikawa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/03/2007, 22h27

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