ugrás a tartalomhoz

DELETE + a törölt elem id-je

csman007 · 2010. Ápr. 22. (Cs), 12.00
Sziasztok!
Hogyan lehetne azt megoldani hogy ha kitörlök egy sort az adattáblából, a kitörölt elem id-jét megjegyezni? autoincrementes, azért kellene, mert annak a helyére szeretnék másik adatot rakni.
 
1

Re: DELETE + a törölt elem id-je

Schmidi · 2010. Ápr. 22. (Cs), 12.45
Miért szeretnél egy auto incrementes táblába ugyanolyan ID-val más adatot beszúrni?
Ebből lehetnek elég csúnya kavarodások, ha más táblák erre az ID-ra hivatkoznak.

Van valami kifejezett indokod rá, vagy csak az hogy ne maradjanak "üres" helyek az ID sorozatban? Mert ha csak az utóbbi, akkor ne foglalkozz vele.
8

"Ebből lehetnek elég csúnya

saxus · 2010. Ápr. 27. (K), 22.29
"Ebből lehetnek elég csúnya kavarodások, ha más táblák erre az ID-ra hivatkoznak."
  1. ALTER TABLE tabla   
  2. ADD CONSTRAINT tabla_reftabla_fkey  
  3. FOREIGN key helymezo   
  4. REFERENCES reftabla (reftablaid)  
  5. ON UPDATE CASCADE ON DELETE RESTRICT;  
Értem én, hogy sokaknál nem divat, de attól még egy normális adatbázisban nem kellene, hogy probléma legyen.
2

update?

duplabe · 2010. Ápr. 22. (Cs), 13.05
miert nem update-eled?
3

kép

csman007 · 2010. Ápr. 22. (Cs), 13.21
mert a tábla egy flash katalogus része.
3 oszlop van az id melyik katalogus és a kép neve, a flash pedig a kép id-je alapján, rakja be a képeket a katalogusba, és úgy lenne jó ha olyan sorba vannak a képek ahogy katalógus, mellesleg, megoldottam, és köszi azért a segítségeket. Annyi volt hogy a törölt rekordnak az id-jét get-el átadtam és az alapján futott le a mysql kód.
Ez a törlés kódja:
  1. if($Process == "DelPage")  
  2.     {  
  3.         $qry = "select * from mag_pages where id='".$PageID."'";  
  4.         $db->execute_sql($qry,$result,$error_msg);  
  5.         if($error_msg <> "")  
  6.         {  
  7.             echo $error_msg;  
  8.         }  
  9.         else  
  10.         {     
  11.             while($row = mysql_fetch_object($result))  
  12.             {  
  13.                 $tmp_name = $uploaddir.$row->file_name;  
  14.                 //unset($tmp_name);  
  15.                 @unlink($tmp_name);  
  16.                 $qry_delete_page = "delete from mag_pages where id='".$PageID."' ";  
  17.                 $db->execute_sql($qry_delete_page,$result_delete_page,$error_msg);  
  18.                 $qry_delete_page = "delete from page_markers where mag_no='".$row->mag_no_id."' and page_no='".$PageID."' ";  
  19.                 $db->execute_sql($qry_delete_page,$result_delete_page,$error_msg);  
  20.                 $qry_delete_page = "delete from page_notes where mag_no='".$row->mag_no_id."' and page_no='".$PageID."' ";  
  21.                 $db->execute_sql($qry_delete_page,$result_delete_page,$error_msg);  
  22.   
  23.             }  
  24.               
  25.             if($error_msg <> "")  
  26.             {  
  27.                 echo $error_msg;  
  28.             }  
  29.             else  
  30.             {  
  31.                 ?>  
  32.                 <script language="javascript" type="text/javascript">  
  33.                 document.location.href = "EditSubCat.php?SubCatID=<?php echo $SubCatID; ?>&deleted=<?php echo $PageID ?>";  
  34.                 </script>  
  35.                 <?php  
  36.             }  
  37.   
  38.         }  
  39.     }  
Ez a feltöltés kódja:
  1. <form name="EditSubCat" id="EditSubCat" method="post" action="?Process=Update&SubCatID=<?php echo $CatID;   
  2.   if (isset($_GET['deleted'])) {  
  3.     $last = $_GET['deleted'];  
  4.     echo "&del=".$last;  
  5.   } ?>" enctype="multipart/form-data">  
ez pedig a mysql:
  1. if (isset($_GET['del'])) {   
  2. $last = $_GET['del'];  
  3. $qry = "insert into mag_pages(id,mag_no_id,file_name)  
  4. values('".$last."','".$CatID."','".$uploadFileName."')";  
  5. }  
  6. else {  
  7. $qry = "insert into mag_pages(mag_no_id,file_name)  
  8. values('".$CatID."','".$uploadFileName."')";  
  9. }         
4

REPLACE()

janoszen · 2010. Ápr. 22. (Cs), 19.17
Az SQL parancs amit keresel: REPLACE. Ettől függetlenül elég rossz tervezésre utal ha ilyeneket kényszerülsz használni.
5

Nem én csináltam a progit igy

csman007 · 2010. Ápr. 22. (Cs), 21.49
Nem én csináltam a progit igy lett véve ez egy php mysql flash lapozó, szóval én csak javítgatni tudom a php, mysql részét de ennyi.
6

Nem állított

janoszen · 2010. Ápr. 22. (Cs), 23.13
Senki nem állította hogy Te vagy a hibás. Csupán a tényt konstatáltam. :)
7

nem is

csman007 · 2010. Ápr. 23. (P), 19.50
Nem is azért mondtam :).