variable dans une cellule

Petit nouveau ! | 4 Messages

04 déc. 2012, 19:46

alors j'ai un tableau de cellules dynamique et je récupère un
$_GET['valeur']
dans une variable $valeur.

Puis en déclarant une variable
$_SESSION['tab_ligne']
variable que je vais mettre dans $tab[][].

j'aimerai que quand le $_GET['valeur'] renvoit $tab[1][1], la cellule affiche se qui est dans la variable.

exemble: $tab[1][1] contient le chiffre 22

je veux que en tapant $tab[1][1] dans la cellule il m'affiche 22

voila la parti du code ou je pense que j'ai mon problème, il fonctionne mais pas pour se que je veux.
  if(!isset($_GET['champ']) or empty($_GET['champ']) or !isset($_GET['valeur']) or (empty($_GET['valeur']) and 
  ($_GET['valeur'] != 0)) or !isset($_GET['echap']) or empty($_GET['echap']) or
  !isset($_GET['id']))
  {
    print "Erreur dans les paramètres fournis";
    exit;
  }
  require('common-top.php');

  //Construction de la requète
  $champ  	= $_GET['champ'];   
  $valeur 	= $_GET['valeur'];// C'EST ICI QUE CA SE PASSE !!! faire un genre de echo de la valeur mais ji arrive pas
  $id			= $_GET['id'];
  $table = $_GET['table'];

  
  $sql = "UPDATE `" . $table . "` SET $champ=";
  
  //Il faut éventuellement formater la valeur fournie
  if($_GET['echap'] == "true")
  {
  	$valeur = mysql_real_escape_string($valeur);
  	$sql .= "'$valeur'"; //Concatene 2 chaine ensenble sql = sql + $valeur;
  }
  else
			///////gérer la multiplicité des tableaux
  	$sql .= $valeur;
	$sql .= " WHERE ID_ligne=$id";
  //Exécution de la requète
  	mysql_query($sql) or die("Erreur BDD : " . mysql_error());

  require('common-bottom.php');

ViPHP
xTG
ViPHP | 7331 Messages

04 déc. 2012, 21:42

Va falloir nous en dire plus sur ton contexte, car là en réfléchissant j'ai soit une usine à gaz de la mort qui tue soit une faille de sécurité énorme à te proposer...

Petit nouveau ! | 4 Messages

04 déc. 2012, 22:28

haaa xTG je suis content que quelqu'un daigne s’intéresser a mon cas.

si tu veux mon code entier, je peux te le passer.
en se qui concerne le contexte j'ai un tableau type excel fait avec un module AJAX qui s'apelle inlineMod
http://olance.developpez.com/articles/w ... #LII-2-d-i

peut être peut on prendre contact par mail si tu as des idées.

mon mail c'est [email protected]

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2012, 09:55

Gaaaah j'ai perdu mon long message à cause du proxy...

Bon plus le temps de rédiger un joli code donc j'explique le principe.
Tu explose ta chaîne pour dissocier les index (un explode sur le caractère '['), dans le premier index retourné tu auras le nom de la variable.
Et dans les autres les index avec le caractère ']' que tu peux supprimer.
Ensuite dans le principe tu appelles une fonction récursive qui va dépiler le tableau d'index.
Grosso-merdo :
recursive($tab, array(1, 2))
  recursive($tab[1], array(2) )
    => $tab[1][2]

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2012, 17:33

Voici un exemple pour la fonction récursive :
$tab = array(
  array( '00', '01', '02'),
  array( '10', '11', '12')
);
$index = array(1, 2);

function recursive($arrayVal, $array_index){
  if( empty($array_index) || empty($arrayVal) )
    return false; // l'un des deux tableau est vide
  // on dépile le premier index
  $index = array_shift($array_index);
  if( !isSet($arrayVal[$index]) )
    return false; // l'index n'existe pas
  if( !empty($array_index) ){
    return recursive($tab[$index], $array_index); // on réappelle pour l'index suivant
  }else{
    if( !empty($array_index) )
      return false; // il reste des index mais pas dans arrayVal
    else
      return $arrayVal[$index]; // on a trouvé notre valeur
  }
}

$ret = recursive($tab, $index);
var_dump($ret); // 12
A tester. :)

Petit nouveau ! | 4 Messages

08 déc. 2012, 21:47

J'ai énormément de mal à faire des tests j'aurai vraiment besoin d'aide en donnant mon code pour voir les modifications à apporter.

ViPHP
xTG
ViPHP | 7331 Messages

09 déc. 2012, 15:32

Je doute que tu trouves une personne qui ai le temps de te dépanner un code complet...
On est tous bénévoles sur nos temps libre ici.
Si tu n'es pas capable de te dépatouiller assez pour nous montrer un bout de code impliqué parmi la masse...