Avatar billede basketball Nybegynder
03. oktober 2004 - 19:16 Der er 13 kommentarer og
2 løsninger

$var + script

Hejsa,

Har fået lavet det script gennem tidligere sprgm, men mangler blot en information som jeg håber nogen kan hjælpe mig med :)

{

$varHandel = $row["handel"];

}

// Indsæt data
mysql_query("INSERT INTO tabel2 (handel)" . "VALUES ('$varHandel')") or die(mysql_error());

// Slet data


mysql_query("delete from tabel1 where id='$id'") or die(mysql_error());


_


I stedet for at skrive en $varXxxxx osv. for hver enkelt kolonne i dben, findes der så ikke en kommando der tager alle kolonner på én gang ?
Avatar billede coderdk Praktikant
03. oktober 2004 - 19:23 #1
extract( $row, "prefix" );

så vil din "handel"-række ligge i $prefixhandel - Dét du mente?
Avatar billede basketball Nybegynder
03. oktober 2004 - 19:32 #2
både ja og nej.. Lige nu er $varHandel = $row["handel"]; jo kun en enkelt kolonne/felt i en række... Men kunne godt tænke mig at gemme alle felter i hele rækken via en kommando fremfor at skulle skrive

$varHandel = $row["handel"];
$varHandel1 = $row["handel1"];

Osv.
Avatar billede Slettet bruger
03. oktober 2004 - 22:24 #3
Kan du eventuelt bruge noget SQL i stil med nedenstående? Så behøver data slet ikke at komme ind over PHP.

INSERT INTO tabel2 (handel) SELECT handel FROM tabel1 WHERE id='$id'
Avatar billede cpfrande Nybegynder
04. oktober 2004 - 10:15 #4
basketball: det vil virke ulogisk at gøre.

det du henter fra din database kommer ud som et array, derfor vil det være $row['felt-i-databasetabellen'] for hver. Men hvorfor sætte dem til en ny værdi ($felt1 = $row['felt1'];) - hvorfor ikke bare refere directe til $row i stedet for $felt, når du koder videre?
Avatar billede basketball Nybegynder
04. oktober 2004 - 10:18 #5
hejsa, den forstod jeg ikke helt? :) er rimelig ny i det her :)
Avatar billede coderdk Praktikant
04. oktober 2004 - 10:33 #6
cpfrande er inde på at du i stedet for at skrive:

$varHandel = $row["handel"];
mysql_query("INSERT INTO tabel2 (handel)" . "VALUES ('$varHandel')") or die(mysql_error());

kan skrive:

mysql_query("INSERT INTO tabel2 (handel) VALUES ('$row[handel]')") or die(mysql_error());

Eller du kan gøre som sandbox foreslår, hvis det rækker...
Avatar billede basketball Nybegynder
04. oktober 2004 - 10:38 #7
ok det kan jeg godt se logikken i :) men kan du fortælle mig hvordan jeg tager hele rækken på én gang og ikke bare feltet/kolonnen "handel" i rækken.
Avatar billede coderdk Praktikant
04. oktober 2004 - 11:01 #8
Altså hvis de to tabeller er ens, så gør som sandbox skriver:

INSERT INTO tabel2 (felt1, felt2, felt3) SELECT felt1, felt2, felt3 FROM tabel1 WHERE id = 1

f.eks
Avatar billede basketball Nybegynder
04. oktober 2004 - 11:12 #9
ok :) var bare ude efter om der fandtes en kommando for at tage alle felter, istedet for at sidde og skrive (felt1, felt2, felt3....) osv :) (tabellerne er fuldstændig identiske)
Avatar billede coderdk Praktikant
04. oktober 2004 - 11:13 #10
INSERT INTO tabel2 SELECT * FROM tabel1;
Avatar billede basketball Nybegynder
04. oktober 2004 - 11:38 #11
Ok takker :) Har dog lidt problemer med at udskfite det i det oprindelig script :) Nogen du kan gennemskue

________________________-

<?php

if(isset($_POST['slet']) && isset($_POST['id']))
{
$result = mysql_query("SELECT * FROM tabel1 WHERE id = '$id'") or die(mysql_error());

while($row = mysql_fetch_array($result)) {

// Gem data i variabler

}

// Slet fra tabel1
mysql_query("delete from tabel1 where id='$id'") or die(mysql_error());


// Indsæt data i tabel2

mysql_query("INSERT INTO tabel2 (variabelnavn i tabel)" . "VALUES ('$variabel')") or die(mysql_error());


echo"Udført";
}
?>

Skal såmænd bare have ændret det sådan at når man trykker slet så smider den hele rækken over i en ny tabel2 og sletter rækken i tabel1 .. Ligger gerne lidt flere point da det jo er et nyt sprgm :) Tusind tak :)
Avatar billede basketball Nybegynder
04. oktober 2004 - 15:16 #12
damn it laver skod fejl, hvorfor det ikke virker :) ligger du et svar :)
Avatar billede coderdk Praktikant
04. oktober 2004 - 16:51 #13
Sandbox også ;)
Avatar billede Slettet bruger
04. oktober 2004 - 22:46 #14
Kommer her. ;-)

Godt i kunne finde ud af det, mens jeg var på arbejde.
Avatar billede basketball Nybegynder
04. oktober 2004 - 23:11 #15
tak begge, der gik virkelig et par lys op for mig :) meget taknemmelig
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