php mysql insert multiple rows dynamically

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

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

Απάντηση
mixaverros88
Δημοσιεύσεις: 24
Εγγραφή: 10 Μαρ 2013 21:06
Τοποθεσία: Ζωγραφου

php mysql insert multiple rows dynamically

Δημοσίευση από mixaverros88 » 16 Ιούλ 2013 11:19

Ξέρει κανείς πως μπορώ να βάλω δυναμικά πολες καταχωρίσεις σε μια βάση.

Δηλαδή ο χρήστης να μπορεί να επιλέξει πόσες καταχωήσεις θα κάνει και να γεμίζει την φόρμα.



Ευχαριστώ...
Συνημμένα
1.png
(13.24 KiB) Μεταφορτώθηκε 183 φορές
2.png

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

php mysql insert multiple rows dynamically

Δημοσίευση από burnmind » 16 Ιούλ 2013 12:11

Μία επιλογή είναι να το κάνεις με JavaScript. Δες ένα γρήγορο παράδειγμα εδώ.

Μπορείς να το κάνεις και με php με την ίδια λογική, απλά θα υπάρχουν reloads στη σελίδα, και θα πρέπει να φροντίσεις να κρατάς και να εμφανίζεις ξανά (προτού εμφανίζεις τις νέες γραμμές) τα fields που έχουν ήδη καταχωρημένες πληροφορίες.

Τώρα για το πώς θα τα βάλεις στη βάση, μπορείς πχ να χρησιμοποιήσεις το [] που υπάρχει στο name των input στο παραπάνω παράδειγμα. Κάνοντας αυτό, το $_POST['something'] θα είναι ένα array που θα περιέχει τα values όλων των "something" inputs.

mixaverros88
Δημοσιεύσεις: 24
Εγγραφή: 10 Μαρ 2013 21:06
Τοποθεσία: Ζωγραφου

php mysql insert multiple rows dynamically

Δημοσίευση από mixaverros88 » 16 Ιούλ 2013 12:35

burnmind έγραψε:Μία επιλογή είναι να το κάνεις με JavaScript. Δες ένα γρήγορο παράδειγμα εδώ.

Μπορείς να το κάνεις και με php με την ίδια λογική, απλά θα υπάρχουν reloads στη σελίδα, και θα πρέπει να φροντίσεις να κρατάς και να εμφανίζεις ξανά (προτού εμφανίζεις τις νέες γραμμές) τα fields που έχουν ήδη καταχωρημένες πληροφορίες.

Τώρα για το πώς θα τα βάλεις στη βάση, μπορείς πχ να χρησιμοποιήσεις το [] που υπάρχει στο name των input στο παραπάνω παράδειγμα. Κάνοντας αυτό, το $_POST['something'] θα είναι ένα array που θα περιέχει τα values όλων των "something" inputs.
Στο html κομμάτι θα είναι κάπως έτσι

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

<textarea type = "text"  cols = "60" rows = "1" name = "description&#91;&#93;" id = "description&#91;&#93;" autofocus></textarea>
Στο php και sql έχω θέμα,
Κάτι κώδικες που έχω έχει κάτι πίνακες και δεν καταλβαίνω τι κάνουν...
Αν ξέρεις και μπορείς να μου γράψεις τον κώδικα ευχαριστώ.

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

php mysql insert multiple rows dynamically

Δημοσίευση από burnmind » 16 Ιούλ 2013 12:41

Sorry, σου έσωσα κάποιες κατευθύνσεις και παραδείγματα, αλλά δεν πρόκειται να κάτσω να σου γράψω γραμμή γραμμή όλον τον κώδικα, για διάφορους λόγους. :)

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

mixaverros88
Δημοσιεύσεις: 24
Εγγραφή: 10 Μαρ 2013 21:06
Τοποθεσία: Ζωγραφου

php mysql insert multiple rows dynamically

Δημοσίευση από mixaverros88 » 19 Ιούλ 2013 12:23

burnmind έγραψε:Sorry, σου έσωσα κάποιες κατευθύνσεις και παραδείγματα, αλλά δεν πρόκειται να κάτσω να σου γράψω γραμμή γραμμή όλον τον κώδικα, για διάφορους λόγους. :)

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

Βρήκα αυτόν το κώδικα

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

include '../mysqlConnect.php'; 
	foreach&#40;$_POST&#91;'description_GR'&#93; as $row=>$description_GR&#41; 
		&#123;
		 
		$description_GR=mysql_real_escape_string&#40;$description_GR&#41;; 
		$datetime_apo=mysql_real_escape_string&#40;$_POST&#91;'datetime_apo'&#93;&#91;$row&#93;&#41;; 
		$datetime_ews=mysql_real_escape_string&#40;$_POST&#91;'datetime_ews'&#93;&#91;$row&#93;&#41;; 
		$accuracy=mysql_real_escape_string&#40;$_POST&#91;'accuracy'&#93;&#91;$row&#93;&#41;; 
		$description_EN="";
		
		
 
		$sql="INSERT INTO seminar VALUES
		&#40;
		'"."',
		'$seminar_id', 
		'$datetime_apo',
		'$datetime_ews',
		'$accuracy',
		'$description_GR',
		'$description_EN'
			&#41;" or die&#40;mysql_error&#40;&#41;&#41;;
		$result = mysql_query&#40;$sql, $con&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
Αλλά μου βγάζει error

"Column count doesn't match value count at row 1"

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

php mysql insert multiple rows dynamically

Δημοσίευση από alou » 19 Ιούλ 2013 13:58

Το συγκεκριμένο σφάλμα σου λέει ότι πας να βάλεις Χ τιμές σε Ψ στήλες όπου χ != ψ βέβαια.

Αν θες να κάνεις insert μόνο σε συγκεκριμένα κομμάτια του πίνακα, θα πρέπει να το ορίζεις συγκεκριμένα:

INSERT INTO seminar (stiliA, stiliB...) ...

ή αν θα έπρεπε να είναι όλες, τσέκαρε τι παραπάνω ή λιγότερο στέλνεις και σου βγάζει το σφάλμα.

Σε auto increment πεδία (πχ το id) θα στέλνεις κενή τιμή ''

Έχεις και ένα άσχετο concatenation στο πρώτο πεδίο, δεν βγάζει σφάλμα αλλά καλύτεραι να το κάνεις απλά
'',
'$seminar_id',
...

Απάντηση

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

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

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