PHP/MYSQL απορίες

PHP, ASP, Javascript, MySQL, WordPress, Joomla, phpBB, OpenSource λογισμικό.

PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 08.06.12, 4:14 pm

Καλησπέρα παιδιά,

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

Ερώτηση αρκούν οι php/mysql ή χρειάζεται και javascript; Αν ναι γιατί;

Τώρα ας πάμε στο πιο ειδικό.

Ξεκίνησα αρχικά δημιουργόντας μια σύνδεση.

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

$mysqli = new mysqli("localhost", "root", "password", "accounts");

if(mysqli_connect_errno())
{
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}
else
{
   printf("Host information: %s\n", mysqli_get_host_info($mysqli));
}

?>


Έπειτα δημιούργησα μια απλή φόρμα σε html. Στο action έβαλα το .php αρχεί που έφτιαξα για την σύνδεση και απλά μέσα στο else(που μπαίνει όταν συνδέεται με επιτυχία) του παραπάωνω κώδικα έγραψε sql εντολές. Τώρα παίζω με αυτά. Δλδ να εισάγω π.χ. πίνακες στη βάση, να τυπώνω τα στοιχεία κλπ.

Πιο εξιδικευμένα οι απορίες που έχω είναι οι εξης:

1. Τι κάνω παρακάτω; Πως ανεβάζω φωτογραφίες;

2. Πως θα φτιάξω δύο πίνακες accounts, images που να αλληλεπιδρούν; Δλδ ο φωτογράφος να πηγαίνε αυτόματα ως χαρακτηριστικό και στην φωτογραφία;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 10.06.12, 2:31 pm

Λοιπόν έχω φτιάξει μια φόρμα που κάνω εισαγωγή δεδομένα σε μια βάση.

Ορίστε ο κώδικας:

Κώδικας: Επιλογή όλων
<?php
$mysqli = mysqli_connect("localhost", "root", "password", "library");

if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
} else {
   $sql = "INSERT INTO books (books_title, books_writer) VALUES ('".$_POST["title"]."','".$_POST["writer"]."')";
   $res = mysqli_query($mysqli, $sql);

   if ($res === TRUE) {
         echo "A record has been inserted.";
   } else {
      printf("Could not insert record: %s\n", mysqli_error($mysqli));
   }

   mysqli_close($mysqli);
}


?>


Έχω μπόλικες ερωτήσεις γιατί έχει παίξει πολύ copy-paste στο κώδικα.

1. Την mysqli_connect την "καλώ" ώστε να δημιουργήσω την σύνδεση με την βάση σωστά; Αυτό δεν μπορώ να το κάνω σε ένα άλλο αρχείο php και να το συμπεριλαμβάνω κάθε φορά με include;

2. Τι ακριβώς κάνει η mysqli_query; Χρειάζεται δύο μεταβλητές; Μια που να δείχνει στη σύνδεση και μια που να δείχνει την sql εντολή;

3. Στην sql εντολή δεν μπορώ να γράψω με κάποιο πιο κομψό τρόπο την $_POST; Εννοώ όλα αυτά τα μπλιμπλίκια " ' . . ' "

4. Στην if την δεύτερη γιατί βάζει === ; Ποιά η διαφορά από ==;

Χμμ αυτά για αρχή. Notis ελπίζω σε σένα :P
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 10.06.12, 3:39 pm

Λιάκουρας έγραψε:1. Την mysqli_connect την "καλώ" ώστε να δημιουργήσω την σύνδεση με την βάση σωστά; Αυτό δεν μπορώ να το κάνω σε ένα άλλο αρχείο php και να το συμπεριλαμβάνω κάθε φορά με include;
2. Τι ακριβώς κάνει η mysqli_query; Χρειάζεται δύο μεταβλητές; Μια που να δείχνει στη σύνδεση και μια που να δείχνει την sql εντολή;
3. Στην sql εντολή δεν μπορώ να γράψω με κάποιο πιο κομψό τρόπο την $_POST; Εννοώ όλα αυτά τα μπλιμπλίκια " ' . . ' "
4. Στην if την δεύτερη γιατί βάζει === ; Ποιά η διαφορά από ==;


