Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Δημοσίευση από ThyClub » 17 Ιαν 2011 11:36

@pimpogio

Liked it!!
Έχεις κάποια λύση και για την περίπτωση που θέλουμε να διαγράψουμε το parent cat αλλά όχι τα subs?

- Category1
..... subcategory1
..... subcategory2 <---------------
-------- subsubcategory1
-------- subsubcategory2
............... subsubsubcategory1
πχ σε περίπτωση που θέλουμε να μεταφέρουμε τα subs που ανοίκουν στην κατηγορία subsubcategory2 στην subcategory1 όταν διαγράφουμε την subcategory2?
Τελευταία επεξεργασία από το μέλος ThyClub την 17 Ιαν 2011 11:43, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Δημοσίευση από dimsis » 17 Ιαν 2011 11:37

edit: άκυρο

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Δημοσίευση από pimpogio » 17 Ιαν 2011 12:03

ThyClub έγραψε:@pimpogio

Liked it!!
Έχεις κάποια λύση και για την περίπτωση που θέλουμε να διαγράψουμε το parent cat αλλά όχι τα subs?

- Category1
..... subcategory1
..... subcategory2 <---------------
-------- subsubcategory1
-------- subsubcategory2
............... subsubsubcategory1
πχ σε περίπτωση που θέλουμε να μεταφέρουμε τα subs που ανοίκουν στην κατηγορία subsubcategory2 στην subcategory1 όταν διαγράφουμε την subcategory2?
στο προηγουμενο σχημα οριζεις το foreign key ως εξης

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

--
-- Περιορισμοί για πίνακα `cat`
--
ALTER TABLE `cat`
  ADD CONSTRAINT `pidindx` FOREIGN KEY &#40;`pid`&#41; REFERENCES `cat` &#40;`id`&#41; ON DELETE CASCADE ON UPDATE NO ACTION;
και μετα
1) μεταφερεις τις υποκατηγοριες σε οποια κατηγορια θες
2) σβηνεις την κατηγορια που ειχε τις υποκατηγοριες που μεταφερες στο βημα 1

τα κανεις με αυτη τη σειρα σε 1 transaction.

αλλα το προγουμενο σχημα για κατηγοριες δεν ειναι καλο γιατι δεν ειναι normalized με συνεπεια να εχει διαφορα προβληματα..
Δες το nested set model


για παραδειγμα σε php το κανεις ως εξης

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

<?php
/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** database name ***/
$dbname = 'test';

try &#123;
    $dbh = new PDO&#40;"mysql&#58;host=$hostname;dbname=$dbname", $username, $password&#41;;
    /*** echo a message saying we have connected ***/
    echo 'Connected to database<br />';

    /*** set the PDO error mode to exception ***/
    $dbh->setAttribute&#40;PDO&#58;&#58;ATTR_ERRMODE, PDO&#58;&#58;ERRMODE_EXCEPTION&#41;;
    /*** begin the transaction ***/
    $dbh->beginTransaction&#40;&#41;;

    $dbh->exec&#40;"UPDATE cat AS c SET c.pid = '1' WHERE c.id='4' "&#41;;
    $dbh->exec&#40;"UPDATE cat AS c SET c.pid = '1' WHERE c.id='5' "&#41;;
    $dbh->exec&#40;"DELETE FROM cat WHERE id ='2' "&#41;;
    /*** commit the transaction ***/
    $dbh->commit&#40;&#41;;

    echo 'Transaction OK<br />';
&#125;
catch&#40;PDOException $e&#41;
    &#123;
    /*** roll back the transaction if we fail ***/
    $dbh->rollback&#40;&#41;;

    /***  error message ***/
    echo $e->getMessage&#40;&#41;;
    &#125;
?>

blake238
Δημοσιεύσεις: 1
Εγγραφή: 21 Ιαν 2011 03:11

Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Δημοσίευση από blake238 » 21 Ιαν 2011 10:11

αλλα το προγουμενο σχημα για κατηγοριες δεν ειναι καλο γιατι δεν ειναι normalized με συνεπεια να εχει διαφορα προβληματα..
Δες το nested set model

www.order2com.com

Nike Air Max 2009 Shoes

puma shoes
blake238

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Διαγραφή κατηγοριών - υποκατηγοριών κτλ κτλ με ενα query

Δημοσίευση από korgr » 21 Ιαν 2011 10:15

Πως σου ξεφεύγουν αυτά τα Bots Γιάννη? :P

Απάντηση

Επιστροφή στο “MySQL”

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

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