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 :

Reconstruction d'un tableau serializé dans php


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Gabon

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Reconstruction d'un tableau serializé dans php
    Bonjour les amis,

    j'enregistre les valeurs d'un tableau à partir d'un formulaire sans problème.j'utilise la fonction serialize et il faut ajouter que le nombre de ligne est indéfini.avec la fonction unserialize je récupère mon tableau depuis ma bdd et j'affiche le contenu en faisant print_r($tableau).
    Question:Comment reconstruire mon tableau de départ sachant qu'il est constitué de 2 colonnes?d'un enregistrement à un autre,le nombre de ligne varie.
    Mon code pour l'affichage :

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <?php
    header("Pragma:no-cache");
    require_once '../params/config.php';
     
    	if (isset($_POST['per']))
    	{
    		$connexion = mysql_connect (DB_SERVER, DB_USER, DB_PASSWORD); 
    		mysql_select_db (DB_NAME);
     
    		$per=(int)$_POST['per'];
    			$requete = sprintf("SELECT * FROM a_transtb WHERE id_periode ='%d' ORDER BY id_aff, libelle_aff",mysql_real_escape_string($per));
    	$resultat = mysql_query ($requete);
     
    	?>
    <STYLE type=text/css>
    body { /* Modifications : la couleur de fond de page - la police - l'unité utilisée pour la taille de la police  */
    	background-color :#FFFFFF;
    	/*border:1px solid #9cbdff;*/
    	font-family: Arial, Sans-Serif;
    	font-size: 12px;
    }
    .odd {
    /*#eaf1dd, #d6e3bc, #c2d69b, #4e6128; #dbe5f1, #b8cce4, #95b3d7, #243f60*/
    /*background-color: #CCFFFF;*/
    background-color: #eaf1dd;
    }
    .even {
    background-color: #d6e3bc;
    }
    /* Input */
    #table_results
    {
    	/*margin-left : auto;margin-right: auto;*/
    }
    #table_results thead
    {
    border: #CCC 1px solid;
    background-color: #c2d69b;
    font-family: verdana, Arial, Sans-Serif;
    font-size: 12px;
    }
    /* Input */
    #table_results tr
    {
    /*margin-left: 1%;
    width: 58%;*/
    border: #CCC 1px solid;
    /*background-color: #FFCC66;*/
    font-family: verdana, Arial, Sans-Serif;
    font-size: 12px;
    }
    #table_results tr:hover, #table_results tr:focus
    {
    border: #999 1px solid;
    /*background-color: #DDEEFF;*/
    background-color: #c2d69b;
    }
     
    </STYLE>
     
    <table id="table_results" class="data" border="0">
     <thead>
    		<tr style="background-color:#060237; color:white;">
    			<th style="width: 15px;padding-left:5px;font-weight : bold;">N. ordre</th>
    			<th style="width: 350px;padding-left:5px;font-weight : bold;">Libellé de l'affaire</th>
    			<th style="width: 300px;padding-left:5px;font-weight : bold;">Observation</th>			
    			<th colspan="3" style="width: 30px;padding-left:5px;font-weight : bold;margin :3px">Actions</th>
     
    		</tr>
    	</thead>
    <tbody>
    <?php 
     
    if ( mysql_num_rows ($resultat) > 0 ) // si la requête n'est pas vide
    {
    $i = 0;
    while ( $ligne=mysql_fetch_row($resultat) ) // tant qu'il y des lignes de résultat
    {
      // Decode le base 64 
    $data = base64_decode($ligne[5]); 
     
    //$data = gzdecode($data); 
    $edit = unserialize($data);
     
    $i++;
    	if (($i%2)!=0) { 
    	echo"<tr class='odd'>";
    	}
    	else
    	echo"<tr class='even'>";
    	echo"<td class='' align=\"center\">".$i."</td>";
    	echo"<td class=''>".$a."</td>";
    	echo"<td class=''>".$b."</td>";
    	echo "<td align=\"center\"><input type=\"checkbox\" id=\"id_rows_to_delete".$i."\"  value=\"".$ligne[2]."\"  checked/></td>";
    	echo"</tr>";
     
    echo '<pre>';
    print_r($edit);
    echo '<pre>';
     
    } 
    ?>		
    </tbody>
     
     
    	<?php } 	?>	
    	</tbody>		
    </table>
    <?php } ?>
    En fait,les valeurs contenues dans $a et $b sont celles des 2 colonnes du tableau à afficher.Merci pour vos réactions car je sèche dessus depuis quelques jours

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $edit = unserialize($data);
    $a = $edit[0];
    $b = $edit[1];
    A la recherche d'un film : http://chercher-un-film.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Gabon

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réaction.seulement que ta proposition génère l'erreur suivante :
    Notice: Undefined offset: 0 in C:

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $edit = unserialize($data);
    print_r($edit);exit;
    $a = $edit[0];
    $b = $edit[1];
    Mettre un print_r pour nous afficher le contenu du $edit
    A la recherche d'un film : http://chercher-un-film.com

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/04/2007, 17h06
  2. Réponses: 2
    Dernier message: 26/12/2006, 13h49
  3. Réponses: 7
    Dernier message: 24/11/2006, 10h56
  4. Réponses: 3
    Dernier message: 11/01/2006, 18h44
  5. Réponses: 7
    Dernier message: 21/12/2005, 17h44

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