1. Ναι και στα δύο
2. Δεν χρειάζεται δύο μεταβλητές, αλλά δύο παραμέτρους. Η πρώτη είναι το ίδιο το ερώτημα στη βάση δηλαδή ρωτάς με συγκεκριμένο τρόπο τι αποτελέσματα ζητάς να σου επιστρέψει και η δεύτερη είναι το connection. Αν έχεις μόνο ένα connection ανοικτό δεν είσαι υποχρεωμένος να το ορίζεις (εξυπακούεται πως αναφέρεσαι σ' αυτό το connection).
Μπορείς δηλαδή για παράδειγμα να έχεις:
Κώδικας: Επιλογή όλων
$result = mysqli_query("select * from my_table where id>100");

3. Μπορείς να αναθέσεις πρώτα όλες τις POST μεταβλητές σε απλές μεταβλητές και μετά να χρησιμοποιείς αυτές στα queries. Για παράδειγμα:
Κώδικας: Επιλογή όλων
$name = $_POST["fullName"];
$result = mysqli_query("select * from my_table where name='$name' and active=1");

το οποίο είναι ισοδύναμο του:
Κώδικας: Επιλογή όλων
$name = $_POST["fullName"];
$result = mysqli_query("select * from my_table where name=".$name." and active=1");

4. Το == είναι ισότητα και το === είναι απόλυτη ισότητα
Στο παράδειγμα σου το $res === TRUE δεν είναι το ίδιο με το $res == "TRUE"
Στην πρώτη περίπτωση ελέγχουμε αν είναι αληθής η συνθήκη (δηλαδή αν επέστερεψε δεδομένα το query) και στη δεύτερη ελέγχουμε αν η $res ισούται με την λέξη "αλήθεια".
Με λίγα λόγια το === σημαίνει να είναι και η τιμή ίδια αλλά και ο τύπος των δεδομένων ίδιος! Στην PHP και σε όλες τις γλώσσες, το "100" (με εισαγωγικά) είναι λέξη/φράση ενώ το 100 είναι αριθμός.
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 10.06.12, 4:12 pm

Ως προς το 4 ερώτημα κι κάτι τέτοιο if($res) δεν είναι αντίστοιχο μιας σνθήκης που ρωτάει συνέχισε αν $res αληθές δλδ πραγματοποιήθηκε;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 10.06.12, 5:11 pm

Ναι αλλά δεν σημαίνει πως είναι boolean TRUE
Θα μπορούσε να επιστρέφει αληθές και αν η $res=="Λιάκουρας"
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 10.06.12, 5:25 pm

Οπότε η php επιστρέφει true or false όταν εκτελείται ένα mysqli_query άναλογα την έκβαση της διαδίκασίας φαντάζομαι.

Τώρα έχω μπλέξει με το SELECT. Ανακτώ τα δεδομένα με την sql διατύπωση όμως πως τα τυπώνω στην οθόνη;

Αλήθεια είναι προτιμότερο να μπλέκώ κώδικα php με html tag όπως βλέπω να κάνουν σε πολλά παραδείγματα ή να φτιάχνω τον κώδικα html που χρειάζομαι και εκεί να γράφω το php script; Η δεύτερη μέθοδος μου μοιάζει πιο μαζεμένη και ευανάγνωστη.
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 10.06.12, 6:29 pm

Προσωπικά προτιμώ το
Κώδικας: Επιλογή όλων
<div><?php echo $var;?></div>


παρά το

Κώδικας: Επιλογή όλων
<?php echo "<div>".$var."</div>";?>


Πάντως χρειάζεσαι πολύ διάβασμα θεωρίας ακόμα πριν ασχοληθείς με την υλοποίηση του project.
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 10.06.12, 6:36 pm

Κι εγώ την στα ίδια μου φαίνεται πως θα είμαι ως προς τον κώδικα.

Όταν λες διάβασμα θεωρίας τι εννοείς; Η υλοποίηση του project δεν είναι ένας καλός τρόπος για να μάθω;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 15.06.12, 5:07 pm

Ερώτηση πάνω στις βάσεις δεδομένων:

Σε reality καταστάσεις γίνεται πριν την δημιουργία και την υλοποίηση μιας βάσης διάγραμμα οντοτήτων-συσχετήσεων το οποίο μετατρέπεται σε σχεσιακό μοντέλο και έπειτα υλοποιείται η βάση; Ή όλα αυτά είναι θεωρητικές φαμφάρες των Πανεπιστημίων.

Ακόμα για απλές υλοποιήσης όπως μια βάση δεδομένων καταχώρησης, ανάκτησης και διαγραφείς βιβλίων υπάρχει λόγος για πολλούς πίνακες με σχέσεις ένα προς πολλά και τα λοιπα; Δεν είναι το ίδιο λειτουργικός ένα πίνακας με πολλά χαρακτηριστικά;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 15.06.12, 5:57 pm

Όσο περισσότεροι πίνακες με σχέσεις μεταξύ τους, τόσο λιγότερα προβλήματα θα συναντήσεις στην υλοποίηση της εφαρμογής.
Ας δούμε αυτό που προτείνεις, ένα πίνακα με όλες τις πληροφορίες.
Έχουμε λοιπόν ένα πίνακα books που πρέπει να κρατάει τις ακόλουθες απλές πληροφορίες:
id
title
author
publisher
pages
isbn
category

Πες μου το πιο απλό!
Αν στα πεδία author & publisher συμπληρώνεις ονόματα, και αργότερα ένας Εκδοτικός Οίκος αλλάζει όνομα, τι κάνεις;
Αντίστοιχα αν υπάρχουν περισσότεροι του ενός συγγραφείς για ένα βιβλίο;
Αν ένα βιβλίο ανήκει ταυτόχρονα σε περισσότερες της μιας κατηγορίες;

Απλά τροφή για σκέψη...
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 15.06.12, 6:18 pm

Νότη συμφωνώ απόλυτα.

Απλά αυτό που δεν έχω καταλάβει με τις συσχετήσεις είναι το εξής:

πχ. ο πίνακας books έχει πρωτεύον κλειδί το book_id. Ο εκδοτικός το publisher_id. Η σχέση τους είναι 1 προς πολλά. Ένα βιβλίο μπορεί να έχει ένα εκδοτικό οίκο, ένας εκδοτικός οίκος μπορεί να έχει πολλά βιβλία.

Πως στο καλό αν αλλάξω το χαρακτηριστικό όνομα στον εκδοτικό θα αλλάξει κι το χαρακτηριστικό εκδοτικός στο βιβλίο;

Μπορείς να μου το εξηγήσεις, παραστήσεις κάπως κατανοητά;

Ευχαριστώ πραγματικά,
Ηλίας
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 15.06.12, 6:45 pm

Στη σχέση ένα προς πολλά, απλά εκτός από το table books θα έχεις και ένα table publishers με πεδία:
id
title

Αν σ' αυτόν τον πίνακα έχεις μια εγγραφή πχ:
id=54
title="Εκδόσεις ΑΓΚΥΡΑ"

και στον πίνακα books έχεις κάποια βιβλία αυτού του εκδοτικού οίκου, στο πεδίο publisher_id αυτών των εγγραφών θα αποθηκεύεις την τιμή 54 (ξένο κλειδί προς το πρωτεύων κλειδί id του πίνακα publishers).

Έτσι αργότερα μπορείς να κάνεις αλλαγή της επωνυμίας σε "Εκδόσεις Νούφαρο", και επειδή το id παραμένει το 54, όλα σου τα βιβλία πλέον θα παραπέμπουν στον εκδοτικό οίκο "Εκδόσεις Νούφαρο"!
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 16.06.12, 12:55 am

Ερωτήσεις:

1. Στον πίνακα books θα έχω ως ένα χαρακτηριστικό και το publisher_name;

2. Στον πίνακα books θα θέλω να εισάγει ένα βιβλίο κάποιος χρήστης μέσο της web εφαρμογής. Αυτός όμως δεν θα ξέρει το publisher_id αλλά το όνομα των εκδόσεων του βιβλίου. Τι θα συμπληρώνει λοιπόν αυτός στην φόρμα;

Φαντάζομαι πως στο 2 μπορώ να τον βάλω να μου δίνει το όνομα του εκδοτικού και έπειτα να κάνω ένα select publisher_id from publisher where publisher_name= "όνομα εκδοτικού με την πόστ" να αποθηκεύω το αποτέλεσμα σε μια μεταβλητη και έπειτα να βάζω αυτή την μεταβλητή στο foreign key publisher_id που θα υπάρχει στο πίνακα books.
Αυτός είναι ο τρόπος;
Απλοϊκός προγεαμματισμός;

Αν ναι εδώ γεννιέται το εξής πρόβλημα. Θα μου δώσει σωστά το όνομα όπως θα είναι καταχωρυμένο στο πίνακα publisher; Αν όχι; Αν ο εκδοτικός δεν υπάρχει στον πίνακα;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 16.06.12, 11:27 am

Λιάκουρας έγραψε:Ερωτήσεις:

1. Στον πίνακα books θα έχω ως ένα χαρακτηριστικό και το publisher_name;

2. Στον πίνακα books θα θέλω να εισάγει ένα βιβλίο κάποιος χρήστης μέσο της web εφαρμογής. Αυτός όμως δεν θα ξέρει το publisher_id αλλά το όνομα των εκδόσεων του βιβλίου. Τι θα συμπληρώνει λοιπόν αυτός στην φόρμα;

Φαντάζομαι πως στο 2 μπορώ να τον βάλω να μου δίνει το όνομα του εκδοτικού και έπειτα να κάνω ένα select publisher_id from publisher where publisher_name= "όνομα εκδοτικού με την πόστ" να αποθηκεύω το αποτέλεσμα σε μια μεταβλητη και έπειτα να βάζω αυτή την μεταβλητή στο foreign key publisher_id που θα υπάρχει στο πίνακα books.
Αυτός είναι ο τρόπος;
Απλοϊκός προγεαμματισμός;

Αν ναι εδώ γεννιέται το εξής πρόβλημα. Θα μου δώσει σωστά το όνομα όπως θα είναι καταχωρυμένο στο πίνακα publisher; Αν όχι; Αν ο εκδοτικός δεν υπάρχει στον πίνακα;


Μου θυμίζεις τόσο πολύ τις απορίες που είχα πριν 12 χρόνια όταν άρχιζα να ασχολούμαι με mysql και εφαρμογές διαχείρισης δεδομένων :)

1. Θα έχεις μόνο το publisher_id

2. Το πεδίο της φόρμας σου που θα αντιστοιχεί στον publisher δεν θα είναι textbox για να καταχωρήσει κάποιος αριθμό id ή όνομα εκδοτικού οίκου. Θα είναι ένα select menu το οποίο θα δείχνει τα ονόματα και σε κάθε όνομα σαν value θα έχει το αντίστοιχο publisher_id.
Για να το πετύχεις αυτό πρέπει να δημιουργήσεις το select menu δυναμικά με php&mysql.
Παράδειγμα:
Κώδικας: Επιλογή όλων
<select name="publisher_id">
<?php
$sql = "select * from publishers";
$result = mysqli_query($mysqli, $sql);
while($row = mysqli_getch_array($result, MYSQLI_ASSOC)){
?>
<option value="<?php echo $row['id'];?>"><?php echo $row['title'];?></option>
<?php
}
?>
</select>
<?php
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 16.06.12, 11:29 am

Να συμπληρώσω πως σε τέτοιες περιπτώσεις, οι φόρμες προσθήκης νέων εγγραφών είναι πάντα οι πιο απλές. Εκεί που αρχίζουν τα ζόρια είναι στις φόρμες επεξεργασίας στοιχείων υφιστάμενων εγγραφών.
Βέβαια θα το διαπιστώσεις και μόνος σου στη συνέχεια... :wink:
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 16.06.12, 12:02 pm

Και αν ο εκδοτικός δεν υπάρχει στο σύστημα ως προεπιλογή απο πρίν; Θα πρέπει να του δώσω την δυνατότητα να εισάγει εκδοτικούς;

Πχ. Το ίδιο μπορεί να συμβεί και με τους συγγραφείς.

Η σχέση πολλά προς πολλά σπάει με μια όντότητα στο ενδιάμεσο με σχέσεις ένα προς πολλά και πολλά προς ένα. Λοιπόν αυτή η οντότητα πέρνει ξένα κλειδιά τα πρωτεύοντα της πάνω και της κάτω.

Πως λειτουργεί; Πχ. έχω δύο συγγραφείς σε ένα βιβλίο πως θα υλοποιηθεί αυτό αφού δεν υπαρχεί ξένο κλειδί στο author ώστε να δείχνει το ίδιο id βιβλίου σε δύο συγγραφείς αλλά υπάρχουν τα ξένα κλειδιά σε μια άλλη οντότητα.
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 16.06.12, 2:30 pm

Για όσους πρωτεύοντες πίνακες έχεις στη βάση (πχ books, publishers, authors κλπ) πρέπει να δίνεις και δυνατότητα CRUD στον χρήστη. Σε πιο σοφιστικέ καταστάσεις μπορείς να έχεις και ένα εικονίδιο [+] δίπλα στο select menu και όταν κάνει κλικ ο χρήστης να του ανοίγει pop-up window για εισαγωγή νέας επιλογής στον πίνακα και κατ' επέκταση στο select menu. Αλλά επειδή αυτό είναι αρκετά προχωρημένο και πιο δύσκολο, έχε τις δυνατότητες προσθήκης νέων εγγραφών σε ξεχωριστές σελίδες. Να υποχρεώνεις δηλαδή τον χρήστη να καταχωρεί πρώτα όλες αυτές τις σχετικές πληροφορίες και μετά να καταχωρήσει το βιβλίο.

Για να υλοποιήσεις σχέσεις πολλά προς πολλά χρειάζεσαι bridge table, δηλαδή ένα τρίτο βοηθητικό πίνακα που θα κρατάει αυτές τις σχέσεις. Για πολλούς συγγραφείς ανά βιβλίο θα χρειαστείς για παράδειγμα 3 πίνακες:
books
authors
και τον βοηθητικό (ας τον ονομάσουμε books_authors) που θα έχει τουλάχιστον δύο πεδία, το book_id και το author_id

Αν έχουμε δηλαδή το βιβλίο με id=34 και το έχουν γράψει τρεις συγγραφείς (με author_id τα 2,5 και 10), θα έχουμε στον πίνακα books_authors 3 εγγραφές:

book_id | author_id
--------------------
34 | 2
34 | 5
34 | 10
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 16.06.12, 2:49 pm

Πως θα μπορεί ο χρήστης όμως να επιλέξει τρείς συγγραφείς για παράδειγμα;

Στο παράδειγμα του εκδοτικού χρησιμοποιήσαμε την <select> οπου όμως δίνετε η επιλογή για ένα.
Τώρα πως θα δώσω την επιλογή για πολλά;
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό notis » 16.06.12, 3:15 pm

Για να επιλέγεις ένα, υπάρχουν το select menu ή τα radio buttons
Για να επιλέγεις πολλά, υπάρχουν το select list ή τα checkboxes
Το κριτήριο για επιλογή select είναι η ποσότητα των εγγραφών. Αν είναι πολλές επιλέγουμε select διαφορετικά checkboxes.

Ελπίζω να καταλαβαίνεις τώρα τι εννοούσα με το "χρειάζεσαι αρκετή μελέτη θεωρίας". Όταν κάνεις τέτοιου είδους ερωτήσεις για εύκολα και κλασσικά θέματα HTML, δεν μπορείς καν να φανταστείς τι σε περιμένει σε επίπεδο php&mysql πιο πέρα στην υλοποίηση της εφαρμογής!

Και θα είναι μέγα σφάλμα να στηριχτείς απλά στην βοήθεια των fora, επειδή ακριβώς δεν είναι δεδομένη!
Να σου πω ένα παράδειγμα. Κάποτε γνώρισα διαδικτυακά μια κοπέλα από την Θεσσαλία, η οποία είχε μια ανάλογη πτυχιακή εργασία. Ξεκίνησα να την βοηθώ, στην αρχή από το freestuff.gr μετά από skype, facebook κλπ.
Στην αρχή με τα κομμάτια κώδικα που παρέθετε, είχα σχηματίσει τη γνώμη πως έχει καλές βάσεις και πως άξιζε να την βοηθήσω. Βοήθεια στη βοήθεια και παραθέτοντας με τη σειρά μου βελτιωμένα τμήματα κώδικα, φτάσαμε να έχουμε ολοκληρώσει μαζί περίπου το μισό project! Μέχρι που κάποια στιγμή συνειδητοποίησα πως ό,τι κώδικα μου είχε μέχρι τότε παραθέσει ήταν του καθηγητή της και πως η ίδια δεν είχε κατανοήσει ούτε καν τα βασικά! Ειδικά στο τέλος που προσπαθούσα μέσω θεωρίας να της μάθω κάποια πράγματα, φτάσαμε σε σημείο να δυσανασχετεί με τα γνωστά pfffff της νεολαίας και να απαιτεί έτοιμο τον κώδικα να τον κοτσάρει και να "πάμε παρακάτω".
Όπως καταλαβαίνεις εγκατέλειψα κάθε προσπάθεια και ούτε ξέρω τι έκανε παρακάτω...

Δεν λέω πως είσαι ίδια περίπτωση, απλά το αναφέρω για να κατανοήσεις πως πρέπει να στηρίζεσαι πάνω απ' όλα στις δικές σου δυνάμεις! :wink:
Εγώ όσο μπορώ θα βοηθώ, αλλά αυτό δεν θα πρέπει να το θεωρείς δεδομένο για κανέναν μας!
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: PHP/MYSQL απορίες

Δημοσίευσηαπό itsoum » 16.06.12, 4:56 pm

Δεν μπορώ να περάσω και τα δύο author_id στον ενδιάμεσο πίνακα παρόλο που χρησιμοποιώ το
<select multiple="multiple">.

Ακόμα δεν βρίσκω τρόπο να περάσω το book_id στο ενδιάμεσο. Προσπάθησα ανακτόντας το με την select βάζοντας για where book_isbn = "$isbn"(αυτό που έχω πάρει μέσο της post).


Υγ. Συμφωνώ με τα υπόλοιπα.
"Ένας ανόητος δεν βλέπει το ίδιο δένδρο που βλέπει ένας σοφός."
William Blake

Εξοπλισμός: canon 5d | 28mm f/1.8 usm | 50mm f/1.8 || canon s95
Πωλούνται: pentax z-50p
itsoum
Member
 
Posts: 156
Εγγραφή: 21.05.09, 11:49 am
Τοποθεσία: Νέα Σμύρνη

Επόμενο

Επιστροφή στο II.III Προγραμματισμός + Τεχνολογία ανοιχτού κώδικα

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

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

Visual Communication Designers Club

Το Visual Communication Designers Club, το μεγαλύτερο Ελληνικό online design forum, αποτελεί μια Ελληνική κοινότητα σχεδιαστών οπτικής επικοινωνίας, υπό την ευρύτερη έννοια του όρου, θέλοντας να συμπεριλάβει στα μέλη της κάθε ειδικότητα και βαθμίδα όσων σπουδάζουν ή εργάζονται στον χώρο της επικοινωνίας, έντυπης, διαδικτυακής, τρισδιάστατης ή εφαρμογών πολυμέσων