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

Mysql Delete


sifalio

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

  • Απαντ. 61
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

<?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

Δημοσ.

Μια χαρά φαίνεται ο κώδικας (αν και από θέμα ασφάλειας και 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....

 

 

Δημοσ.

Φίλε μου δεν ξέρω....

 

Είναι 3 οι εκδοχές

1) Σου σβήνει κανονικά την εγγραφή (λες ότι δεν την σβήνει αλλά εκτελώντας το query μέσα από την διαχείριση της βάσης στην σβήνει)

2) Δεν υπάρχει εγγραφή για να σβήσει (λες ότι υπάρχει)

3) Σου χτυπάει κάποιο error (λες ότι δεν χτυπάει)

 

ΔΕΝ ΞΕΡΩ φίλε μου...

Δημοσ.

τι να πω ουτε εγω μπορω να βρω που εχω λαθος.....παντως σας ευχαριστω πολυ ολους.

Δημοσ.

Για 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 μπας και έχει καμια διαφορά?

Δημοσ.

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)

Δημοσ.

αυτο βγαζει...

 

Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα:

Μεταβλητή 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 τα οποια περνουν δυναμικα τιμες απο τουσ πινακες

Δημοσ.

Μπορείς να τρέξεις και το παρακάτω;

 

>
$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 ή αν όντως σβήστηκε?

Δημοσ.

οι μεταβλητες παιρνουν τιμες...το μονο προβλημα ειναι οτι δεν δουλευει το query

Δημοσ.
αυτο βγαζει...

 

Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα:

Μεταβλητή 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 και να κάνεις την δοκιμή.

Δημοσ.

Δοκιμή να δούμε τι παραλάβαμε από την προηγούμενη σελίδα:

Μεταβλητή 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 ----------

 

τελικα φταιει οτι ηταν στα ελληνικα......και το παλευω δυο μερες

Δημοσ.

...το SS1 το σβηνει..το αλλο που ειναι στα ελληνικα δεν το σβηνει..

Αντε ντε! Για αυτό επέμενα για SS1. Το πρόβλημα είναι η κωδικοποίηση των ελληνικών στη βάση. Λύση ΔΕΝ έχω για την κωδικοποιήση, οπότε είτε χρησιμοποιείς κάποιο μοναδικό πεδίο που είπε ο uberalles είτε χρησιμοποιείς μόνο αγγλικούς χαρακτήρες πχ om1 αντι για ομ1

Δημοσ.

τελικα αυτο ηταν το προβλημα--->mysql_query("set character set 'greek'", $conn);

 

---------- Προσθήκη στις 19:08 ---------- Προηγούμενο μήνυμα στις 19:07 ----------

 

χιλια ευχαριστω φιλε....που να παει εκει ο νους μου.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...