Προς το περιεχόμενο

PHP Mysql Form


Προτεινόμενες αναρτήσεις

Δημοσ.

Χαιρετώ το φόρουμ,

Προσπαθώ να φτιάξω ένα απλό LED Saving Calculator όπου ο χρήστης θα επιλέγει την λάμπα που έχει τώρα, θα γράφει πόσες ώρες ανάβει εβδομαδιαίως, και θα του προτείνω αντίστοιχη LED και θα του λέω πόση εξοικονόμηση θα έχει ανά μήνα.

Έφτιαξα το layout και τώρα χρειάζομαι να παίρνω τα δεδομένα για να κάνω τους υπολογισμούς.

Παράδειγμα: Ο χρήστης επιλέγει την πρώτη λάμπα, βάζει ότι έχει 10 λάμπες και ότι δουλεύουν 50 ώρες την εβδομάδα.

Εγώ θα του πω: Με τη λάμπα που έχεις τώρα έχεις "Λάμπα * 50 * 0,70" κατανάλωση και εγώ σου προτείνω την αντίστοιχη LED λάμπα με "LED Λάμπα * 50 * 0,20" κατανάλωση.
Η αντίστοιχη LED λάμπα φαίνεται στο table ότι είναι η διπλανή αυτής που επέλεξε.

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

 

hx184g.jpg

$result = mysqli_query($con,"SELECT * FROM calculator"); 

// Selection of current lamp 
echo "Please select your current lamp: "; 
echo "<select id='old-lamp'>"; 
echo "<option value='blank'> </option>"; 

while($row = mysqli_fetch_array($result)) 
{ 
echo "<option value=".$row['old-lamp'].">".$row['old-lamp']."</option>"; 
}  
echo "</select>"; 
echo "<br />"; 

// How many lamps? 
echo "How many lamps? "; 
echo "<input type='text' name='lamps'>"; 
echo "<br />"; 

// Weekly operation hours 
echo "Weekly hours of operation? "; 
echo "<input type='text' name='hours'>"; 

?>  
Δημοσ.

A) Χρησιμοποίησε pdo για db manipulation καλύτερα. Σου παρέχει prepared statements και κάνει το app σου mysql_injection proof

 

Β)Τα input στην hyml μπαίνουν μέσα σε ένα <form> tag ότι σου δίνει το form το παίρνεις είτε μέσω της μεταβλήτής $_POST είτε μέσωφ της μεταβλητής $_GET που είναι ένα associative πίνακας έτσι αν έχεις την παρακάτω φόρμα.

<form method="post" action="something.php">
<input type="text" name="a">
<input type="text" name="b">
<input type="submit" name="submit" value="Submit values">
</form>

Η $_POST θα περιέχει τα elements

$_POST['a'] $_POST['b'] $_POST['submit']

 

Αν αλλάξουμε το

<form method="post" action="something.php">

με

<form method="get" action="something.php">

τότε η μεταβλητή $_GET θα έχει τις παραμέτρους

$_POST['a'] $_POST['b'] $_POST['submit']

 

Έτσι παίρνωντας αντίστοιχες τιμές από τον πίνακα $_GET ή $_POST δημιουργείς το query για να βάλεις τα δεδομένα στην βάση η α κάνεις τους υπολογισμούς σου.

 

Γ) Τέλος στον κώδικα  στο σημείο

echo "<select id='old-lamp'>"

Άλλαξέ το με:

echo "<select id='old-lamp' name='old-lamp' >"

Ειδάλλως o php κώδικας δεν θα μπορεί να πάρει τιμές της φόρμας.

 

Δ)Τέλος Καλύτερα να επανασχεδιάσεις την βάση σου Σου προτείνω τα Watt  κάθε λάμπας να είναι σε ξεχωριστό πεδίο

 

Δηλαδή σου προτείνω την εξής δομή του πίνακα:
Πίνακας Lamps

ID, title, watt, consumption, type

ID: Πρωτεύων κλειδί του πίνακα

title: Μάρκα - όνομα λάμπας

Watt: Ισχύς λάμπας

Type: Τύπος Λάμπας (LED, ή Παλαιού τύπου)

 

Και έναν άλλον πίνακα:

Πίνακας Calculator:

IDOLD, IDLED

Που θα αντιστοιχίζει το ID της παλιάς Λάμπας με το ID της Λάμπας LED

Τα πεδία:

IDOLD: Το ID της παλιάς Λάμπα

IDLED: Το ID της Λάμπας LED

 

Μια άλλη προσέγγιση είναι μέσω τύπου που θα μπορεί να αντιστοιχίζει Watt Πυρακτώσεως με Watt  LED Μετά μπορείς να Επιλέχεις μια από παραπάνω προτάσεις που ικανοποιούν την συνθήκη [(Watt Λάμπας -Watt που υπολόγισες από τον τύπο )>0 OR κατανάλωση< καταλάλωση Πυρακτώσεως] AND τύπος=='LED'

 

Έτσι δεν θα χρειάζεσαι τον τελευταίο πίνακα (Πίνακας Calculator)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...