ekriksi Δημοσ. 6 Σεπτεμβρίου 2016 Δημοσ. 6 Σεπτεμβρίου 2016 παιδιά καλημέρα έχω αυτόν τον κώδικα που βάζω μέσα στον πινάκα κάποιες έγγραφες και μετά τα παίρνω και σε μορφή excel, όλα καλά μέχρι εδώ! υπάρχει κάποιος τρόπος να φτιάξω custom id (ουσιαστικά φτιάχνω μια submision form) <?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysql_connect('localhost','books','hDed03#0') or die(mysql_error()); mysql_select_db('seksocio_ergasiabooks') or die(mysql_error()); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // attempt insert query execution $author = $_POST['author']; $title = $_POST['title']; $genre = $_POST['genre']; $sql = "INSERT INTO books (author, title, genre) VALUES ('$author', '$title', '$genre')"; if (!mysql_query($sql)) { die('Error: ' . mysql_error()); } // close connection mysql_close($link); ?> και αντί να μου τα βγάζει έτσι στο excel id author title genre 1 τεστ1 τεστ1 τεστ1 2 τεστ2 τεστ2 τεστ2 3 τεστ3 τεστ3 τεστ3 4 τεστ4 τεστ4 τεστ4 να τα δείχνει ετσι id author title genre aaaa-0001 τεστ1 τεστ1 τεστ1 aaaa-0002 τεστ2 τεστ2 τεστ2 aaaa-0003 τεστ3 τεστ3 τεστ3 aaaa-0004 τεστ4 τεστ4 τεστ4
ekriksi Δημοσ. 6 Σεπτεμβρίου 2016 Μέλος Δημοσ. 6 Σεπτεμβρίου 2016 τρεχω αυτο το αρχειο <?PHP // Original PHP code by Chirp Internet: www.chirp.com.au // Please acknowledge use of this code by including this header. function cleanData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } // filename for download $filename = "website_data_" . date('Ymd') . ".xls"; header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); mysql_connect ('localhost','books','hDed03#0') or die(mysql_error()); mysql_select_db('seksocio_ergasiabooks') or die(mysql_error()); $flag = false; $result = mysql_query("SELECT * FROM `books` ORDER BY `books`.`id` ASC") or die('Query failed!'); while(false !== ($row = mysql_fetch_assoc($result))) { if(!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\r\n"; $flag = true; } array_walk($row, __NAMESPACE__ . '\cleanData'); echo implode("\t", array_values($row)) . "\r\n"; } exit; ?>
anon667 Δημοσ. 6 Σεπτεμβρίου 2016 Δημοσ. 6 Σεπτεμβρίου 2016 Αντί για SELECT * στο export σου κάνε SELECT 'aaaa-' + LPAD(id, 4, '0') as custom_id, blabla τα υπόλοιπα πεδία που σε ενδιαφέρουν εδώ. Ίσως χρειαστεί να κάνεις cast το id σε nchar ή κάποιον αντίστοιχο τύπο πρώτα, δεν ξέρω πως το χειρίζεται η mysql.
ekriksi Δημοσ. 7 Σεπτεμβρίου 2016 Μέλος Δημοσ. 7 Σεπτεμβρίου 2016 οκ μάλλον δεν κατάλαβες την ερώτηση την έχω γράψει λίγο περίεργα! θέλω αντί για id 1,2,3 κτλ να έχω id aaaa,aaaa2,aaaa3 και ρωτάω πως θα το κάνω αυτό πως θα φτιάξω custom id??
anon667 Δημοσ. 7 Σεπτεμβρίου 2016 Δημοσ. 7 Σεπτεμβρίου 2016 Θες να αντικαταστήσεις πλήρως το πεδίο id του πίνακα και αντί για int κλειδί να έχεις π.χ. ένα αλφαριθμητικό; Ή μόνο για το export σε ενδιαφέρει να τροποποιείς on the fly την μορφή του πεδίου;
ekriksi Δημοσ. 7 Σεπτεμβρίου 2016 Μέλος Δημοσ. 7 Σεπτεμβρίου 2016 θέλω να αντικαταστήσω πλήρως το id ουσιαστικά τι θέλω να κάνω σε αυτή την φόρμα, θα μπαίνει ο χρήστης θα γράφει πχ όνομα επώνυμο κτλ και θα ανεβάζει και ένα αρχείο πχ τεστ.pdf οπότε για να μην έχω μπέρδεμα θέλω όταν ανεβαίνει το αρχείο αρχικά να αλλάζει όνομα (αν έχουμε και μια λύση γιαυτό)? και να παίρνει το όνομα του εκάστοτε id του χρήστη το οποίο θέλω να το κάνω με πρόθεμα aaaa2016-νούμερο το τελικό αποτέλεσμα που θέλω να έχει η mysql μου είναι αυτό id author title genre file aaaa-0001 τεστ1 τεστ1 τεστ1 aaaa-0001.pdf aaaa-0002 τεστ2 τεστ2 τεστ2 aaaa-0002.pdf aaaa-0003 τεστ3 τεστ3 τεστ3 aaaa-0003.pdf aaaa-0004 τεστ4 τεστ4 τεστ4 aaaa-0004.pdf ο αριθμός στο id και στο file δε με απασχολεί και τόσο κατά κύριο λόγο θέλω να ναι τα ίδια
anon667 Δημοσ. 7 Σεπτεμβρίου 2016 Δημοσ. 7 Σεπτεμβρίου 2016 Άρα θα χρειαστεί να φτιάξεις το table σου να έχει σαν id αντί για int τύπο (ή ό,τι έχει χρησιμοποιηθεί) κάποιον VARCHAR(666), όπου 666 ένα max μέγεθος που πιστεύεις πως σε καλύπτει. Λίγο πριν το insert, φτιάχνεις δυναμικά το id με το username και με τον επόμενο αριθμό που χρειάζεται να χρησιμοποιηθεί για τον χρήστη αυτόν (π.χ. select count(1) + 1 from books where id like 'aaaa%' -- όπου aaaa το username εκείνης της στιγμής) και θα το χρησιμοποιείς κανονικά την ώρα του insert για να δηλώσεις την τιμή του id πεδίου (μιας και όπως είναι τώρα το id σου είναι auto increment και δεν χρειάζεται να το αναφέρεις την ώρα της καταχώρησης). So, - user = 'lougkra', ο οποίος έχει 327 uploads. - Do your magic with PHP για να πάρεις την τιμή του πεδίου που σου επιστρέφει το query " SELECT COUNT(1) + 1 FROM books WHERE id LIKE 'lougkra%' ". - Φτιάξε το όνομα του αρχείου έτσι όπως το θες. - Φτιάξε το id έτσι όπως το θες, π.χ. $mySuperCool_id = $user + '-' + $new_count - Do the insert " INSERT INTO books (id, author, title, genre, file) VALUES ($mySuperCool_id, bla, bla, bla, $mySuperCool_file)" Τα παραπάνω αν είσαι υποχρεωμένος να έχεις το id με την συγκεκριμένη μορφή. Θα μπορούσες να έχεις σαν primary key τον συνδυασμό δύο στηλών (π.χ. ένα id και το username/user_primary_key), το οποίο θα διευκόλυνε την ζωή σου (στο οποίο διαβάζω πως αναλόγως τον τύπο που έχεις επιλέξει για την βάση σου, έχει την δυνατότητα να κάνει auto increment π.χ. μόνο το id πεδίο του κλειδιού ενώ κάνεις καταχώρηση, but have fun exploring). Hope it helps.
ekriksi Δημοσ. 7 Σεπτεμβρίου 2016 Μέλος Δημοσ. 7 Σεπτεμβρίου 2016 φίλε σε υπέρ ευχαριστώ επειδή όμως δεν έχω πολλές γνώσεις προχτές σκέψου έπιασα να τα ψάχνω αυτά θα μπορούσες σε αυτόν τον κωδικά παρακάτω να κάνεις τις αλλαγές που μου είπες?? <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $FileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 10000000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($FileType != "doc" && $FileType != "docx" && $FileType != "rtf" && $FileType != "pdf" ) { echo "Sorry, only DOC, DOCX, RTF & PDF files are allowed.<br>"; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysql_connect('mysqlcluster7','beta_form','χχχχχ') or die(mysql_error()); mysql_select_db('betaform') or die(mysql_error()); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // attempt insert query execution $author = $_POST['author']; $title = $_POST['title']; $fileToUpload = basename($_FILES["fileToUpload"]["name"]); $sql = "INSERT INTO books (author, title, fileToUpload) VALUES ('$author', '$title', '$fileToUpload')"; if (!mysql_query($sql)) { die('Error: ' . mysql_error()); } // close connection mysql_close($link); ?>
anon667 Δημοσ. 7 Σεπτεμβρίου 2016 Δημοσ. 7 Σεπτεμβρίου 2016 Θα χρειαστεί να γίνουν αλλαγές στην βάση σου πρώτα για να αλλάξεις τον κώδικα. Δυστυχώς εκεί δεν μπορώ να σε βοηθήσω. Καλή τύχη στην αναζήτηση!
ekriksi Δημοσ. 7 Σεπτεμβρίου 2016 Μέλος Δημοσ. 7 Σεπτεμβρίου 2016 οκ σε ευχαριστώ πολύ πάντως ήταν μεγάλη βοήθεια
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα