Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 10h51   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 2
Points : 2
Par défaut Tableau prérempli + envoie de donnée dans BDD

Bonjour à tous,

J'ai un site web mis en place avec joomla. Je me doute que sur ce forum, ce doit être assez mal vu mais je n'ai pas les connaissances ni le temps pour coder un site. Bref sur ce site joomla, j'ai des articles qui sont essentiellement des tableaux.

Je ne vois pas très bien comment l'expliquer mais en gros, beaucoup de gens vont rentrer des informations dans ces tableaux.

J'aimerai donc avoir certaines cellules pré-remplies et d'autres, quand l'utilisateur entrera en mode édition et comblera la cellule vide, la donnée sera stocké dans une cellule d'une base de donnée oracle (10g).

Une fois qu'un tableau est entièrement complété, la suite me parait logique, sans rentrer dans le mode édition on voit le tableau avec les données qui ont été inscrite, si on rentre dans le mode édition, et que l'on modifie une cellule, cela modifiera la donnée présente dans la base.

Joomla ne permet pas cela et ces tableaux ne sont pas très esthétique non plus. Je me suis donc dit que le php serai donc le plus a même à correspondre. En utilisant l'éditeur wysiwyg de joomla, je peux rentrer du code php donc pas de restriction la dessus.

J'ai consulté quelques sites traitant du sujet, certains parle d'aray, d'autre de base mysql, mais j'ai rien vu traitant de base oracle.

Avez vous une piste à me donner ? Par quoi dois-je commencer ? Remplir une base de donnée et apprendre le code qui appellera les données et en enverra aussi ? Ou bien fonctionné avec les array ?
balbitus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 14h38   #2
Membre actif
 
Avatar de el_pedro
 
Homme Pierre PLAZANET
Inscription : août 2008
Messages : 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre PLAZANET
Âge : 25
Localisation : France

Informations forums :
Inscription : août 2008
Messages : 199
Points : 194
Points : 194
Salut.

Apparemment tu n'as pas les compétences de base en PHP... donc expliquer comment fonctionne l'ARRAY et les liaisons entre PHP et une base de données (MySQL en l’occurrence si je ne me trompe, pas réellement oracle) revient à expliquer presque toute le fonctionnement de base de PHP.

En commençant par lire ce tutoriel, tu pourra voir les bases de PHP. Concentre toi sur les formulaires et la liaison avec la base de données et tu devrai trouver ton bonheur.

Je suis désolé de rester aussi vague. Mais tu demande de résumer des heures d'explications et d’entraînement en quelques lignes... ce qui me semble impossible sur un forum.
el_pedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 16h25   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 2
Points : 2
Oui je me doutais que ça allais pas être simple.
Je vais suivre ton lien et voir ce que ça me donne.

Concernant la base c'est bien avec une base oracle 10g que je dois travailler. Pour le moment j'effectue tout mes test sur du mysql mais dès que je suis à peu près sur de moi concernant php et mon site web je basculerai mon travail sur oracle.

Si d'autres personnes ont des liens ou des points que je devrai étudié également, n'hésitez pas

merci a toi el_pedro
balbitus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 17h03   #4
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 2
Points : 2
Bonjour à tous,

J'ai lu le tutoriel et commencé à coder mais j'ai désormais une question (ou plusieurs si vous avez le courage d'allez jusqu'à la fin) :

Comment récupère t'ont une clé auto incrémenté lors d'un POST ?

Voici une vision du code,
ceci est la page "test.php" qui appelle "view.php"
Code :
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
 
<?php
include("fonctions.php");
?>
<html>
<head><title>tableau</title></head>
<body>
	<?php
	connectMaBase();
	$sql1 = 'SELECT * FROM tablerep WHERE ID="1086"';
	$req1 = mysql_query($sql1) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
	while($result=mysql_fetch_array($req1))
	{
 
	$busin = $result[1];
	$apli = $result[2];
	$desc = $result[3];
	}
	mysql_free_result ($req1);
 
	mysql_close();
	?>
	<br />
		<form name="application" method="post" action="view.php"> <br/>
			<TABLE BORDER="1" width="100%">
 
				<CAPTION> Voici le titre du tableau </CAPTION>
				<TR>
					<td> <?php echo $busin ?> </td>
					<td> <input type="text" name="aplmanagement"/> </td>
				</TR>
				<TR>
					<td> <?php echo $apli ?> </td>
					<td> <input type="text" name="aplname"/> </td>
				</TR>
				<TR>
					<td> <?php echo $desc ?> </td>
					<td> <input type="text" name="apldescription"/> </td>
				</TR>
			</TABLE> 
			<br />
			<input type="submit" name="valider" value="OK"/>
		</form>
Avec ceci j'ai donc mon tableau pré rempli, les informations entrées dans la table avec l'identifiant 1086 ne changeront jamais donc j'ai bidouillé comme ca.

Mon problème c'est la suite :

