Αναζήτηση αρχείου μέσα σε φάκελο

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

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

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

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από fafos » 07 Απρ 2011 15:07

to search.php prepei na epistrefei mono to json.. me otidhpote allo den douleuei.. ta apotelesmata h ta typoneis sthn idia selida (index.php) h ta stelneis me thn action ths formas se allh selida (p.x. results.php)..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 07 Απρ 2011 20:52

Πιστεύω έχω φτάσει σε πολύ ικανοποιητικό στάδιο. Έχω 3 αρχεία:

index.php - Εδώ χτίζεται και τυπώνεται στον χρήστη η φόρμα αναζήτησης αλλά και τα αποτελέσματα αφού πατήσει Submit

search.php - Εδώ τυπώνονται με JSON τα αποτελέσματα

categories.php - Αυτό γίνεται require στα άλλα 2 αρχεία και στην ουσία φτιάχνει το array με τις κατηγορίες προϊόντων και τα paths της καθεμιάς.

Το θέμα τώρα είναι το εξής. Νομίζω ότι εφόσον υπάρχει autocomplete, για λόγους χρηστικότητας θα ήταν καλό όταν ο χρήστης κλικάρει κάποιο αποτέλεσμα απ'αυτά που βγαίνουν στο autocomplete, να γίνεται submit, χωρίς να χρειάζεται να πατήσει το κουμπί απο δίπλα.

Αυτό πως γίνεται;

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 01 Αύγ 2011 19:34

Χαιρετώ και πάλι :)

Τελικά αποφάσισα να κάνω την αναζήτηση χωρίς να επιλέγει ο χρήστης κατηγορία. Θα βάζει δηλαδή μόνο την λέξη-κλειδί και το script θα ψάχνει σε όλους τους φακέλους(κατηγορίες) για την λέξη-κλειδί.

Για να γίνει αυτό άλλαξα το script ως εξής: http://pastebin.gr/1486

Με άλλα λόγια έβαλα 2 foreach, η πρώτη για το κάθε keyword που έχει βάλει ο χρήστης και η δεύτερη για να ψάχνεται το κάθε keyword στην κάθε κατηγορία. Ενώ όμως το $images είναι array, όταν πάω να το κάνω print με foreach παίρνω αυτό: Warning: Invalid argument supplied for foreach() in /xxx/xxxxx/results.php on line 21.

line 21: foreach ($images as $img) {echo $img;}

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από jpk » 01 Αύγ 2011 20:20

Invalid argument supplied for foreach() είναι αυτό που λέει , περιμένει array και παίρνει … Αλλά εκτός από αυτό που θα το λύσεις με debugging δεν κοιτάς και το ενδεχόμενο να καταγράφεις όλα αυτά σε βάση (τουλάχιστον το ποια αρχεία σημαίνουν τι , αφού είναι ουσιώδη για την εφαρμογή σου)

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 01 Αύγ 2011 20:24

Έχω αλλάξει το σκριπτ κάπως, και τώρα είναι έτσι: http://pastebin.com/7Gkv4Wv9

και το αποτέλεσμα είναι κάτι τέτοιο:
Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20
proionta/glamour/5x5 black.jpg
proionta/glamour/black 15x15.jpg
proionta/glamour/black 15x60 .jpg
proionta/glamour/black 30x60 .jpg
proionta/glamour/black 60x60 .jpg
proionta/glamour/black 7,5x60 .jpg
proionta/glamour/black 7,5x7,5.jpg
proionta/glamour/onda cotton black 7,5x60.jpg

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20
proionta/listelo/level black 5x30.jpg
proionta/listelo/strass black 1,5x60.jpg

Warning: Invalid argument supplied for foreach() in /home/core/public_html/decoceramica.gr/results.php on line 20

Πίσω
Βρίσκει δηλαδή τα αρχεία όπως πρέπει αλλά βγάζει και το warning. Η glob() επιστρέφει array απ'όσο διάβσαα, αλλά αν κάνω gettype($images) παίρνω boolean. Έχω κάτι λάθος στην glob()?

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από Mandingueiro » 01 Αύγ 2011 20:25

Νομίζω κατάλαβα τί γίνεται, επιστρέφω σε λίγο :)

Edit: Τελικά επιστρέφει boolean όταν δεν βρίσκει κάτι (λογικό άλλοστε), οπότε άλλαξα τον κώδικα σε αυτόν και δείχνει να δουλεύει μια χαρά http://pastebin.com/VCZL2bLu

Όσο για την βάση που λες, δεν νομίζω ότι με συμφέρει. Θέλω να κάνω κάτι όσο πιο απλό και γρήγορο (για να το φτιάξω) γίνεται.
Τελευταία επεξεργασία από το μέλος Mandingueiro την 01 Αύγ 2011 20:30, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Αναζήτηση αρχείου μέσα σε φάκελο

Δημοσίευση από jpk » 01 Αύγ 2011 20:29

πάντως μην αφήνεις κενά σε ονόματα αρχείων …

Απάντηση

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

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

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