Autor Zpráva
lamič
Profil
Ahoj, řeším teď jeden takový problém... mám script na odstranění záznamu v tabulce po kliknutí na tlačítko smazat v administračním režimu. Vše funguje ale nyní bych chtěl poupravit script, aby se sice záznam z tabulky smazal, ale ještě před tím by se uložil tento záznam do archivu (ve druhé tabulce). Myslel jsem, že stačí to vložení záznamu (ten sql příkaz INSERT) vložit před ten s tím delete, ale vykoná se mi jen delete a tabulka archiv je stále prázdná. Poradí prosím někdo?

zde je script:
<?php 
include("connect.php");
$_GET['id_produktu'];

$sql2="INSERT INTO tabulka_archivu SELECT * FROM tabulka_produkty WHERE id_produktu=$_GET[id_produktu] LIMIT 1";              
$sql="DELETE FROM tabulka_produkty WHERE id_produktu=$_GET[id_produktu] LIMIT 1" ;
     
    if (mysql_query("$sql")) {
    
     //echo "Zaznam byl vymazan";
     header("Location: product.php");
     exit;
    }
    else
    {
    echo mysql_error();
    }               
                   
?>
mimochodec
Profil
V první řadě zvaž, jestli to takhle chceš určitě udělat. Nebylo by lepší mít v tabulka_produkty sloupec s názvem "aktivni", v něm výchozí hodnotu 1 a při "smazání" vynulovat a nabízet jen ty s jedničkou? Kolik máš v té tabulce řádků? Jaký máš důvod to přesouvat?
Taps
Profil
lamič:
Nejdříve musíš daný produkt vybrat pomocí selectu a teprve pak vložit pomocí insert, viz např. http://stackoverflow.com/questions/5391344/insert-with-select. Samozřejmě tabulky musí mít stejnou strukturu
lamič
Profil
mimochodec:
chci to tak udělat proto, aby byl tyto záznamy odděleny.. nyní jich tam moc není ale časem jich bude asi mnoho, navíc mám v plánu totéž udělat i u objednávek. Poté udělat vyhledávající script, kdyby se daná osoba spletla, aby šlo daný produkt, či objednávku dohledat zpětně... což jde určitě i tak jak popisuješ, popravdě tak jak to popisuješ mám jednotlivé uživatele kde když je smažu zůstanou v tabulce a v ní je mohu jedním tlačítkem zase obnovit.. (v databázi pak mám smazano (enum ano ne). Nicméně jsme se rozhodl pro toto řešení.... co popisuji
Taps mrknu na to...
takže jsem na to mrkl tak sběžně, ale nevím co jsi tím chtěl říct, to co tam popisují mám.. dokonce když příkaz vyzkouším v databázi ve zkrácené verzi
INSERT INTO tabulka_archivu SELECT * FROM tabulka_produkty
tak se překopírují všechny záznamy z tabulky produkty do tabulky archivu, takže si myslím že sql příkaz je správný
mimochodec
Profil
lamič:

    if (mysql_query("$sql")) {
Tady provádíš ten druhý dotaz. Smaž si tam ty uvozovky, k ničemu to není (i když to s tím bohužel funguje). Ten první dotaz neprovádíš nikde.
lamič
Profil
yes, děkuji mnohokrát už to funguje jak si představuju :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: