Δεδομένα εξαγωγή από php σε αρχείο

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 27 Μαρ 2012 21:15

Καλησπέρα σε όλους.
Μήπως γνωρίζει κανείς αν μπορώ με κάποιον τρόπο να εξάγω δεδομένα από μία φόρμα html με php σε κάποια μορφή αρχείου και μετά αυτό το αρχείο να το φορτώνω με κάποια φόρμα και να διαβάζει πάλι τα δεδομένα και να τα αντιστοιχεί με την βάση δεδομένων?Μήπως θα χρειαστώ xml?ή υπάρχει άλλος τρόπος?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από dva_dev » 27 Μαρ 2012 22:01

Νομίζω πως το καλύτερο είναι xml.
Μπορείς σε πρώτο επίπεδο να έχεις τον κωδικό του πελάτη και σε 2ο επίπεδο και κάτω να αναλύεις με βάση την ημερομηνία παραγγελίας (τη δημιουργία του αρχείου), τους κωδικούς και τις ποσότητες που θέλει και ότι άλλο σκεφτείς.

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 30 Μαρ 2012 09:53

dva_dev μήπως έχεις κανένα παράδειγμα ή βοήθημα για αυτόν τον σκοπό? Θα με βοηθούσε πολύ.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από korgr » 30 Μαρ 2012 11:55

Από αρχείο που εξάγει δεδομένα βάσης mySQL σε XML για χρήση έντυπου οδηγού (import σε indesign)

Κώδικας: Επιλογή όλων

$query="select  * from companies where comp_active=1 ";
$result=mysql_query($query);
$rows=mysql_num_rows ($result);
if($rows){
echo '<?xml version="1.0" encoding="utf-8" ?><br>';
echo '<records><br>';
while&#40;$row=mysql_fetch_array&#40;$result&#41;&#41;&#123;
	echo "<record><br>";
		echo "<name>".$row&#91;comp_name&#93;."</name><br>";
		echo "<category>".getname&#40;"company_cat", $row&#91;compcat_id&#93;&#41;."</category><br>";
		echo "<address>".$row&#91;comp_address&#93;."</address><br>";
		echo "<zipcode>".$row&#91;comp_zipcode&#93;."</zipcode><br>";
		echo "<city>".getname&#40;"cities", $row&#91;comp_city&#93;&#41;."</city><br>";
		echo "<county>".getname&#40;"county", $row&#91;county_id&#93;&#41;."</county><br>";
		echo "<phone>".$row&#91;comp_tel&#93;."</phone><br>";
		echo "<fax>".$row&#91;comp_fax&#93;."</fax><br>";
		echo "<email>".$row&#91;comp_email&#93;."</email><br>";
		echo "<url>".$row&#91;comp_link&#93;."</url><br>";
		echo "<description><br><!&#91;CDATA&#91;<br>".stripslashes&#40;$row&#91;comp_desc&#93;&#41;."&#93;&#93;><br></description><br>";
	echo "</record><br>";
&#125;
?>
</records><br>
<?php
&#125;
?>
Αντικαθιστάς τα br με PHP_EOL (αλλαγή γραμμής)
Εγώ τους το έχω με BR για να κάνουν copy paste τα περιεχόμενα που τους παρουσιάζει ο browser

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 30 Μαρ 2012 20:24

Korg σε ευχαριστώ πολύ να σε ρωτήσω κάτι.
σε αυτήν την σειρά καλείς κάποια funtion getname? τα άλλα είναι ξεκάθαρα.

echo "<category>".getname("company_cat", $row[compcat_id])."</category><br>";
Μήπως ξέρεις αν μπορώ αυτά τα αποτελέσματα να τα αποθηκεύσω κάπως?
Το λέω γιατί ο πελάτης θέλει να του κάνουν παραγγελίες και να αποθηκεύουν τα δεδομένα σε κάποιο αρχείο και να του τα πηγαίνουν με stickaki.Το οποίο αρχείο αν το φορτώσει σε κάποια φόρμα(ή με κάποιο τρόπο που θα του φτιάξω) να ανοίγει το αρχείο και να παίρνει τα δεδομένα από xml να τα διαβάζει και αφού ψάξει στην βάση δεδομένων να εμφανίσει κάποια αποτελέσματα. Ζαλίστικα :o συγνώμη αλλά μόλις ξεκίνησα με xml από εδώ http://www.w3schools.com/xml

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από korgr » 30 Μαρ 2012 21:42

Την getname() αγνόησε την αφορά την δομή της δικής μου βάσης. Επειδή οι κατηγορίες είναι αποθηκευμένες με id η getname() επιστρέφει απλά το όνομα της κατηγορίας βάσει του id.

Αποθήκευση εννοείς να εκτελείται το αρχείο και να σου βγάζει save as παράθυρο?
Ή αφού δημιουργήσεις τα περιεχόμενα του xml να αποθηκεύονται αυτόματα σε διάφορα xml files?
Για το πρώτο θες συγκεκριμένους php headers και για το δεύτερο να ψαχτείς για filesystem functions στην php

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 31 Μαρ 2012 00:57

Μάλλον σαν παράθυρο.Έχεις κανένα tutorial μήπως? Ευχαριστώ

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από korgr » 31 Μαρ 2012 08:06

Στο php αρχείο σου που θα δημιουργεί το xml (σαν το παράδειγμα που σου έδωσα) βάζεις πάνω πάνω τους εξής headers:

Κώδικας: Επιλογή όλων

$filename = "export.xml";
header&#40;'Content-type&#58; "text/xml"; charset="utf8"'&#41;;
header&#40;'Content-disposition&#58; attachment; filename="'.$filename.'"'&#41;;
Όταν το εκτελέσεις, αντί να σου δείξει το xml θα σε προτρέψει να το σώσεις...

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 31 Μαρ 2012 10:41

Korg Καλημέρα.
Ευχαριστώ πολύ με έχεις βοηθήσει πάρα πολύ και με γλίτωσες από πολύ χρόνο.
Να ρωτήσω και κάτι τελευταίο(μάλλον . :) . Μπορώ να φτιάξω μία φόρμα κάτι σαν μία φόρμα uploading αρχείων π.χ.
<form method="post" action="" enctype="multipart/form-data">
<p>Ανέβασμα αρχείου: <input name="upload_file" id="upload_file" type="file" class="inputtext" /></p>

<input type="submit" name="submit" value="Ανέβασμα" />
</form>
και να διαβάζω τα δεδομένα του xml και να τα αποθηκεύω σε μεταβλητές ή να τα συσχετίζω απ'ευθείας με την βάση δεδομένων?
Με το SimpleXML θα κάνω δουλειά?

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 31 Μαρ 2012 10:54

Δοκίμασα αυτό

Κώδικας: Επιλογή όλων

<?php
$xml = simplexml_load_file&#40;"export.xml"&#41;;

echo $xml->getName&#40;&#41; . "<br />";

foreach&#40;$xml->children&#40;&#41; as $child&#41;
  &#123;
  echo $child->getName&#40;&#41; . "&#58; " . $child . "<br />";
  &#125;
?>

από το w3schools και το έσωσα ως b.php. Aφού έβαλα το αρχείο exrort.xml στο φάκελο www μαζί με το b.php έτρεξα το b.php αλλά μου βγάζει ένα σωρό warnings. Ενδεικτικά
Warning: simplexml_load_file() [function.simplexml-load-file]: export.xml:1: parser error : Opening and ending tag mismatch: br line 1 and record in C:\wamp\www\b.php on line 2
Μήπως τα br τώρα πρέπει να είναι μόνο PHP_EOL (αλλαγή γραμμής)?
Στον wamp έχω έκδοση 5.3.5

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 31 Μαρ 2012 11:02

Εντάξει διόρθωσα τα <br> με PHP_EOL και τα warnings έγιναν 4
Warning: simplexml_load_file() [function.simplexml-load-file]: export.xml:1: parser error : Start tag expected, '<' not found in C:\wamp\www\b.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: <?xml version="1.0" encoding="utf-8" ?>PHP_EOL<records>PHP_EOL<record><br><name> in C:\wamp\www\b.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in C:\wamp\www\xriso\b.php on line 2
Fatal error: Call to a member function getName() on a non-object in C:\wamp\www\xriso\b.php on line 4

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από korgr » 31 Μαρ 2012 12:10

Δείξε μας το xml που παράγεται...

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 31 Μαρ 2012 13:00

export.xml

Κώδικας: Επιλογή όλων

<?xml version="1.0" encoding="utf-8" ?>PHP_EOL<records>PHP_EOL<record><br><name>1</name>PHP_EOL<address>1</address>PHP_EOL<zipcode></zipcode>PHP_EOL<phone>Ματ 1,33mm</phone>PHP_EOL<fax>Εσταυρωμένος</fax>PHP_EOL<email></email>PHP_EOL</record>PHP_EOL<record><br><name>2</name>PHP_EOL<address></address>PHP_EOL<zipcode>3</zipcode>PHP_EOL<phone>Λουστρέ 1,33</phone>PHP_EOL<fax>Εσταυρωμένος</fax>PHP_EOL<email>Καλό γυάλισμα</email>PHP_EOL</record>PHP_EOL<record><br><name>3</name>PHP_EOL<address>1</address>PHP_EOL<zipcode></zipcode>PHP_EOL<phone>Εσταυρωμένος</phone>PHP_EOL<fax>Μοντέρνος</fax>PHP_EOL<email>μαύρο</email>PHP_EOL</record>PHP_EOL<record><br><name>4</name>PHP_EOL<address>3</address>PHP_EOL<zipcode></zipcode>PHP_EOL<phone>Πετράτο4 </phone>PHP_EOL<fax></fax>PHP_EOL<email></email>PHP_EOL</record>PHP_EOL 
</records><br> 
δεν άλλαξα τα elements στο xml τα άφησα όπως τα είχες απλά έσβησα μερικά για να δοκιμάσω το xml

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από korgr » 31 Μαρ 2012 22:14

Αφαίρεσε τα <br>
Επίσης κάτι κάνεις λάθος και τα PHP_EOL δεν μεταφράζονται σε αλλαγή γραμμής.
Δώσε τον κώδικα της php που παράγει το xml όπως το έχεις τροποποιήσει...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από dva_dev » 31 Μαρ 2012 22:28

korgr έγραψε:Αφαίρεσε τα <br>
Επίσης κάτι κάνεις λάθος και τα PHP_EOL δεν μεταφράζονται σε αλλαγή γραμμής.
Δώσε τον κώδικα της php που παράγει το xml όπως το έχεις τροποποιήσει...
korgr έγραψε:Αντικαθιστάς τα br με PHP_EOL (αλλαγή γραμμής)
:D Δεν ήσουν αρκετά κατατοπιστικός στις διευκρινίσεις που έδωσες. Οπως καταλαβαίνεις έκανε την αντικατάσταση αλλά την έκανε μέσα στα quotes.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες