Avatar billede daki Juniormester
29. juli 2003 - 15:24 Der er 9 kommentarer og
1 løsning

Kopiere info fra tabel til ny tabel

Hvordan flyttes/kopieres en række fra een tabel til en anden og derefter slettes i den første tabel.

Det skal passe ind i det script

else if (isset($type) && $type=="delete")
  {
  if (!isset($check))
      {
      $sql="select * from information where id=$id";
      $result=@mysql_query($sql,$db);
      $myrow=@mysql_fetch_array($result);
      $subject=$myrow["overskrift"];
      echo "<h3><center>Bekræft sletning</center><br>";
      echo "<h2><center>Slet informationen: ";
      echo $subject;
      echo " ?<br><br>";
      echo "<form action=edit_information.php method=post>";
      echo "<input type=hidden name=check value=$id>";
      echo "<input type=hidden name=type value=delete>";
      echo "<a href=edit_information.php><img src=images/tilbage.gif border=0></a>&nbsp;<input type=\"image\" src=\"images/ok.gif\"></form>";
      echo "</form>";
      }
  else
      {
      $sql = "delete from information where id=$check";
      $result=@mysql_query($sql,$db);
      if ($result)
        {
        echo "<b>Informationen blev slettet!</b>";
        ?> <meta http-equiv="REFRESH" content="3;URL=edit_information.php"> <?
        }
      else
        {
        echo "<b>Informationen blev IKKE slettet!</b>";
        ?> <meta http-equiv="REFRESH" content="3;URL=edit_information.php"> <?
        }
      }
  }
Avatar billede tipsen Nybegynder
29. juli 2003 - 15:30 #1
Hvis du har to tabeller som er så ens, samler du dem bare og tilføjer et felt der angiver postens status (aktiv, inaktiv, slettet, stoppet, osv)
Avatar billede daki Juniormester
29. juli 2003 - 15:36 #2
Ja så, og hvordan gør jeg det ???

Det 1. tabel indeholder nyheder/informationer som efter et stykke tid skal slettes, men jeg ønsker at beholde dem i et arkiv.
Avatar billede tipsen Nybegynder
29. juli 2003 - 15:46 #3
HVis du har phpmyadmin, laver du bare en ny tabel med samme struktur og samler de to andre tabeller i den, tilføjer et ekstra felt (tinyint) og lader eksempelvis 0=aktiv, 1=inaktiv, 2=slettet, 3=arkiv osv (Du kan selv sætte flere eller færre status'er på!)

Derefter skal du så bare tilføje dine eksisterende udtræk en smule, således at der i sql-query også angives "WHERE status=0" for at hive aktive nyheder ud.

Når du så skal ændre status på en nyhed, opdaterer du bare status-tallet for nyheden med det pågældende id.
Avatar billede daki Juniormester
29. juli 2003 - 16:01 #4
Jeg kan da godt se muligheden, men så vil posten vel altid være i tabellen og på et tidspunkt vil der vel komme for mange eller ....

Jeg prøver lige at arbejde med dit forslag, vender tilbage...
Avatar billede tipsen Nybegynder
29. juli 2003 - 16:11 #5
Når du kommer op på mange tusinde nyheder kan du godt få et problem efterhånden - men det ville du jo få alligevel - går udfra alle nyheder arkiveres før eller senere! (Når det problem engang bliver aktuelt, har du alligevel ændret websitet i mellemtiden!)
Avatar billede daki Juniormester
30. juli 2003 - 16:13 #6
Tak for hjælpen.
Jeg har fået det til at fungere efter din anvisning.

Jeg kan med tiden bare lave et script, som søger på 'slettede' og der igennem fjerne dem fra tabellen.

Giv et svar, hvis du vil have points.
Avatar billede tipsen Nybegynder
30. juli 2003 - 16:24 #7
*svar*

Generelt er det en god ide at sammenlægge tabeller der har samme struktur - det bliver man oftest glad for i længden - der er dog selvfølgelig undtagelser.
Avatar billede daki Juniormester
31. juli 2003 - 10:30 #8
Skal vi prøve igen :-))
Avatar billede tipsen Nybegynder
01. august 2003 - 12:27 #9
Godt så...
Avatar billede daki Juniormester
01. august 2003 - 12:31 #10
Endnu engang tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester