Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
ankor
Δημοσιεύσεις: 3
Εγγραφή: 15 Μαρ 2005 14:15

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από ankor » 02 Ιούλ 2006 13:57

Τι πρέπει να επιλεχθεί από το αντίστοιχο Drop Down List;

Ευχαριστώ προκαταβολικά :)

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από cordis » 02 Ιούλ 2006 23:36

αν κατάλαβα καλά θέλεις έναν τύπο κολώνας που να μπορείς να αποθηκεύσεις μέσα μια εικόνα. αν κατάλαβα καλά τότε θα πρέπει να επιλέξεις BLOB ή LONGBLOB, ανάλογα με το μέγεθος των εικόνων που θέλεις να βάλεις μέσα.

αν και αποφεύγουμε να κάνουμε τέτοια στην MySQL και ειδικά για Web εφαρμογές.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από cherouvim » 02 Ιούλ 2006 23:58

Database for data
Filesystem for files

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από cordis » 03 Ιούλ 2006 00:08

να σου πω την αλήθεια η μόνη φορά που χρειάστηκε να χρησιμοποιήσω BLOB (DataBase for files) ήταν ένα τραπεζικό σύστημα που έπρεπε ένα document να πηγαίνει από ένα κατάστημα στο άλλο. Και όλο έγινε σε Blob (Oracle φυσικά) για να είναι αυτόνομο και να μη μπλέξουμε με administrators και file system security.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

ankor
Δημοσιεύσεις: 3
Εγγραφή: 15 Μαρ 2005 14:15

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από ankor » 05 Ιούλ 2006 09:32

Ευχαριστώ για γρήγορη απάντηση. u r **
Εικόνα

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από Risk » 05 Ιούλ 2006 11:48

Προσωπικά πιστεύω πως να ανεβάσεις μια εικόνα σε ένα πεδίο της βάσης θα επιβαρύνει την αποδοτικότητα της βάση. Θα συμφωνήσω με τον cherouvim και θα προσθέσω πως η MySql σου δίνει την δυνατότητα να βάλεις σαν πεδίο το path ώστε με ένα link να σου έρχεται η φωτογραφία ή το οποιοδήποτε αρχείο επιθυμείς. Δοκίμασέτο!

ankor
Δημοσιεύσεις: 3
Εγγραφή: 15 Μαρ 2005 14:15

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από ankor » 05 Ιούλ 2006 22:50

χμμμ, πολύ καλή ιδέα

Το δοκιμάζω και επανέρχομαι :)
Εικόνα

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από oikonomou » 07 Ιούλ 2006 18:58

αν κατάλαβα καλά θέλεις έναν τύπο κολώνας που να μπορείς να αποθηκεύσεις μέσα μια εικόνα. αν κατάλαβα καλά τότε θα πρέπει να επιλέξεις BLOB ή LONGBLOB, ανάλογα με το μέγεθος των εικόνων που θέλεις να βάλεις μέσα.

αν και αποφεύγουμε να κάνουμε τέτοια στην MySQL και ειδικά για Web εφαρμογές.
Database for data
Filesystem for files
Προσωπικά πιστεύω πως να ανεβάσεις μια εικόνα σε ένα πεδίο της βάσης θα επιβαρύνει την αποδοτικότητα της βάση. Θα συμφωνήσω με τον cherouvim και θα προσθέσω πως η MySql σου δίνει την δυνατότητα να βάλεις σαν πεδίο το path ώστε με ένα link να σου έρχεται η φωτογραφία ή το οποιοδήποτε αρχείο επιθυμείς. Δοκίμασέτο!
Για πειτε και σε εμας ρε παιδια που δεν ειμαστε τοσο καλοι...
γιατι ειναι λαθος να βαζεις blob στην βαση; και ειδικα σε web εφαρμογες;

Δηλαδη τι προτεινετε; να κανουμε ενα πεδιο πχ pic και αντι για blob να το κανουμε varchar, να αποθηκευουμε τις φωτο σε καταλογους, να βαζουμε το path της καθε εικονας στην βαση στο πεδιο pic και οταν θελουμε να εμφανισουμε μια εικονα να εχουμε κωδικα;

Εδω δεν το πολυκαταλαβα...αν θελει καποιος να μας δωσει τα φωτα του.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από Risk » 10 Ιούλ 2006 11:15

Κοίτα σε πρώτη φάση θα σου πω κάτι γενικό και μόλις βρω λίγο χρόνο παραπάνο θα σου πω την υλοποίηση.

Γενικά να ξέρεις πως σε οποιαδήποτε εφαρμογή είτε είναι λογιστική, είτε διαδικτυακή, είτε μια ιστοσελίδα που υποστηρίζει μια απλή βάση το ζητούμενο είναι η αποδοτικότητα της βάσης και κυρίως η ανάκτηση των δεδομένων σου. Έχουν γίνει πάρα πολλές μελέτες για τον κώδικα που θα πρέπει σε κάθε περίπτωση να γράφεται ώστε να είναι μια βάση αποδοτική. Βέβαια πάντα εξαρτάται και από τα ίδια τα δεδομένα. Υποστηρίζοντας λοιπόν αυτό που ανέφερε ο cherouvim, στην βάση σου θα πρέπει να υπάρχουν δεδομένα και στην προκειμένη το url απότελει ένα δεδομένο για το αρχείο της εικόνας ή του κειμένου που θέλεις. Ακόμα είναι ένα δεδομένο που όπως μπορείς να καταλάβεις σε σύγκριση με το ίδιο το αρχείο είναι πιο "ελαφρύ". Έτσι πετυχαίνεις τον βασικό σου στόχο που είναι η καλή,ποιοτική και γρήγορη απόδοση και απόκριση της βάσης σου.

Πάντως πληροφοριακά να ξέρεις ότι ο προγραμματισμός μια βάσης δεδομένων είναι λίγο υποκειμενικό πράγμα,ως προς την υλοποίηση,από πλευράς προγραμματιστή. Έχει να κάνει με το τι δεδομένα κάθε φορά θέλεις να αποθηκεύεις καθώς και με πολλές άλλες παραμέτρους. Δλδ ενώ μια εφαρμογή-πρόγραμμα πρέπει να φτιαχτεί βάση ενώς συγκεκριμένου σχεδίου, μια βάση δεδομένων μπορεί να σχεδιααστεί αρχικά με πολλά entry-relationship διαγράμματα και τελικά να επιλεχτεί το πιο αποδοτικό και αυτό που έχει το καλύτερο store για τα δεδομένα.

Το πρακτικό κομμάτι θα ακολουθήσει άλλη στιγμή.
Εικόνα

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από oikonomou » 10 Ιούλ 2006 15:27

Το δοκιμασα εχθες και τελικα καταφερα να δουλευει. Εκανα ενα πεδιο με ονομα logo και εκει αποθηκευω το ονομα της φωτο. Παλιοτερα ειχα ενα blob. Τις φωτο τις βαζω σε εναν καταλογο με ονομα images. Καταφερα να κανω ενα σκριπτ να τις ανεβαζω, με κατι που βρηκα παλι απο το FS, αλλα εχω προβλημα οταν πρεπει να τις σβηνω. Το ανεβασμα γινετε ως εξης:

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

<body >
<p align="center"><font size=6><b>Eισαγωγή</b></font></p>
<?php
if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41; &#41; &#123; 

$userid=$_POST&#91;'userid'&#93;;
$password=$_POST&#91;'password'&#93;;
$email=strtolower&#40;$_POST&#91;'email'&#93;&#41;;
$name=strtoupper&#40;$_POST&#91;'name'&#93;&#41;;
$sex=$_POST&#91;'sex'&#93;;

if &#40;! preg_match&#40;'/@.+\..+$/', $email&#41;&#41; &#123;
      echo "<p class=red>Η διεύθυνση email που εισάγατε δεν είναι έγκυρη και δεν αποθηκεύτηκε.</p>";
      $email="";
	&#125;

$pic=$HTTP_POST_FILES &#91;'photo'&#93; &#91;'tmp_name'&#93;; 
$pic_name=$HTTP_POST_FILES &#91;'photo'&#93; &#91;'name'&#93;; 
$pic_size=$HTTP_POST_FILES &#91;'photo'&#93; &#91;'size'&#93;; //χρειαζονται;
$pic_type=$HTTP_POST_FILES &#91;'photo'&#93; &#91;'type'&#93;; 

