begin process at 2012 05 30 19:58:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Autre

 > 

Mise d'une BDD par un fichier XML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mise d'une BDD par un fichier XML

mercredi 22 septembre 2010 à 12:38:19 | Mise d'une BDD par un fichier XML

gnut

Bonjour,
J'ai réalisé (avec l'aide de "neige" d'ailleurs) un fichier .php permettant d'insérer ou de modifier une table de ma BDD selon un fichier XML régulièrement modifié.
Le souci est que je n'ai toujours pas trouvé le moyen de supprimer les lignes obsolètes de ma table.

Code PHP :
<?php



//-------------------------------------------------------------------    



//désactiver magic_quotes



if (get_magic_quotes_gpc()) {
$input = array(&$_GET, &$_POST, &$_COOKIE, &$_ENV, &$_SERVER);while (list($k,$v) = each($input)) {

foreach ($v as $key => $val) {

if (!is_array($val)) {$input[$k][$key] = stripslashes($val);continue;}
$input[] =& $input[$k][$key];}

}

unset($input);}
//-------------------------------------------------------------------



//start--------------------------------------------------------------





session_start();require_once('classes/all_adm_fns.php');//changement du level du raport d'erreur a E_ALL 

//pour detecter la plupart des variables non initialisées

error_reporting(E_ALL);//-------------------------------------------------------------------



//--------------------------------------------------------------------



//Verifier si le super admin est connécté



if( !empty($_SESSION['valid_admin']) )
{
$valid_admin = $_SESSION['valid_admin'];}
if( !check_valid_all() )
{
redirect( "index.php" );exit;}
//--------------------------------------------------------------------



//-------------------------------------------------------------------



error_reporting(E_ALL);
mysql_connect('...) or die('Erreur de connexion '.mysql_error());mysql_select_db('...');

//////////////////////Wizzimmo



function prepare_string(SimpleXMLElement $sxe) {
return mysql_real_escape_string(utf8_decode((string) $sxe));
}

if (file_exists('exemple_wizzimmo.xml')) 
{
$Agences_xml = simplexml_load_file('exemple_wizzimmo.xml');

foreach ($Agences_xml->Agence as $Agence){print "Nom d'agence : ";

////////////////// Vérification///////////////
var_dump($Agence->CodeAgenceInterne);
print " <br />\n";
print "N° téléphone: {$Agence->Telephone1_Agence} <br />\n";
print "email: {$Agence->EMAIL_Agence} <br />\n";
print "Référence annonce client : {$Agence->Annonce->Reference} <br />\n";
print "Type d'annonce : {$Agence->Annonce->TypeAnnonce} <br />\n";
print "Date Modification : {$Agence->Annonce->DateModification} <br />\n";
print "Code postal : {$Agence->Annonce->CodePostal} <br />\n";
print "Ville : {$Agence->Annonce->Ville} <br />\n";
print "titre : {$Agence->Annonce->Titre} <br />\n";
print "Ann : {$Agence->Annonce->Texte} <br />\n";
print "Prix : {$Agence->Annonce->Prix} <br />\n";
print "Surf habitable: {$Agence->Annonce->Surf_Hab} <br />\n";
print "Nb Pieces : {$Agence->Annonce->NbPieces} <br />\n";
print "Département : {$Agence->Annonce->CodePostal} <br />\n";
print "Les photos : <br />\n";
var_dump($Agence->Annonce->URL_Photo);
print " <br />\n";
var_dump($Agence->Annonce->URL_Photo[1]);
print " <br />\n";
var_dump($Agence->Annonce->URL_Photo[2]);
print " <br />\n";
var_dump($Agence->Annonce->URL_Photo[3]);
print " <br />\n";
var_dump($Agence->Annonce->URL_Photo[4]);
print " <br />\n";
////////////////// Vérification///////////////

///////////////////Spécificité catégories ////////////////////////////////

if((string)$Agence->Annonce->TypeAnnonce == "VENTE" ) 
{$Typeann= "72";
}
else
{
$Typeann = "71";}

///////////////////////Spécificités constantes///////////////////////////
$password = 'imoconseil201025';
$sta = '2';
$conf = '1';
$val = '1';
$ra ='0';
$re ='1'; ///// à voir plus tard
$time = time();
$ipadresse = '79.91.192.30'; ///// à voir plus tard
$rand = '';

///////////////////////Spécificité tag agence////////////////////////////
$nom = prepare_string($Agence->CodeAgenceInterne);
$telag = (string)$Agence->Telephone1_Agence;
$mail = prepare_string($Agence->EMAIL_Agence);

///////////////////////Spécificité tag agence->annonce///////////////////
$ref = (string)$Agence->Annonce->Reference;
$vil = prepare_string($Agence->Annonce->Ville);
$cod = (string)$Agence->Annonce->CodePostal;
$de = (string)$Agence->Annonce->CodePostal;
$titre = prepare_string($Agence->Annonce->Titre);
$desc = prepare_string($Agence->Annonce->Texte);
$pri = (string)$Agence->Annonce->Prix;
$surf = (string)$Agence->Annonce->Surf_Hab;
$nbpiece = (string)$Agence->Annonce->NbPieces;
$pho1 = (string)$Agence->Annonce->URL_Photo;
$pho2 = (string)$Agence->Annonce->URL_Photo[1];
$pho3 = (string)$Agence->Annonce->URL_Photo[2];
$pho4 = (string)$Agence->Annonce->URL_Photo[3];
$pho5 = (string)$Agence->Annonce->URL_Photo[4];

/////////////////////// Mysql annonces //////////////////////////// 
$sql1 = "SELECT ref_annonce_client, soc_nom FROM annonces WHERE ref_annonce_client ='$ref'";
$query1 = @mysql_query($sql1);
$result1 = result_to_array($query1,2);

////////////////////vérification
print " <br />\n";
echo "Ref : ".$result1[0][0];
print " <br />\n";
echo "Nom : ".$result1[0][1];
print " <br />\n";
print " <br /><hr />\n";
////////////////////Fin vérification

if( ($result1[0][0] == $ref) && ($result1[0][1] == $nom) )
{
mysql_query("UPDATE annonces SET id_reg='$re', id_dep=LEFT('$de',2), id_cat='$Typeann',     email='$mail',     ville='$vil',     code_pos='$cod',     status='$sta',     soc_nom='$nom', nom='$nom', tel='$telag',     titre='$titre',     radio='$ra',     ann='$desc',     prix='$pri', Surface='$surf',     Piéces='$nbpiece', random_code='$rand', confirm='$conf', valid='$val', url_pho1='$pho1', url_pho2='$pho2' ,url_pho3='$pho3' , url_pho4='$pho4', url_pho5='$pho5' WHERE ref_annonce_client='$ref' AND nom='$nom'");
}
else
{
mysql_query("INSERT INTO annonces (ref_annonce_client,     id_reg,     id_dep,     id_cat,     email,     password,     ville,     code_pos,     status,     soc_nom,     soc_siren,     type,     nom,     tel,     titre,     radio,     ann,     prix,     Kilométrage,     Année_Modéle,     Cylindrée,     Surface,     Piéces,     Capacité,     random_code,     confirm,     valid,     date,     tel_cache,     ip, url_pho1, url_pho2 ,url_pho3 , url_pho4, url_pho5 )VALUES('$ref',     '$re',     LEFT('$de',2),     '$Typeann',     '$mail ',     '$password',     '$vil',     '$cod',     '$sta',     '$nom',     '',     '1',     '$nom',     '$telag',     '$titre',     '$ra',     '$desc',     '$pri',     '',     '',     '',     '$surf',     '$nbpiece',     '',     '$rand',     '$conf',     '$val',     '$time',     'N',     '$ipadresse', '$pho1', '$pho2', '$pho3', '$pho4', '$pho5')")

or die("Erreur MySQL : ".mysql_error());
}

/////////////////////// FIN Mysql annonces //////////////////////////// 


} //////////////fin foreach


} //////////////fin file_exist
else 
{
exit('Echec lors de l\'ouverture du fichier XML.');
}

?>
mercredi 22 septembre 2010 à 14:44:37 | Re : Mise d'une BDD par un fichier XML

gnut

Est-ce que quelqu'un aurait une petite idée pour que les lignes obsolètes de la Table soient suppriméee à l'exécution du script?

Merci.
mercredi 22 septembre 2010 à 14:46:46 | Mise à jour d'une table avec les données d'un fichier XML.

gnut

Est-ce que quelqu'un aurait une petite idée pour que les lignes obsolètes de la Table soient suppriméee à l'exécution du script?

Merci.
mercredi 22 septembre 2010 à 15:27:43 | Re : Mise d'une BDD par un fichier XML

Lyle56

Bonjour,

Une solution consisterai à avoir un champ de "controle" ( genre isInXml )
que tu met à false au début de ton script ( un simple update )

Tu ajoute à tes requéte Insert et Update se qu'il faut pour que isInXml passe à True.

En fin de script; tu efface tout les enregistrement qui ont isInXml à false.

c'est une solution, il peut y en avoir d'autre.
mercredi 22 septembre 2010 à 16:22:10 | Re : Mise d'une BDD par un fichier XML

gnut

Merci pour ta réponse, effectivement ce serait pas mal.
Y aurait-il une solutions qui permette de ne pas changer ma ma Table?
mercredi 22 septembre 2010 à 17:43:18 | Re : Mise d'une BDD par un fichier XML

Lyle56

Il pourrais y en avoir une mais comme je n'est pas la structure de ta table;

Je vois les champs 'status' 'valid' 'date'

à quoi cela correspond t'il ??
mercredi 22 septembre 2010 à 18:01:09 | Re : Mise d'une BDD par un fichier XML

gnut


Voila :
'status' >> particulier ou prof. valeurs 1 ou 2
'valid' >> affichage ou non de l'annonce valeurs 1 ou 0
'date' >> date la mise en ligne (format time())
jeudi 23 septembre 2010 à 09:41:15 | Re : Mise d'une BDD par un fichier XML

Lyle56

Une autre question :

dans ton fichier XML, tu as toutes les annonces à afficher avec la date de mise en ligne ??

Si c'est le cas, tu peut utiliser ce champs pour ton contrôle.
jeudi 23 septembre 2010 à 10:06:59 | Re : Mise d'une BDD par un fichier XML

gnut

je vais essayer ça.
Merci Lyle56.
jeudi 23 septembre 2010 à 11:18:31 | Re : Mise d'une BDD par un fichier XML

neigedhiver

Ou alors stocker le champ de contrôle dans une table temporaire dont les deux champs seraient : le champ de contrôle et l'ID de la table en question.
La procédure est la même mais ne nécessite pas de modifier la table.
Seul bémol : les performances qui s'en trouvent dégradées ; mais ça ne doit pas être important, puisqu'il s'agit d'une action d'administration, pas d'une action effectuée à chaque chargement de page.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : string, url, print, annonce, agence


Répondre à ce message

Sujets en rapport avec ce message

Correspondances XML mysql [ par gnut ] Salut, j'ai un souci d'enregistrement dans ma BDD. Les Print sont bons mais dans la BDD tous les $Agence->Annonce->... n'enregistrent que des 0 ou ri site de petite annonce [ par marochi ] bjr; j'ai un problème je veux realiser un site de petite annonce comme ce si [url=http://www.leboncoin.fr/bureaux_commerces/79374802.htm?ca=4_s]comme afficher un champ d'un base de donnée sous forme d'url [ par xzonz ] Bonjour a toutes et tousbon bin voila je cherche à afficher le champ "url" d'une base de donnée sous forme de liens hypertexte.j'ai essayé pas mal de champs formulaire <option> avec MySQL [ par pyranhaz ] Est-il possible de faire intervenir la sélection d'un champs dans une table MySQL de manière à retourner une redirection URL selon le champs choisi formulaire [ par Tomcube ] SalutJ'ai un problème complètement bizarre.J'ai un formulaire avec des champs "titre", "section", "titre0" et "astuce0". Lorsque je rempli les 4, et q registers globals & sessions [ par eax ] salutjuste une petite question, depuis que j'ai passé register_globals à off, je n'arrive plus à retrouver ma variable anciennement appelée $PHPSESSID Question print et echo. [ par zzzzzz ] salut !!voila mon code:include('connection_mysql.php');$date = "date('d/m/y') date('H:i')";$sql = "INSERT INTO `article_valid` (`section` , `rituel` , piti pb d'url [ par Morgul ] j'ai un formulaire avec un bouton et une zone de texte (ki sapelle valeure), j'ai utilisé la méthode get et comme action j'ai: page1.php?tmp=table, ma Récuperer des infos sur un site [ par Looping2605 ] Dans le cadre du developpement de mon site web, j'aimerais savoir si c'est possible d'aller rechercher des infos sur un autre site (juste 3 mots qui s HELP ! URL simplifiée [ par xphilx ] je fais un système de profils, genre page perso. les visiteurs sont connus dans la BDD par $username et leur page s'appelle fiche.php?$username.Commen


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales