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

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

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

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

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

Δημοσίευση από abeautifulmind » 03 Απρ 2012 13:34

Έκανα ότι μου είπες και παίρνω ίδια αποτελέσματα.Αλλά έχουμε ένα bug νομίζω.
Αν προσθέσεις στον data και στον paragelia (έβαλα ένα προιον που να έχει χυτό)

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

INSERT INTO `data` (`id`, `kodikos_sinergaton`, `xita`, `presarista`, `xroma`, `epifaneia`, `sxedio`, `sxedio2`, `sxolia`) VALUES
(1, '2028b', NULL, '1', 'Δίχρωμο', 'Διαμαντέ', 'Ματ 1,33mm', 'Εσταυρωμένος', NULL),
(2, '2047', NULL, '3', 'Κίτρινο', 'Αμοβολή', 'Λουστρέ 1,33', 'Εσταυρωμένος', 'Πολύ λείο'),
(5, '1012', NULL, '3', 'Κίτρινο', 'Διαμαντέ', 'Πετράτο 3', NULL, NULL),
(6, '1013', NULL, '2', 'Κίτρινο', 'Διαμαντέ', 'Πετράτο 1', NULL, NULL),
(7, '7896', '3', '', 'Δίχρωμο', 'Αμοβολή', 'Πετράτο3 ', NULL, '');

INSERT INTO `paragelia` (`id`, `pelatis`, `imeromhnia`, `time`, `kod`, `tem`, `sxolia`) VALUES
(1, 'panos', '02/04/2012', '16:26:12', '2047', 5, NULL),
(2, 'panos', '02/04/2012', '16:26:12', '1012', 7, NULL),
(3, 'panos', '02/04/2012', '16:26:12', '2028b', 14, NULL),
(4, 'panos', '02/04/2012', '16:26:12', '1013', 69, NULL),
(5, 'panos', '', '', '7896', 10, NULL);
και ζητήσω αυτά

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

<?php
$get_list="SELECT data.presarista,SUM&#40;paragelia.tem&#41; AS posothta 
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton 
WHERE paragelia.pelatis = 'panos' 
GROUP BY data.presarista;";
$get_list2=mysql_query&#40;$get_list&#41; or die&#40;"Πρόβλημα"&#41;;
while&#40;$get_list3=mysql_fetch_array&#40;$get_list2&#41;&#41;&#123;

echo"Πρεσαριστό νούμερο $get_list3&#91;presarista&#93;&#58; $get_list3&#91;posothta&#93; τεμάχια<br> ";
&#125;
$get_xrom="SELECT data.xroma,SUM&#40;paragelia.tem&#41; AS posothta 
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton 
WHERE paragelia.pelatis = 'panos' 
GROUP BY data.xroma;";
$get_xrom2=mysql_query&#40;$get_xrom&#41; or die&#40;"Πρόβλημα"&#41;;
while&#40;$get_xrom3=mysql_fetch_array&#40;$get_xrom2&#41;&#41;&#123;

echo" $get_xrom3&#91;xroma&#93;&#58; $get_xrom3&#91;posothta&#93; τεμάχια<br> ";
&#125;

$get_xit="SELECT data.xita,SUM&#40;paragelia.tem&#41; AS posothta 
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton 
WHERE paragelia.pelatis = 'panos' 
GROUP BY data.xita;";
$get_xit2=mysql_query&#40;$get_xit&#41; or die&#40;"Πρόβλημα"&#41;;
while&#40;$get_xit3=mysql_fetch_array&#40;$get_xit2&#41;&#41;&#123;

echo"Χυτό νούμερο $get_xit3&#91;xita&#93;&#58; $get_xit3&#91;posothta&#93; τεμάχια<br> ";
&#125;
?>
μου δείνει
Πρεσαριστό νούμερο : 10 τεμάχια
Πρεσαριστό νούμερο 1: 14 τεμάχια
Πρεσαριστό νούμερο 2: 69 τεμάχια
Πρεσαριστό νούμερο 3: 12 τεμάχια
Δίχρωμο: 24 τεμάχια
Κίτρινο: 81 τεμάχια
Χυτό νούμερο : 95 τεμάχια
Χυτό νούμερο 3: 10 τεμάχια
που έιναι σωστά εκτός από τις 2 γραμμές
Πρεσαριστό νούμερο : 10 τεμάχια
Χυτό νούμερο : 95 τεμάχια
που εμφανίζει την σούμα από τα ανάποδα που ζητάς.
Και αν δεν με βαρέθηκες ακόμα και με βρίζεις :) πως θα μπορούσαμε να κάνουμε ερώτημα μετά να λέει ότι από τα πρεσσαριστό νούμερο 3:12 τεμάχια τα 5 έιναι κίτρινα και τα 7 λευκά(ας πούμε ότι έχουν διαφορετικά χρώματα όχι και οι 2 κωδικοί κίτρινο)

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

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

Δημοσίευση από dva_dev » 03 Απρ 2012 15:50

Θα πρότεινα όταν δεν έχει δεδομένα να δώσεις στα πεδία να μην δίνεις '' αλλά null.
Δοκίμασε να τρέξεις αυτά για να κάνουν τις απαραίτητες διορθώσεις

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

UPDATE data set presarista=NULL WHERE presarista='';
UPDATE data set sxolia=NULL WHERE sxolia='';
Για να πάρεις και το χρώμα κάνε τα queries κάπως έτσι:

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

SELECT data.presarista,xroma,SUM&#40;paragelia.tem&#41; AS posothta
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton
WHERE paragelia.pelatis = 'panos'
AND data.presarista IS NOT NULL
GROUP BY data.presarista, data.xroma;

SELECT data.xita,xroma,SUM&#40;paragelia.tem&#41; AS posothta
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton
WHERE paragelia.pelatis = 'panos'
AND data.xita IS NOT NULL
GROUP BY data.xita, data.xroma;

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

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

Δημοσίευση από abeautifulmind » 03 Απρ 2012 16:35

Tα query δουλέψανε σωστά έκανα για όλα τα πεδία αλλά το NULL δεν δούλεψε :( Μπορούμε να βάλουμε στα query εξαίρεση τα κενά?Μήπως αυτό βοθήσει?

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

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

Δημοσίευση από dva_dev » 03 Απρ 2012 19:40

μήπως το πεδίο presarista το έχεις not null?

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

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

Δημοσίευση από abeautifulmind » 03 Απρ 2012 21:01

Δεν είναι not null

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

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

Δημοσίευση από dva_dev » 03 Απρ 2012 21:03

Το presarista εκτός από τις τιμές '1','2','3' τι άλλη τιμή έχει; Αν είναι κάποια τιμή που έχεις βάλει για το κενό κάνε τη null.

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

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

Δημοσίευση από abeautifulmind » 03 Απρ 2012 21:11

Nαί αλλά και με NULL που τα έβαλα όπως μου τα έδωσες πάλι τα έκανε. Δοκίμασα αυτό

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

$get_xit="SELECT data.xita,SUM&#40;paragelia.tem&#41; AS posothta 
FROM paragelia JOIN data ON paragelia.kod = data.kodikos_sinergaton 
where xita!='' 
GROUP BY data.xita;";
$get_xit2=mysql_query&#40;$get_xit&#41; or die&#40;"Πρόβλημα"&#41;;
while&#40;$get_xit3=mysql_fetch_array&#40;$get_xit2&#41;&#41;&#123;

echo"Χυτό νούμερο $get_xit3&#91;xita&#93;&#58; $get_xit3&#91;posothta&#93; τεμάχια<br> ";
&#125;
echo" <br> ";


και δούλεψε είναι σωστό λες?Αλλά δεν ξέρω αν θα έχω και το ίδιο πρόβλημα για το πεδίο σχόλια

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

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

Δημοσίευση από abeautifulmind » 04 Απρ 2012 14:19

Για την simplexml
$xml = simplexml_load_file('par_arxeio/order.xml');
μπορώ να κάνω κάποιο έλεγχο και να του πω αν δεν βρεις αρχείο κάνε αυτό?


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

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

Δημοσίευση από abeautifulmind » 05 Απρ 2012 00:29

Ευχαριστώ πολύ.
Έχω τελειώσει την ανάλυση παραγγελίας και την εκτύπωση της.
¨Ένα τελευταίο θέμα (που μάλλον είναι javascript).Πως μπορώ να κάνω μία φόρμα με 2 πεδία input και να βάλω ένα κουμπί όπου πατώντας το θα προσθέτει μία σειρά ακόμα ή περισσότερες με άλλα 2 ίδια πεδία όμως με διαφορετικό id από τα προηγούμενα και να τα τραβάω όσες και αν είναι οι σειρές από το αρχείο par_se_xml που έφτιαξα.
Δηλαδή μία φόρμα κάπως έτσι

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

  <tr>
    <td><input name="kod1" type="text" id="kod1"  style="width&#58; 160px;" value=""></td>
    <td><input name="tem1" type="text" id="tem1"  style="width&#58; 160px;" value=""></td>
    <td><textarea id="sxolia1"  name="sxolia1" cols="50"></textarea></td>
	
  </tr>
   <tr>
    <td><input name="kod2" type="text" id="kod2"  style="width&#58; 160px;" value=""></td>
    <td><input name="tem2" type="text" id="tem2"  style="width&#58; 160px;" value=""></td>
    <td><textarea id="sxolia2"  name="sxolia2" cols="50"></textarea></td>
	
  </tr>
και πατώντας το κουμπί πρόσθεσε γραμμή/ές να προσθέτει αυτόματα π.χ. άλλες 2 γραμμές όμως με το id των πεδίων να αυξένεται π.χ. id="kod3",id="kod4" και πάει λέγοντας για να μπορέσω να τραβήξω τις τιμές απο εδώ(αν γίνεται να κάνει και ένα μικρό έλεγχο ότι σε κάθε γραμμή τα 2 πεδία kod και τεμ αν ένα από τα 2 έιναι κενά να το συμπληρώνει )

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

$filename = "order.xml"; 
date_default_timezone_set&#40;'Europe/Athens'&#41;;

$imerominia=date&#40;'d/m/Y---H&#58;i&#58;s'&#41;;
$time=time&#40;&#41;;

$sin=$_POST&#91;'sin'&#93;;



header&#40;'Content-type&#58; "text/xml"; charset="utf8"'&#41;; 
header&#40;'Content-disposition&#58; attachment; filename="'.$filename.'"'&#41;; 

echo '<?xml version="1.0" encoding="utf-8" ?>',PHP_EOL; 
echo '<orders>',PHP_EOL; 

	echo '<order client="',$sin,'" orderdate="',$imerominia,'" timeint="',$time,'">',PHP_EOL; 
	foreach &#40; range&#40;1, 6&#41; as $array&#41;&#123;
$kod=$_POST&#91;'kod'.$array&#93;; 
$tem=$_POST&#91;'tem'.$array&#93;;
$sxolia=$_POST&#91;'sxolia'.$array&#93;;  
	
		echo '<item product="',$kod,'" tem="',$tem,'" plir="',$sxolia,'"></item>',PHP_EOL; 
		&#125;
	echo '</order>',PHP_EOL; 
	
echo '</orders>',PHP_EOL; 

?>
Πως πρέπει να γίνει η foreach δηλαδή.

Άβαταρ μέλους
viktoras
Δημοσιεύσεις: 963
Εγγραφή: 05 Απρ 2001 03:00
Τοποθεσία: Γαλάτσι, Αθήνα
Επικοινωνία:

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

Δημοσίευση από viktoras » 05 Απρ 2012 19:52

Το να προσθέσεις on the fly "rows" σε μία φόρμα είναι αρκετά εύκολο. ( example - από μια αναζήτηση για "javascript/jquery dynamic form rows" )

Το θέμα είναι ότι στο HTML form part θα πρότεινα να κάνεις τα inputs έτσι ώστε να στέλνουν τα δεδομένα σε array ( π.χ. name="kod[]" ) ώστε να μπορούν να δέχονται απεριόριστα rows που θα τα επεξεργάζεσαι μετά το submit με μία foreach.
<?="Hello Freestuff";?>
Quality hosting by Cityhost

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

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

Δημοσίευση από abeautifulmind » 06 Απρ 2012 01:14

Victora σε ευχαριστώ για τον χρόνο σου. Εννοείς να κάνω τον έλεγχο για τα πεδία αν είναι συμπληρωμένα?Μπορείς να κάνεις ένα παράδειγμα?

Άβαταρ μέλους
viktoras
Δημοσιεύσεις: 963
Εγγραφή: 05 Απρ 2001 03:00
Τοποθεσία: Γαλάτσι, Αθήνα
Επικοινωνία:

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

Δημοσίευση από viktoras » 06 Απρ 2012 11:08

Πριν συνεχίσω να τονίσω ότι δεν είχα τον χρόνο να διαβάσω όλα τα προηγούμενα posts [ σχετικά κυρίως με το data feed από/προς XML ] οπότε ίσως η λύση μου στο τελευταίο που ρώτησες να έχει κάποιο conflict.

από πλευράς html form έχεις π.χ. αυτό - starting set των inputs με 0 index:

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

<table id="container">
  <tr>
    <td><input name="data&#91;0&#93;&#91;kod&#93;" type="text" style="width&#58; 160px;" value=""></td>
     <td><input name="data&#91;0&#93;&#91;tem&#93;" type="text" style="width&#58; 160px;" value=""></td>
    <td><textarea name="data&#91;0&#93;&#91;sxolia&#93;" cols="50"></textarea></td>
  </tr>
</table> 
Προσθέτεις κι ένα trigger link για την προσθήκη row/set:

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

<span id="add">προσθήκη γραμμής</span>
( μπορεί να είναι span, p, a, ό,τι θες, το ID θα κάνεις target )

και μετά αφού έχεις π.χ. φορτώσει jQuery στο head ( είναι γρήγορο το να δώσω παράδειγμα με jQuery ):

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

$&#40;document&#41;.ready&#40;function&#40;&#41; &#123;
var index = $&#40;'#container tr'&#41;.length;

$&#40;'#add'&#41;.click&#40;function&#40;&#41; &#123;
    var newindex = index++
    var html = + newindex +'<tr><td><input name="data&#91;'+ newindex +'&#93;&#91;kod&#93;" type="text" style="width&#58; 160px;"></td><td><input name="data&#91;'+ newindex +'&#93;&#91;tem&#93;" type="text" style="width&#58; 160px;"></td><td><textarea  name="data&#91;'+ newindex +'&#93;&#91;sxolia&#93;" cols="50"></textarea></td></tr>';
    $&#40;'#container'&#41;.append&#40;html&#41;;
&#125;&#41;;
&#125;&#41;;


Στο Post της φόρμας στο αντίστοιχο PHP αρχείο, θα μπορείς να λάβεις μέσω $_POST τα δεδομένα και να τα κάνεις assign σε variables και manipulate καταλλήλως. π.χ.

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

$data = $_POST&#91;'data'&#93;;

foreach&#40;$data as $row&#41;&#58;
echo $row&#91;'kod'&#93;;
echo $row&#91;'tem'&#93;;
echo $row&#91;'sxolia'&#93;;
endforeach;
Τα ανωτέρω είναι θεωρητικού χαρακτήρα, πρακτικά ο κώδικας χρήζει refactoring ( javascript, π.χ. προσθήκη remove row / sanitation στα $_POST κ.τ.λ. ) για να χρησιμοποιηθεί σε production enviroment. ( 99% θα δουλέψει όμως )
<?="Hello Freestuff";?>
Quality hosting by Cityhost

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

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

Δημοσίευση από abeautifulmind » 06 Απρ 2012 18:03

vicora πολύ ωραία ευχαριστώ πάρα πολύ. Παίρνει τις τιμές μία χαρά.Ένα θεματάκι ακόμα αν γνωρίζεις.Μπορώ να κάνω έλεγχο στα πεδία αν π.χ. έχει συμπληρώσει το kod σε καποια/ες γραμμή/ες αλλά δεν έβαλε tem(η το ανάποδο) να τον βγάζει σφάλμα ότι πρέπει να συμπληρώσει και τα 2 πεδία σε κάθε γραμμή ή κανένα πεδίο αν θέλει χωρίς να χάνονται αυτά που έχει γράψει ως εκείνη την στιγμή.Θα μπορούσα να το κάνω με sessions στην foreach αλλα δεν ξέρω αν δουλέψει.Μήπως με coolies και javascript έιναι καλύτερα?

Άβαταρ μέλους
viktoras
Δημοσιεύσεις: 963
Εγγραφή: 05 Απρ 2001 03:00
Τοποθεσία: Γαλάτσι, Αθήνα
Επικοινωνία:

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

Δημοσίευση από viktoras » 06 Απρ 2012 18:35

Μπορείς να κάνεις validation είτε client side ( με javascript ) είτε server side, είτε και τα δύο ( η πιο σωστή επιλογή ).

Από πλευράς Javascript είτε θα πρέπει να κάνεις μια δική σου validation function είτε να βασιστείς σε κάποιο plugin π.χ. jQuery validation που υποστηρίζει και dependency ( αυτό που ζητάς )

Παραλλάσσοντας το demo θα έκανες κάτι τέτοιο προσθέτοντας rule:

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

$&#40;".tem"&#41;.rules&#40;"add", &#123; 
  required&#58; .kod&#58;filled
&#125;&#41;;

Που λέει ότι αν το input με class .kod ( κάνω target class ώστε να υπάρχει σε κάθε "set" ) είναι συμπληρωμένο, τότε το .tem είναι απαραίτητο να συμπληρωθεί. Βέβαια δεν καλύπτει το ανάποδο.

Γενικά δεν το έχω δοκιμάσει και δεν είμαι 100% σίγουρος ότι οι custom selectors ( :filled ) δουλεύουν με classes.
<?="Hello Freestuff";?>
Quality hosting by Cityhost

Απάντηση

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

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

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