Wątek przeniesiony 2016-07-24 22:31 z PHP przez dzek69.

usuwanie rekordów mysql przy pomocy php

0

Witam, chciałem usuwać rekordy z bazy danych. Napisałem funkcje:

function DaneId(){
	$connection = getConnection();
	$pobrany_login = $_SESSION['login'];
	$id_klienta = klientId();
	$rezultat    = $connection->query("SELECT id_dane from klient where id_klient= '$id_klienta'");

    if (!$rezultat) {
        throw new Exception($connection->error);
    }
    $resultArrayA = [];

    while ($row         = $rezultat->fetch_assoc()) {
		$resultArrayA[$row['id_dane']] = $row['id_dane'];
    }
	foreach ($resultArrayA as $key => $value)
	echo "<br>DANE".$value."<br><br>";
    return $value;
}

takie same są dla adresu i klienta. Funkcja usun wygląda następująco:

 
function usun()
{
	$connection = getConnection();
	$id_klienta = klientId();
	$id_adresu = AdresId();
	$id_danych = DaneId();
	echo "<br> Id klienta".$id_klienta;
	echo "<br> Id dane".$id_danych;
	echo "<br> Id adresu".$id_adresu;
	
	$rezultat1    = 'DELETE FROM ADRES where id_adres= "%1$s"' ;
	$rezultat2    = 'DELETE FROM DANE where id_dane= "%1$s"';
	$rezultat3    = 'DELETE FROM KLIENT where id_klient= "%1$s"';
	$rezultat4    = 'DELETE FROM UZYTKOWNIK where klient_id= "%1$s"';
	$deleteAdres  = $connection->query(sprintf($rezultat1,$id_adresu));
	$deleteDane  = $connection->query(sprintf($rezultat2,$id_danych));
	$deleteKlient  = $connection->query(sprintf($rezultat3,$id_klienta));
	$deleteUzytkownik  = $connection->query(sprintf($rezultat4,$id_klienta));
	if ($deleteAdres && $deleteDane && $deleteKlient && $deleteUzytkownik) {
        $_SESSION['usuniecie'] = true;
        header('Location: witamy.php');
    } else {

        $_SESSION['e_usuniecie'] = "Usuniecie konta nie powiodło się";
    }
	
}

i mam taki problem, że usuwa mi się tylko użytkownik, a klient, dane i adres pozostają :/

$id_klienta, $id_danych, $id_adresu 

zwracają prawidłowe wartości a i tak nie wiem o co chodzi. Mogę prosić o jakąś wskazówkę?

0

Tam gdzie Ci działa, masz "where klient_id=", w pozostałych zapytaniach masz "where id_adres", "where id_dane", "where id_klient" - jesteś pewien, że to odpowiada kolumnom w tych tabelach?

0

tak, jestem pewien. tak to by nie działały też inne zapytania, np.

 $rezultat    = $connection->query("SELECT id_dane from klient where id_klient= '$id_klienta'");
0

usunięcie działa, zła kolejność była :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1