8792 sujets

Développement web côté serveur, CMS

Bonjour toute la communauté,

Voici mon premier message sur le forum.
Comme dit la chanson bien connue:
"J'ai un problème ..." Smiley biggrin
Je plante le décors:
Pour mon boulot, j'ai besoin de créer une base de données avec 2 tables.
Dans 1 table je crée les Serveurs TSM avec leur Nom, leur Alias, leur Nom NetBios, leur Adresse IP, l'Adresse IP de leur carte RILOE et l'adresse IP de leur ROBOT associé. Jusque là aucuns problèmes. Là où ça se corse:
Quand j'ai créé le serveur il faut que remplisse la table 2 des clients que le serveur sauvegarde. Dans cette table il y aura le nom du serveur TSM, le nom du Node, le Nom NetBios du Client, son adresse IP et l'adresse IP de la Carte RILOE du client concerné.
Il y aura 1 enregistrement par Node.
En termes clairs il peut y avoir de 1 à X clients par serveur TSM.
Maintenant, si cela est assez clair pour vous, voilà mon problème: Smiley biggol
Suivant le nombre de client que je dois renseigner, avant de déverser les données dans la table 2, je souhaite à l'aide d'un formulaire, remplir un tableau ayant la structure suivante:
Indice 1: Case1 => NomDuServeurTSM
Case2 => NomDuNode
Case3 => NomNetBiosClient
Case4 => IPClient
Case5 => IPRiloeClient
Indice 2: Case1 => NomDuServeurTSM
Case2 => NomDuNode
Case3 => NomNetBiosClient
Case4 => IPClient
Case5 => IPRiloeClient
...
...
Indice X: Case1 => NomDuServeurTSM
Case2 => NomDuNode
Case3 => NomNetBiosClient
Case4 => IPClient
Case5 => IPRiloeClient

Une fois Indice X renseigné je déverse les données du tableau dans la table 2.

Mais voila je m'arrache les cheuveux depuis plusieurs jours, pour créer ce tableau.

Je pense que pour vous cela doit être simple mais pour moi qui débute dans PHP là je cale.

Merci d'avance pour votre aide et vos réponses.
A+
Caponord38
Observation 1 : Pourquoi dois-tu afficher X éléments ? Ca ne serait pas plus simple d'avoir un formulaire avec sulement les 5 champs et de passer à l'indice suivant par un bouton "Nouveau client", en stockant à chaque fois les 5 champs dans la BDD ?

Observation 2 : Si tu dois absolument afficher les X éléments, tu peux nommer tes champs, par exemple pour le 1er, "nom_serveur_tsm[]". Ainsi tu récupères via $_POST["nom_serveur_tsm"] un tableau des X NomServeurTSM. Tu obtiendras alors 5 tableaux de X valeurs. A l'aide de ces tableaux, tu peux créer alors une chaîne SQL pour insérer le tout dans ta table.
j'ai eu le meme genre de problème à résoudre pour un sytème de gestion de sejours de vacances.

ma solution a été la suivante :
création du formulaire avec des noms du style : NomServerTMS_1, ... NomServerTSMX

envoi du formulaire par POST
et ensuite parcours incrémental du tableau $_POST, en incrémentnat un ofset de parcours du nombre de champs par ligne de formulaire, jusqu'a ce que le tableau soit vide

mais est ce que ca la a bien quelque chose à voir avec les standards ?
Bonjour tout le monde,
marabbeh a écrit :
Observation 1 : Pourquoi dois-tu afficher X éléments ? Ca ne serait pas plus simple d'avoir un formulaire avec sulement les 5 champs et de passer à l'indice suivant par un bouton "Nouveau client", en stockant à chaque fois les 5 champs dans la BDD ?

Observation 2 : Si tu dois absolument afficher les X éléments, tu peux nommer tes champs, par exemple pour le 1er, "nom_serveur_tsm[]". Ainsi tu récupères via $_POST["nom_serveur_tsm"] un tableau des X NomServeurTSM. Tu obtiendras alors 5 tableaux de X valeurs. A l'aide de ces tableaux, tu peux créer alors une chaîne SQL pour insérer le tout dans ta table.

Merci pour les réponses mais ce que je souhaite,
Afficher un formulaire avec 5 Champs une fois que je valide le formulaire je remplis un tableau à plusieurs dimensions.
Ensuite je réaffiche le formulaire avec les 5 champs vides pour continuer à remplir le tableau ainsi de suite jusqu'à ce que je sois arrivé au nombre de Clients à déclarer.
Une fois tout ceci fait j'effectue une boucle pour pouvoir remplir ma base de données avec par lignes le contenu du tableau.
ai je été plus clair?

Si je me suis trompé de Salon j'en suis désolé et dites moi comment faire pour le mettre au bon endroit.

Merci
A+
Caponord38
ce n'est aps exactement ce que tu veux mais ... tu fait tout en une fois///


<?php

$nb_client = 10 //variable X clients ... reçu par formulaire ?

/*** Geberation du formualire : ***/
if(!$_POST['nbc'])    {	
	
	$sql = '';	
	for ($i=1;$i<$nb_client;$i++) $sql .= "INSERT INTO TaTable(id,NomDuServeurTSM,NomDuNode,IPClient,IPRiloeClient) Values('','{$_POST['NomDuServeurTSM']$i}','{$_POST['NomDuNode']$i}','{$_POST['IPClient']$i}','{$_POST['IPRiloeClient']$i}');"; 
	$req = mysql_query($sql) or die($sql.'<br/>'.mysql_error());
	
}else{
echo '<form method="post" action="">';
	
	for ($i=1;$i<$nb_client;$i++){
	echo'
	<filedset>
	<legend>Client N°'.$i.'</legend>
	<p><label for="NomDuServeurTSM"
		NomDuServeurTSM <input type="text" name="NomDuServeurTSM'.$i.'"  />
	</label></p>
	
	<p><label for="NomDuNode"
		NomDuNode <input type="text" name="NomDuNode'.$i.'"  />
	</label></p>
	
	<p><label for="IPClient"
		IPClient <input type="text" name="IPClient'.$i.'"/>
	</label></p>
	
	<p><label for="IPRiloeClient"
		IPRiloeClient <input type="text" name="IPRiloeClient'.$i.'"  />
	</label></p>
	</fieldset>
	';
	}
	echo '<p"><input type="submit" value="Valider" /><input type="hidden" value="'.$nb_client.' name="nbc"" /></p></form>'; 
	}

Modifié par Gectou4 (04 Jul 2006 - 04:16)