Code :
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
<?php
include("fonctions.php");
?>
<html>
<head><title>tableau</title></head>
<body>
	<?php
	$aplmanagement1=$_POST['aplmanagement'];
	$aplname1=$_POST['aplname'];
	$apldescription1=$_POST['apldescription'];
 
	connectMaBase();
 
	$sql2 = 'INSERT INTO tableapli VALUES ("","'.$aplmanagement1.'","'.$aplname1.'","'.$apldescription1.'")';
	$req2 = mysql_query ($sql2) or die ('Erreur SQL !'.$sql2.'<br />'.mysql_error());
 
	$sql1 = 'SELECT * FROM tablerep WHERE ID="1086"';
	$req1 = mysql_query($sql1) or die ('Erreur SQL !'.$sql1.'<br />'.mysql_error());
	while($result=mysql_fetch_array($req1))
	{
 
	$busin = $result[1];
	$apli = $result[2];
	$desc = $result[3];
	}
	mysql_free_result ($req1);
 
	$sql3= 'SELECT * FROM tableapli WHERE IDapli="0"';
	$req3 = mysql_query($sql3) or die ('Erreur SQL !'.$sql3.'<br />'.mysql_error());
	while($result3=mysql_fetch_array($req3))
	{
 
	$aplmanagement2 = $result3[1];
	$aplname2 = $result3[2];
	$apldescription2 = $result3[3];
	}
 
	mysql_close();
	?>
	<br />
			<TABLE BORDER="1" width="100%">
 
				<CAPTION> Voici le titre du tableau </CAPTION>
				<TR>
					<td> <?php echo $busin ?> </td>
					<td> <?php echo $aplmanagement2 ?></td>
				</TR>
				<TR>
					<td> <?php echo $apli ?> </td>
					<td> <?php echo $aplname2 ?> </td>
				</TR>
				<TR>
					<td> <?php echo $desc ?> </td>
					<td> <?php echo $apldescription2 ?> </td>
				</TR>
			</TABLE> 
			<br />
	<?php
 
	?>
</body>
</html>
Je suis bloqué au niveau des clés primaire etc.

Dans mon code j'ai mis une requête where idapli=0 mais en fait je voudrais récupéré l'id qui se crée lorsque le formulaire est envoyé. Voyez vous comment faire ?

Sachant que la plupart du site est fait avec joomla, je ne sais pas si une sorte de compteur sera utile, sachant en plus que le même code sera peut être utilisé pour modifier une page déjà existante et qu'a ce moment là, l'id reste le même.

Avez vous des suggestions concernant le code ? (mal rédiger à certains endroits ou autre)

J'aurai sans doute d'autres questions par la suite, je n'ai toujours pas réfléchit à l'intégration de ce code dans la structure du site joomla, étant donné que les tableaux seront dans des articles, que certains tableaux seront déja rempli donc le premier code sera utilisé pour modifier, qu'il y a déja un identifiant pour les articles fait automatiquement par joomla... bref, ya encore du boulot ^^

Je ne sais pas si ma méthode de travail est la bonne, je tape le code et vois comment ca marche, et au fur et à mesure quand je vois des nouveaux trucs à ajouter, j'essaye d'adapter...
balbitus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 17h41   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
t'es sous oracle ou mysql ?

Citation:
la donnée sera stocké dans une cellule d'une base de donnée oracle (10g)
Citation:
Code :
$req1 = mysql_query($sql1)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 09h05   #6
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 2
Points : 2
Pour le moment je travaille avec mysql. J'adapterai le code par la suite pour fonctionner avec oracle mais je voulais d'abord me familiariser avec le php avant de faire l'acquisition du serveur et de la license oracle.

EDIT : Je viens de trouver la réponse à ma question :
mysql_insert_id(); rapporte le dernier id incrémenté lors de la connection à la base donc dans mon code j'ai juste rajouté :

Code :
1
2
3
$sql2 = 'INSERT INTO tableapli VALUES ("","'.$aplmanagement1.'","'.$aplname1.'","'.$apldescription1.'")';
	$req2 = mysql_query ($sql2) or die ('Erreur SQL !'.$sql2.'<br />'.mysql_error());
	$idincrement = mysql_insert_id();
puis j'ai changé cette ligne :

Code :
$sql3= 'SELECT * FROM tableapli WHERE IDapli="'.$idincrement.'"';
Donc maintenant je pense attaquer le plus dur...

- Mon tableau est dans un article joomla, si le tableau à déjà été rempli une première fois, j'aimerai que le formulaire n'apparaisse pas mais montre ce qui a été remplit précédemment (je suppose qu'en retrouvant l'id de l'article et en le liant a la table apli dès son incrémentation ca devrai me faire une piste de départ).

- Ensuite j'aimerais mettre en place un système permettant de modifier les champs qui ont été incrémentés (imaginons que la personne se soit trompée et ait tout de même validé, je ne veux pas qu'elle retape à nouveau le formulaire, avoir un doublon dans ma base, etc...)

- Puis intégrer tout ça à joomla

Si vous voyez d'autres choses, avez des idées d'amélioration ou tout autre conseil a me donner, s'il vous plait, faite !
balbitus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h32.


 
 
 
 
Partenaires

Hébergement Web