Hoi mensen!
Hmm.. Ik ben slecht in maken van een beginnende zin
. Laat ik maar direct zijn.. Ik ben bezig met een webshop te bouwen, het is allemaal bijna af maar de Admin gedeelte moet nog afgemaakt worden.. Maar helaas tevergeefs heb ik 2 dagen gesleuteld aan deze code en tot dusver is het nog niet helemaal gelukt..
Eerst een korte toelichting wat de webshop inhoudt.. Het bevat Product-lines, en daarin Categorieën en daarin Products..
Dus zo als het volgt (voorbeeld):
Productline 1 --> Categorie 1 --> Product 1
Product 2
Categorie 2 --> Product 1
Product 2
Product 3
Categorie 3 --> Geen producten
Dit is gewoon een voorbeeld om een duidelijk beeld te geven.. Nou, nu ter zake.. De script moest naar mijn bedoeling zo als het volgende werken.. Hij zoekt de Productline op die je wilt verwijderen, en verwijdert die dan.. De ID wordt opgeslagen en dan zoekt die de categorieën op.. In dat geval moet de result 3 zijn.. En dan wordt de eerste categorie verwijderd, en dan de ID weer opgeslagen van de betreffende categorie (mbv LIMIT en for()-loop), en daarin weer de producten met de bijbehorende plaatjes die worden ge-unlinked..
Nou.. Ik dacht dat dit script zou moeten werken, maar nee hij verwijdert niet alle categorieen, dus ook niet de producten daarin.. Zelfs de producten raken hun categorie kwijt (die verwijderd is) maar de product zelf blijft in de database staan.. Terwijl ze bij dezelfde productlijnen horen.. Ik dacht dat er iets mis was met de $result, of LIMIT of de for-loop zelf? Maar heb het geprobeerd en kan niks vinden.. Iemand misschien een idee voor een oplossing? De code:
Dit is dus de bij de else {} na de postformulier.
N.B. Elk product in de tabel heeft een id voor de betreffende productline en categorie, en de product-id zelf.. En categore zelf heeft een eigen id, en de id van de productline, de productline heeft gewoon zelf een eigen id.. Dit heb ik gedaan om zo makkelijk de id's met elkaar te linken (die gelijk zijn).
Alvast bedankt voor jouw moeite!
Björn.
Hmm.. Ik ben slecht in maken van een beginnende zin
Eerst een korte toelichting wat de webshop inhoudt.. Het bevat Product-lines, en daarin Categorieën en daarin Products..
Dus zo als het volgt (voorbeeld):
Productline 1 --> Categorie 1 --> Product 1
Product 2
Categorie 2 --> Product 1
Product 2
Product 3
Categorie 3 --> Geen producten
Dit is gewoon een voorbeeld om een duidelijk beeld te geven.. Nou, nu ter zake.. De script moest naar mijn bedoeling zo als het volgende werken.. Hij zoekt de Productline op die je wilt verwijderen, en verwijdert die dan.. De ID wordt opgeslagen en dan zoekt die de categorieën op.. In dat geval moet de result 3 zijn.. En dan wordt de eerste categorie verwijderd, en dan de ID weer opgeslagen van de betreffende categorie (mbv LIMIT en for()-loop), en daarin weer de producten met de bijbehorende plaatjes die worden ge-unlinked..
Nou.. Ik dacht dat dit script zou moeten werken, maar nee hij verwijdert niet alle categorieen, dus ook niet de producten daarin.. Zelfs de producten raken hun categorie kwijt (die verwijderd is) maar de product zelf blijft in de database staan.. Terwijl ze bij dezelfde productlijnen horen.. Ik dacht dat er iets mis was met de $result, of LIMIT of de for-loop zelf? Maar heb het geprobeerd en kan niks vinden.. Iemand misschien een idee voor een oplossing? De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
| $productline = $_POST['productline']; $query = mysql_query("DELETE FROM productlines WHERE id = '".$productline."'"); $query2 = mysql_query("SELECT * FROM categories WHERE productlineid = '".$productline."' ORDER BY id ASC"); $result2 = mysql_num_rows($query2); if($result2){ for($i=0;$i<$result2;$i++){ $query3 = mysql_query("SELECT * FROM categories WHERE productlineid = '".$productline."' ORDER BY id ASC LIMIT ".$i.",1"); while($obj = mysql_fetch_object($query3)){ $categorienumber = $obj->id; $imagecategorie = $obj->photo; if(!empty($imagecategorie)){ unlink("../images/".$imagecategorie); } $query7 = mysql_query("DELETE FROM categories WHERE id = '".$categorienumber."'"); $query4 = mysql_query("SELECT * FROM products WHERE productlineid = '".$productline."' AND categorieid = '".$categorienumber."' ORDER BY id ASC"); $result4 = mysql_num_rows($query4); if($result4){ for($i2=0;$i2<$result4;$i2++){ $query5 = mysql_query("SELECT * FROM products WHERE productlineid = '".$productline."' AND categorieid = '".$categorienumber."' ORDER BY id ASC LIMIT ".$i2.",1"); while($obj2 = mysql_fetch_object($query5)){ $productnumber = $obj2->id; $photo1 = $obj2->photo1; $photo2 = $obj2->photo2; $photo3 = $obj2->photo3; $photo4 = $obj2->photo4; $photo5 = $obj2->photo5; $file1 = $obj2->info1; $file2 = $obj2->info2; $file3 = $obj2->info3; $file4 = $obj2->info4; $file5 = $obj2->info5; if(!empty($photo1)){ unlink("../images/".$photo1); } if(!empty($photo2)){ unlink("../images/".$photo2); } if(!empty($photo3)){ unlink("../images/".$photo3); } if(!empty($photo4)){ unlink("../images/".$photo4); } if(!empty($photo5)){ unlink("../images/".$photo5); } if(!empty($file1)){ unlink("../files/".$file1); } if(!empty($file2)){ unlink("../files/".$file2); } if(!empty($file3)){ unlink("../files/".$file3); } if(!empty($file4)){ unlink("../files/".$file4); } if(!empty($file5)){ unlink("../files/".$file5); } $query6 = mysql_query("DELETE FROM products WHERE id = '".$productnumber."'"); } } } } } } |
Dit is dus de bij de else {} na de postformulier.
N.B. Elk product in de tabel heeft een id voor de betreffende productline en categorie, en de product-id zelf.. En categore zelf heeft een eigen id, en de id van de productline, de productline heeft gewoon zelf een eigen id.. Dit heb ik gedaan om zo makkelijk de id's met elkaar te linken (die gelijk zijn).
Alvast bedankt voor jouw moeite!
Björn.
[ Voor 5% gewijzigd door Verwijderd op 06-12-2006 14:32 ]