Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/12/2012, 17h47   #1
papilou38
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Du JavaScript vers MySQL

Bonjour,

Je veux créer une base de donnée sql contenant 18 attributs pour chacun des 500 fichiers d'un répertoire présent sur le serveur
(les fichiers sont des .gpx de mes randonnées, les attributs sont la longueur, la durée , le dénivelé etc..)


* la page traiteGPX.php lit les noms des fichiers du répertoire et les stocke dans la variable array fichier[]. Un script javascript (AJAX) calcule - pour chaque fichier[i] - les 18 attributs qui m'intéressent.
* la page envoimysql.php, récupère par $GET, les 18 données et les écrit dans la bdd mysql à la ligne fichier[i]

Je cherche la façon de construire la boucle qui écrirait la BD en passant de javascript à PHP
Est ce possible de faire les deux actions dans la même page ?

NB : J'ai écrit les parties qui fonctionnent en copiant des bouts de code que je comprends

ci joint le code (principe seulement) de la page traiteGPX

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
63
64
65
66
<head>
 
<script type="text/javascript">
 
function submitform()
{ document.myform.submit(); }
 
function lecturegpx(arg)
{
// calculs sur les données XML et stockage des résultats dans la variable globale resultat[]
resultat[1]=date;
resultat[2]=fichier;
resultat[3]=nb;
}
</script>
</head>
 
 
<body>
 
<?php
 
//*** on lit le répertoire et on charge $fichier[]	
// …..
$fichier= array();
 
while($element = readdir($dir)) 
	{$fichier[] = $element;}
 
$json= json_encode($fichier);
$i = 9;// en attendant de savoir faire la boucle sur tous les fichiers
 
?>
 
 
<script type="text/javascript">
var listgpx= Array();
var listgpx=<?php echo $json; ?> ;// passage de PHP à JS
j=<?php echo $i ;?>;
var fichier = listgpx[j];
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
 
xmlhttp.open("GET",fichier,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 
 
x= new Array();
x=xmlDoc.getElementsByTagName("trkpt");
//.…..
 
var resultat=new Array();
 
lecturegpx(fichier);
//à ce stade je dispose, chez le client, d'une variable JS resultat[], pour le $fichier[9]
</script>
 
<a href="javascript:document.getElementById('entree').value=resultat[]; submitform();"> envoi </a> <br /> 
<form name="myform" action="envoi_mysql.php" method="get">
<input id="entree" name="entree" type="hidden">
</form> 
 
</body >
</html>
Pour la page envoimysql

Code php :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
<head><meta content="text/html; charset=utf8" http-equiv="content-type">
<title>BDGPX</title>
// peut être qu'un header XML aiderait ici
 
</head>
<body>
<?php
include mysqlconnect;
 if ( isset($_GET['entree']))   
  { $nom=$_GET['entree'];		   
    echo "nom : ".$nom." <br>";
// reste à trouver comment "parser" ou évaluer cette chaine de caractères pour créer $date, $element, $nb     
   }
 
 
$element=$fichier[9];
 
$sql="INSERT INTO listeGPX  VALUES ( '$date', '$element','$nb')";
				mysql_query($sql)or die(mysql_error()); 
 
?>
 
 
</body>

vu la qualité de mon code, je m'attends à des railleries, donc je ne peux être que positivement surpris
papilou38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 18h20   #2
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 649
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 649
Points : 7 528
Points : 7 528
Envoyer un message via Skype™ à jreaux62
Bonjour,
pourquoi passer par JavaScript, alors que tout peut être fait directement en PHP ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h33   #3
papilou38
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Bonsoir,

c'est une bonne question !! Je n'avais pas envisagé cette solution .
J'avais passé beaucoup de temps à créer le JavaSript qui exploitait le XML d'un fichier .gpx.
Il peut y avoir jusqu'à 5 000 points dans un enregistrement .gpx et il faut récupérer 4 valeurs pour chaque point (date-heure,longitude, latitude, altitude).
Il me reste à trouver comment faire l'équivalent de ce traitement en PHP.

Merci quand même pour cette voie.
papilou38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h40.


 
 
 
 
Partenaires

Hébergement Web