PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   XML (https://www.php-resource.de/forum/xml/)
-   -   XML File nur geänderter Datensätze erzeugen (https://www.php-resource.de/forum/xml/91621-xml-file-nur-geaenderter-datensaetze-erzeugen.html)

drpunk 24-04-2008 13:57

XML File nur geänderter Datensätze erzeugen
 
Hallo Allerseits,
komme an die Grenzen meiner bescheidenen PHP Erfahrungen und weiss einfach nicht weiter, obwohl der Ansatz eigentlich ganz einfach wäre. Bin schon froh, dass ich eine einfache Abfrage irgendwie hinbekommen habe.

Ich möchte eine XML Datei erzeugen, die nur geänderte Datensätze ausgibt und nicht die ganze Datenbank. Da ich nach hundert Versuchen eigentlich überhaupt keinen Plan habe, wo ich da ansetzen muss.

Hier der Code, der für die Gesamtabfrage verantwortlich ist:
PHP-Code:

<?php

/**
 * @author Basisplanbasis.de
 * @copyright 2008
 */
header("Content-Type: application/xml; charset=ISO-8859-1");
?>
<?php
// 1. Verbindung zur Datenbank aufbauen: -------------------------------------------------------------
$hostname "localhost";
$username "xxx";
$password "xxx";
if(!
$conn mysql_pconnect($hostname$username$password)) {
    die(
"Verbindung zur Typo3 Datenbank konnte nicht hergestellt werden. Errorcode: ".mysql_error());
}
else {
    
//echo("Die Verbindung zur Datenbank wurde erfolgreich hergestellt.<br/>");
}
// ----------------------------------------------------------------------------------------------------

// 2. Datenbank auswählen: ----------------------------------------------------------------------------
$db "kundentypo3";
if(!
mysql_select_db($db)) {
    die(
"Die Datenbank $db konnte nicht ausgewaehlt werden. Errorcode: ".mysql_error());
}
else {
    
//echo("Die Datenbank $db wurde erfolgreich ausgewaehlt.<br/>");
}
// ----------------------------------------------------------------------------------------------------

// 3. SQL-Statement und Abfrage erzeugen und nur  geänderte Datensätze ausgeben: -------------------------------------------------------------
$sql "SELECT * FROM fe_users";
if(!
$query mysql_query($sql)) {
    die(
"Das SQL-Statement konnte nicht durchgefuehrt werden. Errorcode: ".mysql_error());
}
else {
    
//echo("Das SQL-Statement:<br/>$sql<br/>wurde erfolgreich abgesetzt.");
}
// ----------------------------------------------------------------------------------------------------

// 4. Daten auslesen und ausgeben: --------------------------------------------------------------------

echo('<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>');
?>
<XML-Kundenliste>
    <Kunden>
    <?php
    
while($theData mysql_fetch_array($query)) {

        echo(
"<Kunde>");
        echo(
"<Behandlerid>".$theData["behandler_id"]."</Behandlerid>");
        echo(
"<Vorname>".$theData["first_name"]."</Vorname>");
        echo(
"<Nachname>".$theData["last_name"]."</Nachname>");
        echo(
"<Anrede>".$theData["anrede"]."</Anrede>");
        echo(
"<Titel>".$theData["last_name"]."</Titel>");
        echo(
"<Firma>".$theData["company"]."</Firma>");
        echo(
"<Adresse>".$theData["address"]."</Adresse>");
        echo(
"<PLZ>".$theData["zip"]."</PLZ>");
        echo(
"<Ort>".$theData["city"]."</Ort>");
        echo(
"<Telefon>".$theData["telephone"]."</Telefon>");
        echo(
"<Fax>".$theData["fax"]."</Fax>");
        echo(
"</Kunde>");
    }
    
?>
    </Kunden>
</XML-Kundenliste>

lieben Dank für Eure Mühen schon mal im Vorraus,
liebe Grüsse,
Matthias (drpunk)

unset 24-04-2008 14:01

Naja, es muss ja irgendwo ein Kriterium geben, woran sich erkennen lässt, dass ein Datensatz geändert wurde. Das ist aus deinem Quelltext und auch aus deinem Post nicht ersichtlich.

drpunk 24-04-2008 14:20

Ei - sorry - natürlich:

es gibt da noch die Tabelle 'crdate' - die kommt jetzt im XML output gar nicht vor.
Es müsste nach 'crdate' ausgelsen werden.

unset 24-04-2008 14:21

Dann speicherst du irgendwo, wann du das letzte mal ausgelesen hast und holst dir nur die Einträge, bei denen crdate größer ist als der Zeitpunkt des letzten auslesen.

drpunk 24-04-2008 14:31

hui - kling einfacht.

aber wie programmiert man sowas in php? leider keinen plan

unset 24-04-2008 14:34

Das meiste davon ist SQL. Wie du ausliest und wie du einfügst wirst du sicherlich wissen. Ansonsten solltest du dir evtl. entsprechende Grundlagen anarbeiten. Fertigen Code bekommst du hier nicht. Generell passt der Thread hier eher in Projekthilfe. Da ist es auch schon wahrscheinlicher, dass man dir konkret Code gibt.

OffTopic:
Ich finde es auch immer wieder traurig, dass offensichtliche kommerzielle Anbieter hier kostenlosen Support wollen :(

drpunk 24-04-2008 15:02

hupsti - ich wollte Dich nicht verärgern und auch keine Vorurteile erzeugen...

Das mit den Grundlagen, da gebe ich Dir recht, dass habe ich ja auch gleich zu anfang bemerkt. Und daher könnte sich auch der Schluss ergeben, dass sich da kommerziell eh nicht viel machen ließe... *lol*

Ich bin php-mäßig ein absoluter Laie und daher NICHT kommerziell unterwegs in dieser Hinsicht. - (das sollen die dann machen, die sich damit auskennen) - das würde sich bei mir daher gar nicht lohnen *lol*

In meiner php "naivität" habe ich mir eben eingebildet, dass es sich hier um eine einfache if klausel handeln könnte - aber gut - dann lass ich dass sein, eine einfache Abfrage tut es auch.

Trotzdem danke für Deine Mühen,
liebe Grüsse,
Matthias


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:57 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG