Monday 3 September 2018

The mysql query works but does not enter the loop, PHP, MYSQL

I have one table on my database that includes kategoriID,kategoriAd,kategoriEbeveyn. It is like categoryID,catagoryName and categoryParent.

I want that happens that is when i try to delete main category, I can delete main category and sub categories.
-World
............ +Europe
....................... *Turkey
.................................**Istanbul
When I try to delete, This function works for World and Europe. But Turkey and Istanbul is still in my database. I couldn't delete those because of the error.
"mysql_fetch_array() expects parameter 1 to be resource, boolean given in"
| kategoriID | kategoriAd | kategoriEbeveyn |
| 1 | World | 0 |
| 2 | Europe | 1 |
| 3 | Turkey | 2 |
| 4 | Istanbul | 3 |
Here is my function.
<?php

function KategoriVeAltKategorileriSil(){
$kategoriID = $_GET['kategoriID'];
     mysql_query("DELETE FROM kategoriler WHERE kategoriID = ' $kategoriID '") or die (mysql_error());
       $delete = mysql_query("DELETE FROM kategoriler WHERE kategoriEbeveyn = ' $kategoriID ' ") or die (mysql_error());        

    if($delete){
         while($silinecek = mysql_fetch_array($delete)){

               KategoriVeAltKategorileriSil($silenecek[' kategoriID ']);
             echo mysql_error();
                     }
    echo "Kategori ve alt kategorileri silindi.";
    }else{ echo "Silme işlemi gerçekleştirilemedi!" .mysql_error(); }
        }

?>

Or Do i need to use Trigger?

    function deleteCategory($kategoriID) {
        $result=mysql_query("SELECT * FROM kategoriler WHERE kategoriEbeveyn='$kategoriID'");
        if (mysql_num_rows($result)>0) {
             while($row=mysql_fetch_array($result)) {
                  deleteCategory($row['kategoriID']);
             }
        }
        mysql_query("DELETE FROM kategoriler WHERE kategoriID='$kategoriID'");
    }

you can use this recursive function

0 comments:

Post a Comment