if &#40;$pic&#41; &#123; 
$upfile = "images/".$pic_name; 
if &#40;$pic=="none"&#41;&#123; $error=1; &#125; //θα τα αλλαξω αυτα
if &#40;$pic_size==0&#41;&#123; $error=2; &#125; 
if &#40; &#40;$pic_type!= "image/pjpeg"&#41; && &#40;$pic_type!= "image/gif"&#41; &#41;&#123; $error=3; &#125; 
if &#40;!is_uploaded_file&#40;$pic&#41;&#41;&#123; $error=4; &#125; 
if &#40; !copy&#40;$pic, $upfile&#41;&#41; &#123; $error=5; &#125; 
&#125; 


$db1 = @mysql_connect&#40;"localhost", "********", "********"&#41;;
$db2= @mysql_select_db&#40;"login"&#41;;
mysql_query&#40;"set character set 'greek'"&#41;; 
mysql_query&#40;"SET NAMES 'greek'"&#41;; 
$query="INSERT INTO plus_signup SET userid='$userid', 
	password='$password', email='$email', name='$name', 
	sex='$sex', logo='$pic_name' ";
$result=mysql_query&#40;$query&#41;;
mysql_close&#40;&#41;;

if &#40;$result&#41; &#123; echo "<p class=green>Η εισαγωγή του χρήστη πραγματοποιήθηκε επιτυχώς.</p>"; &#125; else
	 &#123; echo "<p class=red>Η εισαγωγή του χρήστη δεν πραγματοποιήθηκε.</p>"; &#125;

 &#125;
?>
<p><form action="insert.php" method="post" enctype="multipart/form-data">
  <p>userid &#58; 
    <input name="userid" type="text" size="105" maxlength="150"> </p>
  <p>password &#58; 
    <input name="password" type="text" size="105" maxlength="150"> </p>
  <p>Email &#58;    
  <input name="email" type="text" size="60" maxlength="60"></p>
  <p>Όνομα &#58;
    <input name="name" type="text" size="90" maxlength="150"></p>
  <p>Sex &#58;
    <input name="sex" type="text" size="90" maxlength="150"></p>
  <p>Logo &#58; <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
    <input name="photo" type="file" size="50" > </p>

<p> <input type="submit" name="submit" value="ΟΚ" class=button>
    <input type="reset" name="Submit2" value="Καθαρισμός στοιχείων"  class=button>
  </p>
  </form>
</p>
</body>
και μια απλη αναφορα μερικων πεδιων ως εξης

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

<?php
mysql_connect&#40;"localhost","*****","********"&#41;;
mysql_select_db&#40;"login"&#41;;
mysql_query&#40;"set character set 'greek'"&#41;; 
mysql_query&#40;"SET NAMES 'greek'"&#41;; 
$sql = mysql_query&#40;"SELECT email,sex,logo FROM plus_signup "&#41;;
while &#40;$row=mysql_fetch_array&#40;$sql&#41;&#41;
	&#123;
	$logo=$row&#91;"logo"&#93;;
	$email=$row&#91;"email"&#93;;
	$sex=$row&#91;"sex"&#93;;
	echo "<P> $email</br>";
	echo "<img src=images/$logo border=0></br>";
	echo "$sex - $logo</P>";
	&#125;
?>
Μηπως πρεπει να αποθηκευω το πληρες path για καθε φωτο η μονο το ονομα ειναι ενταξει;
Οταν ανεβαζω μια εικονα με το ιδιο ονομα τεχω προβλημα.Αυτο πως να το αντιμετωπισω; Δινοντας ονοματα ξεχωριστα πχ με χρηση timestamp η να μην επιτρεπω διπλοκαταχωρησεις στο πεδιο logo αρα να μην γινετε και το pload οταν υπαρχει ιδιο ονομα;
Εαν θελω να σβησω μια φωτο...ενταξει το πεδιο logo αλλα απο τον καταλογο images πως θα το κανω;
Γενικα με τους καταλογους και τα δικαιωματα 755 ειναι ενταξει;

Αυτα τα ολιγα...αν εχει κανενας καποια συμβουλη.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από oikonomou » 10 Ιούλ 2006 21:03

Τωρα μολις καταλαβα οτι ειμαι λιγο οφ-τοπικ γραφοντας κωδικα PHP...
συγνωμη mods αλλα τα εγραψα για πιο αναλυτικη περιγραφη των αποριων μου.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από cherouvim » 10 Ιούλ 2006 21:20

Apothikefse mono to onoma arxeiou. To (relative) path to gnorizei i efarmogi sou, pithanos se syndiasmo me kapio configuration property (p.x $resourcesPath="resources/";)

