Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 24/01/2010, 18h46   #1
Invité de passage
 
Inscription : janvier 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 2
Points : 1
Points : 1
Par défaut Insertion de données xml dans bdd mysql

bonjour tout le monde.

J'ai un petit souci et je me tourne vers vous pour savoir si cela est déjà arrivé à quelqu'un ou si un de vous pourrais m'aider.

Voilà, je souhaite insérer des données récupérées automatiquement dans des fichiers xml distants (en entrant l'URL du fichier).

Ma procédure est simple en soit :
1) je récupère le fichier
2) pour chaque article je récupère les infos que je veux (avec foreach)
3) je les transfère chacunes dans des variables
4) je fais un INSERT dans ma bdd avec toutes les variables

Le problème est que, lorsque j'affiche seulement les variables, tout marche normalement, mais à partir du moment où je veux les insérer, cela me bloque.

Je vous met le code, j'espère que quelqu'un pourra m'orienter vers une solution, parce que ca fait un moment que je cherche et je n'y arrive pas...

Merci d'avance.

Le code :

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
if (isset($_GET['url']))
		{
			$files = $_GET['url'];
 
		$produit = simplexml_load_file($files);
		$carac = $produit->children();
		foreach ($carac as $car)
			{
			$nom = $car->nom;
			$marque = $car->marque;
			$desc = $car->descriptif;
			$lien = $car->url;
			$prix = $car->prix;
			$devise = $car->prix['monnaie'];
			switch ($devise) {
			case "euro": $devise = '€'; break;
			}
			$img = $car->imgorig;
			if ($img=='')
			{
				$img= $car->image400;
			}
			echo "<tr><td><img src=".$img." width=50></td><td>".$nom."</td><td>".$marque."</td><td>".$prix." ".$devise."</td>
				<td>
					<SELECT name='famille'>
									<option value=''></option>
									<option value='accessoire'>Accessoire</option>
									<option value='bijoux'>Bijoux</option>
									<option value='chaussures'>Chaussures</option>
									<option value='coussin'>Coussin</option>
									<option value='idcadeau'>Idée Cadeau</option>
									<option value='lingedelit'>Linge de lit</option>
									<option value='lingedetable'>Linge de table</option>
									<option value='luminaire'>Luminaire</option>
									<option value='petitmobilier'>Petit mobilier</option>
									<option value='rangement'>Rangement</option>
									<option value='sac'>Sac</option>
									<option value='objet'>Objet</option>
									<option value='vetement'>Vêtement</option>
									</select>
				</td>
			</tr>";
			$reqinsert = "INSERT INTO `produit` (`numprod`,`nomprod`,`createur`,`prix`,`devise`,`desc`,`adrimg`,`adrlien`,`famille`,`tag`,`comperso`,`visible`)
	VALUES (
	NULL , '$nom', '$marque', '$prix', '$devise', '".addslashes($desc)."', '$img', '$lien', '', '', '', 'x')";
			$query = mysql_query($reqinsert) or die("Erreur d'insertion");
			}
 
 
		}
 
	else {echo "Pas de source sélectionnée";}

Dernière modification par sabotage ; 24/01/2010 à 19h30.
mathcanto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 10h23   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 238
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 238
Points : 2 591
Points : 2 591
Salut

Citation:
Le problème est que, lorsque j'affiche seulement les variables, tout marche normalement, mais à partir du moment où je veux les insérer, cela me bloque.
C'est quoi qui te bloc ?
Aucune insertion dans la BDD ?
Il y a des insertions mais du contenu non attendu, non conforme ?

As tu un message d'erreur ? S'il n'y a pas d'insertion alors que tu vois les données affichées, tu devrais justement avoir un message d'erreur.
Regarde dans tes logs d'erreurs Php (php_error.log).
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 10h56   #3
Invité de passage
 
Inscription : janvier 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 2
Points : 1
Points : 1
Salut.

en fait, je me suis mal exprimé, les enregistrements ne se faisaient pas dans la table.

Mais je viens de résoudre le souci, c'était un problème de ponctuation entre ma requête dans le code et les informations qui transitaient.

Dans les infos que je voulais faire passer, il y avait des apostrophes et j'ai du remplacer les apostrophes de mon code par des guillemets... Des heures de prise de tête pour ça...

Enfin ça marche ! Merci quand même pour l'interêt porté à ma question !
mathcanto est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h49.


 
 
 
 
Partenaires

Hébergement Web