Uberalles_gr Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Μπορείς σε παρακαλώ να μας δώσεις τον κώδικα από την σελίδα που έχει το πρόβλημα μπας και βρούμε καμία άκρη?
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 <?php $conn=mysql_connect("localhost","root",""); // (host, username, password) mysql_query("set names 'greek'", $conn); mysql_query("set character set 'greek'", $conn); $db = mysql_select_db('erg_db',$conn); ?> <!doctype html public "-//w3c//dtd html 3.2//en"> <html> <head> <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-7"> <title>Διαγραφή εργαστηριακού τμήματος</title> <meta name="GENERATOR" content="Arachnophilia 4.0"> <meta name="FORMATTER" content="Arachnophilia 4.0"> </head> <body> <?php error_reporting(E_ALL & ~E_NOTICE); $school=$_POST['cat']; $section=$_POST['subcat']; $lesson=$_POST['subcat2']; $number_of_team=$_POST['subcat3']; if ($school == 0) { echo"Παρακαλώ επιλέξτε σχολή"; return false; } if ($section == 0) { echo"Παρακαλώ επιλέξτε τμήμα"; return false; } if ($lesson == 0) { echo"Παρακαλώ επιλέξτε μάθημα"; return false; } if ($number_of_team == "") { echo"Παρακαλώ επιλέξτε ομάδα"; return false; } mysql_query("DELETE FROM laboratory_section WHERE id_lesson=$lesson AND number_of_team=$number_of_team"); echo "Η Διαγραφή Ολοκληρώθηκε"; ?> </body> </html> ---------- Προσθήκη στις 17:33 ---------- Προηγούμενο μήνυμα στις 17:29 ---------- αυτες τις μεταβλητες $school=$_POST['cat']; $section=$_POST['subcat']; $lesson=$_POST['subcat2']; $number_of_team=$_POST['subcat3']; τις παιρνω απο αλλο php me drop down list
Uberalles_gr Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Μια χαρά φαίνεται ο κώδικας (αν και από θέμα ασφάλειας και sql injection δεν κάνεις τίποτα.......) Δεν ξέρω.. άλλαξε το > mysql_query("DELETE FROM laboratory_section WHERE id_lesson=$lesson AND number_of_team=$number_of_team"); σε > mysql_query("DELETE FROM `laboratory_section` WHERE id_lesson = '$lesson' AND number_of_team = '$number_of_team' ") or die(mysql_error()); Πρέπει να φτιάξεις και το τι γίνεται όταν ισχύει μία συνθήκη με τα if....
Uberalles_gr Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Φίλε μου δεν ξέρω.... Είναι 3 οι εκδοχές 1) Σου σβήνει κανονικά την εγγραφή (λες ότι δεν την σβήνει αλλά εκτελώντας το query μέσα από την διαχείριση της βάσης στην σβήνει) 2) Δεν υπάρχει εγγραφή για να σβήσει (λες ότι υπάρχει) 3) Σου χτυπάει κάποιο error (λες ότι δεν χτυπάει) ΔΕΝ ΞΕΡΩ φίλε μου...
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 τι να πω ουτε εγω μπορω να βρω που εχω λαθος.....παντως σας ευχαριστω πολυ ολους.
macabre_sunsets Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Για varchar δεν είναι καλύτερη η χρήση του LIKE? >$query = sprintf("DELETE FROM laboratory_section WHERE id_lesson = %d AND number_of_team LIKE '%s' ", $lesson, $number_of_team); mysql_query($query) or die(mysql_error()); Επίσης αντί για $_POST αν χρησιμοποιήσεις $_REQUEST μπας και έχει καμια διαφορά?
isay Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Sifalio, σε παρακαλώ ότι κώδικα γράφεις, να τον βάζεις σε php tag (υπάρχει κουμπάκι, όταν συντάσεις το κείμενο). Πριν κάνεις τις παρακάτω αλλαγές θέλω να φτιάξεις μια καινούργια $number_of_team που αντί για OM1 να είναι SS1 και θα δουλεύουμε με αυτή την καταχώρηση (όχι με την OM1). Κάνε τις παρακάτω αλλαγές στην σελίδα σου Στο σημείο που λεει >$conn=mysql_connect("localhost","root",""); // (host, username, password) αντικατέστησε το με >$conn=mysql_connect("localhost","root",""); // (host, username, password) if (!$conn) { die('Could not connect: ' . mysql_error()); } Τον κώδικα > mysql_query("DELETE FROM laboratory_section WHERE id_lesson=$lesson AND number_of_team=$number_of_team"); echo "Η Διαγραφή Ολοκληρώθηκε"; αντικατέστησε τον με το παρακάτω >echo '<BR><BR>Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα:<br>'; echo 'Μεταβλητή school είναι <b>'.$school.'</b></br>'; echo 'Μεταβλητή section είναι <b>'.$section.'</b></br>'; echo 'Μεταβλητή lesson είναι <b>'.$lesson.'</b></br>'; echo 'Μεταβλητή number_of_team είναι <b>'.$number_of_team.'</b></br>'; echo 'Είναι καμία από τις παραπάνω μεταβλητές κενή;<br>Αν δεν είναι κενή, άρα τις παρέλαβες σωστά και πάμε τώρα να δούμε τι θα προσπαθήσεις να σβήσεις<br><br>'; $query2="DELETE FROM laboratory_section WHERE id_lesson=$lesson AND number_of_team='$number_of_team'"; echo "$query2"; echo '<br> Το παραπάνω θα εκτελεστεί για διαγραφή<br>'; $retval = mysql_query( $query2, $conn ); if(! $retval ) { die('Could not delete data: ' . mysql_error()); } else { echo "Η Διαγραφή Ολοκληρώθηκε\n"; } mysql_close($conn); Η σελίδα που θα φορτώσει, ανέβασε την σαν εικόνα κάπου (ακόμα και στο forum)
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 αυτο βγαζει... Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα: Μεταβλητή school είναι 1 Μεταβλητή section είναι 1 Μεταβλητή lesson είναι 28 Μεταβλητή number_of_team είναι ΟΜ2 Είναι καμία από τις παραπάνω μεταβλητές κενή; Αν δεν είναι κενή, άρα τις παρέλαβες σωστά και πάμε τώρα να δούμε τι θα προσπαθήσεις να σβήσεις DELETE FROM laboratory_section WHERE id_lesson=28 AND number_of_team='ΟΜ2' Το παραπάνω θα εκτελεστεί για διαγραφή Η Διαγραφή Ολοκληρώθηκε ---------- Προσθήκη στις 18:48 ---------- Προηγούμενο μήνυμα στις 18:46 ---------- χρησιμοποιω drop down lists τα οποια περνουν δυναμικα τιμες απο τουσ πινακες
Maniakos Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Μπορείς να τρέξεις και το παρακάτω; > $result = mysql_query("DELETE FROM `laboratory_section` WHERE id_lesson = '$lesson' AND number_of_team = '$number_of_team' ", $conn); if (!$result) die('Invalid query: ' . mysql_error()); EDIT: Αγνόησε το post μου, το $conn ήθελα και εγώ να περάσεις, το έγραψε ήδη ο isay. Aπό ότι φαίνεται απο το test μια χαρά λειτουργεί. Πήγες και είδες την βάση αν είναι ακόμα εκεί το row ή αν όντως σβήστηκε?
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 οι μεταβλητες παιρνουν τιμες...το μονο προβλημα ειναι οτι δεν δουλευει το query
isay Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 αυτο βγαζει... Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα: Μεταβλητή school είναι 1 Μεταβλητή section είναι 1 Μεταβλητή lesson είναι 28 Μεταβλητή number_of_team είναι ΟΜ2 Είναι καμία από τις παραπάνω μεταβλητές κενή; Αν δεν είναι κενή, άρα τις παρέλαβες σωστά και πάμε τώρα να δούμε τι θα προσπαθήσεις να σβήσεις DELETE FROM laboratory_section WHERE id_lesson=28 AND number_of_team='ΟΜ2' Το παραπάνω θα εκτελεστεί για διαγραφή Η Διαγραφή Ολοκληρώθηκε ---------- Προσθήκη στις 18:48 ---------- Προηγούμενο μήνυμα στις 18:46 ---------- χρησιμοποιω drop down lists τα οποια περνουν δυναμικα τιμες απο τουσ πινακες Αν και σου είπα να φτιάξεις μια εγγραφή SS1 πάλι του κεφαλιού σου έκανες. Δείχνει ότι η διαγραφή έγινε. Ερώτηση που πρέπει να απαντήσεις Υπάρχει καταχώρηση στον πίνακα laboratory_section με id_lesson=28 και number_of_team='ΟΜ2' ; Αν υπάρχει, είναι μια ή περισσότερες καταχωρήσεις; Συμπλήρωμα. Επιμένω να φτιάξεις καταχώρηση SS1 και να κάνεις την δοκιμή.
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα: Μεταβλητή school είναι 1 Μεταβλητή section είναι 1 Μεταβλητή lesson είναι 28 Μεταβλητή number_of_team είναι SS1 Είναι καμία από τις παραπάνω μεταβλητές κενή; Αν δεν είναι κενή, άρα τις παρέλαβες σωστά και πάμε τώρα να δούμε τι θα προσπαθήσεις να σβήσεις DELETE FROM laboratory_section WHERE id_lesson=28 AND number_of_team='SS1' Το παραπάνω θα εκτελεστεί για διαγραφή Η Διαγραφή Ολοκληρώθηκε ---------- Προσθήκη στις 18:58 ---------- Προηγούμενο μήνυμα στις 18:58 ---------- Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα: Μεταβλητή school είναι 1 Μεταβλητή section είναι 1 Μεταβλητή lesson είναι 28 Μεταβλητή number_of_team είναι SS1 Είναι καμία από τις παραπάνω μεταβλητές κενή; Αν δεν είναι κενή, άρα τις παρέλαβες σωστά και πάμε τώρα να δούμε τι θα προσπαθήσεις να σβήσεις DELETE FROM laboratory_section WHERE id_lesson=28 AND number_of_team='SS1' Το παραπάνω θα εκτελεστεί για διαγραφή Η Διαγραφή Ολοκληρώθηκε ---------- Προσθήκη στις 18:59 ---------- Προηγούμενο μήνυμα στις 18:58 ---------- Υπάρχει καταχώρηση στον πίνακα laboratory_section με id_lesson=28 και number_of_team='ΟΜ2' ΚΑΙ Υπάρχει καταχώρηση στον πίνακα laboratory_section με id_lesson=28 και number_of_team='SS1' ---------- Προσθήκη στις 19:02 ---------- Προηγούμενο μήνυμα στις 18:59 ---------- το SS1 το σβηνει..το αλλο που ειναι στα ελληνικα δεν το σβηνει.. ---------- Προσθήκη στις 19:04 ---------- Προηγούμενο μήνυμα στις 19:02 ---------- τελικα φταιει οτι ηταν στα ελληνικα......και το παλευω δυο μερες
isay Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 ...το SS1 το σβηνει..το αλλο που ειναι στα ελληνικα δεν το σβηνει.. Αντε ντε! Για αυτό επέμενα για SS1. Το πρόβλημα είναι η κωδικοποίηση των ελληνικών στη βάση. Λύση ΔΕΝ έχω για την κωδικοποιήση, οπότε είτε χρησιμοποιείς κάποιο μοναδικό πεδίο που είπε ο uberalles είτε χρησιμοποιείς μόνο αγγλικούς χαρακτήρες πχ om1 αντι για ομ1
sifalio Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 τελικα αυτο ηταν το προβλημα--->mysql_query("set character set 'greek'", $conn); ---------- Προσθήκη στις 19:08 ---------- Προηγούμενο μήνυμα στις 19:07 ---------- χιλια ευχαριστω φιλε....που να παει εκει ο νους μου.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.