Διπλή εκτύπωση εγγραφών

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

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

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Φεβ 2009 12:19

Καλημέρα σε όλους.

Εχω φτιάξει ένα scriptάκι για να τσεκάρω τίς φωτογραφίες που έχουν γίνει upload στο server και τις ανίστοιχες εγγραφές στη βάση. Σκοπός είναι να "πιάνω" τίς "ξέμπαρκες" φωτογραφίες ώστε να τις σβήνω.

Η ιστορία ξεκινάει απο ένα file όπου δίνω το directory, τον πίνακα και τη γραμμή που θέλω να ελέγξω:

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

<a href = "***.php?dir_name=<?php echo "banners"?>&row=<?php echo "banner"?>">Πίνακας Banners</a>
Στο ***.php παίρνω αυτά τα δεδομένα και με scandir βλέπω τις φωτογραφίες που υπάρχουν στο αντίστοιχο directory του server. Επειδή το αποτέλεσμα γυρνάει με Array τίς εκτυπώνω με:

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

foreach &#40;$files as $key=>$value&#41; &#123;echo $value&#125;
π.χ.: Αρχεία που βρίσκονται στον server:
&#8226; dlv.bmp
&#8226; dlvry_logo12.jpg


Επειτα κάνω ένα select απο την βάση για τις εγγραφές:

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

select ".$row." from ".$dir_name."
Ως εδώ όλα καλά.

Οταν όμως εκτυπώνω τις εγγραφές με:

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

while &#40;$row =mysql_fetch_array&#40;$result&#41;&#41;
&#123;
foreach &#40;$row as $key=>$value&#41;
&#123; echo $value; &#125;
δημιουργούνται διπλές εγγραφές
Εγγραφές στη βάση:
&#8226; dlv.bmp
&#8226; dlv.bmp
&#8226; dlvry_logo12.jpg
&#8226; dlvry_logo12.jpg


Το κακό είναι οτι δεν μπορώ να παραλείψω το foreach μετά το while γιατί δεν μπορώ να κάνω echo $row['***'] αλλά echo $row και μου εκτυπώνει Array.
Ετσι, αναγκαστικά, χρησιμοποιώ πάλι το foreach και το echo $value.

Υπάρχει κανένας τρόπος να "κόψω" τις διπλές εγγραφές;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Φεβ 2009 14:31

kai sta 2 foreach dineis to apotelesma me echo $value?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Φεβ 2009 14:34

Ναι.
Λάθος είναι;
Δεν μπόρεσα να το κάνω να δουλέψει με άλλο τρόπο.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Φεβ 2009 14:38

Apostolis_38 έγραψε:Ναι.
Λάθος είναι;
Δεν μπόρεσα να το κάνω να δουλέψει με άλλο τρόπο.
dose diaforetikous titlous sto 2o foreach.. p.x.:

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

foreach &#40;$row as $key1=>$value1&#41;
&#123; echo $value1; &#125;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Φεβ 2009 14:46

Μπα, τίποτα.
Φαντάζομαι οτι το πρόβλημα δημιουργείται επειδή τρέχει και το

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

while &#40;$row =mysql_fetch_array&#40;$result&#41;&#41; 
και το

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

foreach &#40;$row as $key=>$value&#41;
Το πρόβλημα είναι οτι δεν μπορώ να δηλώσω κάτι σαν

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

echo $row&#91;'$_GET&#91;'...'&#93;'&#93;
στο while.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Φεβ 2009 14:56

giati kaneis dir tis eikones apo ton folder efoson exeis to onoma sthn vash?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Φεβ 2009 15:02

Ακυρο.

Κι όμως γίνεται να δηλωθεί κάτι τέτοιο

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

echo $row&#91;$_GET&#91;'row'&#93; &#93;;
Αρκεί να ξεστραβωθείς με τα ' :evil:

Ευχαριστώ fafos.

Υ.Γ. Γιατί όταν σβήνεται μια εγγραφή απο τη βάση δεν σβήνεται και το file απο τον server.
Θα μπορούσα να ενσωματώσω αυτή τη λειτουργία στο del της εγγραφής αλλά μου φαίνεται καλύτερο να υπάρχει σαν ξεχωριστή admin επιλογή.
Ετσι έφτιαξα αυτό το script.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Φεβ 2009 15:11

Apostolis_38 έγραψε:Ακυρο.

Κι όμως γίνεται να δηλωθεί κάτι τέτοιο

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

echo $row&#91;$_GET&#91;'row'&#93; &#93;;
Αρκεί να ξεστραβωθείς με τα ' :evil:

Ευχαριστώ fafos.

Υ.Γ. Γιατί όταν σβήνεται μια εγγραφή απο τη βάση δεν σβήνεται και το file απο τον server.
Θα μπορούσα να ενσωματώσω αυτή τη λειτουργία στο del της εγγραφής αλλά μου φαίνεται καλύτερο να υπάρχει σαν ξεχωριστή admin επιλογή.
Ετσι έφτιαξα αυτό το script.
giati den svhnetai to file? vale to unlink prin svhseis thn eggrafh apo thn vash.. oloi etsi to kanoume.. den dhmiourgoume 2 routines gia mia energeia..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Φεβ 2009 15:22

Ναι, με το unlink γίνεται.
Απλώς θέλω να το έχω σαν ξεχωριστό κομμάτι, γιατί υπάρχει περίπτωση να θέλεις να διαγράψεις την εγγραφή αλλά να κρατήσεις το file για να "δηλωθεί" σε άλλη εγγραφή.
Ετσι προτιμώ να γίνεται με αυτόν τον τρόπο.
Τουλάχιστον όσον αφορά το συγκεκριμένο project.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 16 Μαρ 2009 15:19

Επανέρχομαι σε ένα παλιότερο θέμα μου :) και θέλω μία μικρή βοήθεια αν μπορεί κάποιος.

Με τον εξής κώδικα:

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

$dir = $_SERVER&#91;'DOCUMENT_ROOT'&#93;."/images/***/";
$files = scandir&#40;$dir&#41;;

foreach &#40;$files as $key=>$value&#41;
 &#123;
   echo "&nbsp;&#8226;&nbsp;";
   echo trim&#40;$value&#41;;
   echo "<br>";
 &#125;
unset &#40;$value&#41;;
παίρνω την δομή που έχει μέσα ο "/images/***/"

Εκεί όμως υπάρχει η περίπτωση να υπάρχουν κι άλλα directory τα οποία θέλω να κάνω scandir.

Οπότε σκέφτηκα το:

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

&#40;if &#40;is_dir $value&#41;&#41;

$files1 = scandir&#40;$value&#41;;
Το οποίο όμως ΔΕΝ παίζει γιατί το script πάντα τσεκάρει το root directory.

Ακόμα κι αν βάλω $dir = $_SERVER['DOCUMENT_ROOT']."/images/***/".$value."/";
Εχω δοκιμάσει το basename αντί για το $_SERVER['DOCUMENT_ROOT'] αλλά τίποτα.
Επίσης έχω δοκιμάσει συνδυασμούς με τίς readdir,opendir κ.λ.π. αλλά πάλι τίποτα.

Το πρόβλημα είναι οτι δεν μπορώ να "περάσω" το $value στο path.
Εχει κανείς καμμιά ιδέα;

Υ.Γ. fafos μη με μαλώσεις αλλά δεν μπορούμε πάντα να διαγράφουμε εγγραφές βάσης και εικόνες απο τον server με τη μία :cry:

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 16 Μαρ 2009 16:10

me to parakato (douleuei mono se PHP 5 kai pano) deixnei ola ta arxeia ston fakelo kai stous ypofakelous:

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

<?php

$path = realpath&#40;'images/'&#41;;

$items = new RecursiveIteratorIterator&#40;new RecursiveDirectoryIterator&#40;$path&#41;&#41;;
foreach&#40;$items as $item => $object&#41;&#123;
    echo "&nbsp;&middot;&nbsp;$item<br>";
&#125;

?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Μαρ 2009 11:10

Που πας και τα βρίσκεις; :D :D :D
Η php δεν λέει και πολλά για το RecursiveIteratorIterator.

Πάντως δουλεύει μια χαρά.
Θένκγιου μαν.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Μαρ 2009 16:02

Apostolis_38 έγραψε:Που πας και τα βρίσκεις; :D :D :D
Η php δεν λέει και πολλά για το RecursiveIteratorIterator.

Πάντως δουλεύει μια χαρά.
Θένκγιου μαν.
osoi asxoloumaste epaggelmatika me thn php (kai tis alles glosses) diavazoume oti neo prokyptei se kathe kainouria ekdosh...

an thes na asxolhtheis sovara me thn glossa matheneis poly kala oti yparxei mexri shmera kai enhmeronese gia kathe ti neo..

polla vevea ta prospernas giati skeftese "pou na mou xreiastei auth h p@#@ria tora!!" alla 99% tha vrethei pelaths pou tha se kanei na thn anazhthseis...

kalo einai na exeis sto pc sou oraia organomena oles tis functions pou paizoun sthn php, mysql h oindhpote glosses pou asxoleisai..

den xreiazete na anakalypteis ton troxo kathe fora pou genate ena provlhma..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διπλή εκτύπωση εγγραφών

Δημοσίευση από Apostolis_38 » 17 Μαρ 2009 18:02

fafos έγραψε: kalo einai na exeis sto pc sou oraia organomena oles tis functions pou paizoun sthn php, mysql
:wink:
Αυτό ακριβώς κάνω κι εγώ. Βέβαια τα κρατάω σαν ολόκληρα files που κάνουν κάποια συγκεκριμένη δουλειά, αλλά αυτό είναι το νόημα.

Πάντως το συγκεκριμένο ήταν πολύ κουφό για μένα. Ούτε τεκμηρίωση απο την php, ούτε αναφορές στα ψαχτήρια, ούτε τίποτα.
Σιγά μην το έβρισκα. :D

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διπλή εκτύπωση εγγραφών

Δημοσίευση από fafos » 17 Μαρ 2009 18:44

Apostolis_38 έγραψε:
fafos έγραψε: kalo einai na exeis sto pc sou oraia organomena oles tis functions pou paizoun sthn php, mysql
:wink:
Αυτό ακριβώς κάνω κι εγώ. Βέβαια τα κρατάω σαν ολόκληρα files που κάνουν κάποια συγκεκριμένη δουλειά, αλλά αυτό είναι το νόημα.

Πάντως το συγκεκριμένο ήταν πολύ κουφό για μένα. Ούτε τεκμηρίωση απο την php, ούτε αναφορές στα ψαχτήρια, ούτε τίποτα.
Σιγά μην το έβρισκα. :D
to exo tekmhriosei ego.. arkei (ti metriopatheia thee mou!!) :kaloe:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

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

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

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