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 :

données qui se place au centre de la cellule


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut données qui se place au centre de la cellule
    Bonjour,

    je suis confronté à un problème qui me dépasse.

    pour faire la mise à jour de tables dans une base de données (MariaDb) j'utilise un fichier
    Excel .csv

    voici un extrait du code qui permet la mise à jour

    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
    		
    	$fp = fopen($fichier , "r");
    	{
    		
    		if ($fp)
    		 {
    			while (!feof($fp))
    			 {
           			$cp_texte++;
    				
    				$buffer = fgets($fp,70000);
    				$mot[$cp_texte]=explode(";",$buffer);
    			extait			
    				$mot[$cp_texte][0] = trim($mot[$cp_texte][0]);
    				
    			
    		
    	
    	} // fin de $fp = fopen($_SESSION
    	} // fin de if ($fp)
    	} // fin de while
    	        fclose ($fp);
    // -------------------------------------------------------	
    
    
        $sql= 'INSERT INTO collec_0 VALUES ("'.$index.'","
    		 '.trim($mot[$i][0]).'","
    		 '.trim($mot[$i][2]).'","
    		 '.trim($mot[$i][3]).'","
    		 '.trim($mot[$i][4]).'","
    	extrait 
    		 '.trim($mot[$i][61]).'")';
    									
    		mysqli_query($base_gene,$sql)or die ('Erreur table France !'.$sql.'<br>'.mysqli_error($base_gene));
    malgré cela voici la "tête" de la table
    Nom : Sans titre.jpg
Affichages : 123
Taille : 39,8 Ko

    c'est pas très esthétique et en plus ça me pose des problème pour mes requêtes

    le problème est surement simple mais je coince

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 330
    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 330
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        $sql= 'INSERT INTO collec_0 VALUES ("'.$index.'","
    		 '.trim($mot[$i][0]).'","
    		 '.trim($mot[$i][2]).'","
    		 '.trim($mot[$i][3]).'","
    		 '.trim($mot[$i][4]).'","
    	extrait 
    		 '.trim($mot[$i][61]).'")';
    Bonjour michel71,

    C'est normal, ta requête insère des caractères blancs et des retours à la ligne (tout ce qui est entre les " des valeurs de ton SQL).

    Même si ça fonctionne avec MySQL ou MariaDB, en SQL il faut délimiter les chaînes avec '
    et ça tombe bien, car en délimitant les chaînes PHP avec " tu peux directement y insérer des variables

    Ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $mot0 = trim($mot[$i][0]);
    $mot2 = trim($mot[$i][2]);
    $mot3 = trim($mot[$i][3]);
    $mot4 = trim($mot[$i][4]);
    $mot61 = trim($mot[$i][61]);
     
    $sql = "INSERT INTO collec_0 VALUES ('{$index}', '{$mot0}', '{$mot2}', '{$mot3}', '{$mot4}', 'extrait : {$mot61}')";
    Présentation plus propre supportée à partir de PHP 7.3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = <<<SQL 
        INSERT INTO collec_0
        VALUES ('{$index}', '{$mot0}', '{$mot2}', '{$mot3}', '{$mot4}', 'extrait : {$mot61}')
        SQL;
    Voilà, l'étape suivante sera, si ce n'est déjà fait, d'échapper correctement les valeurs avec mysqli_real_escape_string() ou en préparant la requête et de lire le CSV avec fopen() puis fgetcsv(), autrement il y aura forcément des ratés et des plantages.

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    merci je vais regarder de plus près
    bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 31
    Dernier message: 25/01/2018, 14h27
  2. Donnée qui ne s'inscrit pas dans la cellule voulue
    Par BnLucky dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/09/2010, 14h59
  3. Remplir un comboBox selon les données qui contient l'autre comboBOx
    Par PhiberOptik dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/06/2006, 07h43
  4. [MySQL] Ajout de données qui ne fonctionne pas
    Par paterson dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/05/2006, 20h28
  5. Travailler sur des données qui doivent être triées
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/07/2003, 17h13

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