Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
XML File nur geänderter Datensätze erzeugen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
XML File nur geänderter Datensätze erzeugen


 
drpunk
24-04-2008, 14:57 
 
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

/**
* @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, 15: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, 15: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, 15: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, 15:31 
 
hui - kling einfacht.

aber wie programmiert man sowas in php? leider keinen plan

 
unset
24-04-2008, 15: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.

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

 
drpunk
24-04-2008, 16: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 22:43 Uhr.