To collision ton onomaton mporeis na to apofygeis prosthetontas stin arhi tou onomatos tou arxeiou to unique kai auto_increment id tou row pou krataei ta meta-data tou arxeiou.

Prosekse kai gia arxeia pou periexoun periergous xaraktires mesa (non unicode, spaces ktl).

Gia diagrafei arxeiou yparxei php entoli. Kata to deletion tou database row, svine kai to arxeio.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από oikonomou » 11 Ιούλ 2006 00:07

To collision ton onomaton mporeis na to apofygeis prosthetontas stin arhi tou onomatos tou arxeiou to unique kai auto_increment id tou row pou krataei ta meta-data tou arxeiou.
Δηλαδη 1giorgos.jpg 2eikona.gif 3 mitsos.gif αν καταλαβα καλα
Prosekse kai gia arxeia pou periexoun periergous xaraktires mesa (non unicode, spaces ktl).
Να κανω ελεγχο στο ονομα δηλαδη;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από cherouvim » 11 Ιούλ 2006 00:19

001mitsos isos einai kalytera giati skepsou oti to arxeio "4mitsos" mporei na kanei collide me to "mitsos" otan to proto tha vrisketai stin 1h eggrafi (14mitsos) kai to 2o stin 14h (14mitsos). Ligo spanio vevaia.

To kalytero pou mporeis na kaneis, an kai ligo prohorimeno, einai na metonomazeis to arxeio sto id tou (diladi 1, 2, 3 ktl) kai na exeis ena php script na to servirei me content disposition.

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

header&#40;"Content-Disposition", "attachment;filename=\"" + filename + "\""&#41;;
Me afto to tropo mporeis sti vasi na kratiseis to onoma tou arxeiou, oti kai an periexei afto, na to metonomaseis se ena akyndino auto_increment noumero (katefthian apo ti vasi sou) kai na to doseis piso ston client opote aftos to zitisei. Epipleon, ta arxeia afta mporeis na ta exeis kato apo to cgi-bin folder, pou den mporei na ginei direct access apo ton client (browser). Etsi mporeis na elegkseis ti stelneis se pion ktl, se periptosi pou afto apaiteitai apo tin efarmogi pou ftiahneis.

Vevaia, ehe ypopsin, oti me to na servireis arxeio mesa apo php script, pas na eksomioseis ti doulia pou kanei o webserver. I methodos afti sigoura den exei kalo scalability, diladi den ksero ti tha ginotan an zitousan to arxeio afto 10.000 atoma taftohrona. Se antithesi me to na to servire o apache, pou sto default installation tou mporei aneta na heiristei tetio ogo aitimaton.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Πεδίο "Type" για φωτογραφίες στο phpMyAdmin

Δημοσίευση από oikonomou » 12 Ιούλ 2006 00:03

cherouvim έγραψε:Epipleon, ta arxeia afta mporeis na ta exeis kato apo to cgi-bin folder, pou den mporei na ginei direct access apo ton client (browser). Etsi mporeis na elegkseis ti stelneis se pion ktl, se periptosi pou afto apaiteitai apo tin efarmogi pou ftiahneis.
ενδιαφερον αυτο..να κανω το folder images ας πουμε μεσα στον καταλογο cgi-bin;
(Υπομονη παιδια ειμαι και λιγο ασχετος)
Vevaia, ehe ypopsin, oti me to na servireis arxeio mesa apo php script, pas na eksomioseis ti doulia pou kanei o webserver. I methodos afti sigoura den exei kalo scalability, diladi den ksero ti tha ginotan an zitousan to arxeio afto 10.000 atoma taftohrona. Se antithesi me to na to servire o apache, pou sto default installation tou mporei aneta na heiristei tetio ogo aitimaton.
Εγω θελω να αλλαξω την εφαρμογη μου για καλυτερα..εαν ειναι να εχω πιο γρηγορη βαση ας εχω και κανενα μειονεκτημα :D
Ασ που δεν το κοβω ουτε για 10 νοματαιους ταυτοχρονα.

Το σβησιμο αρχειου γινετε με unlink απο οτι βρηκα στο manual ετσι;
unlink($name);
εαν θελω να βαλω και το καταλογο μεσα; πχ το
unlink(images/$name);
λογικα δεν θα δουλεψει.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Απάντηση

Επιστροφή στο “MySQL”

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

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