Avatar billede code0.dk Nybegynder
22. januar 2002 - 17:47 Der er 12 kommentarer og
1 løsning

tjek database - og slet række

Hej - er der nogen der kan skrive dette til mig.
Jeg har en php side - der skal indsætte nogle variabler som en row i en tabel i min database. - Den ene variabel er sat som primary - for at være sikker på at der ikke oprettes 2 af samme navn. Jeg skal så have et script der går ind og tjekker om der allerede er oprettet en row med dette variabel navn - hvis der er så skal den slette denne og sætte det nye ind istedetfor. Let ikke :)
code0.dk
Avatar billede repsac Nybegynder
22. januar 2002 - 17:51 #1
Hvad eksakt er dit problem?

Kan du ikke hitte ud af at finde ud af om row'en findes eller kan du ikke hitte ud af hvordan man skriver den til db'en?
Avatar billede repsac Nybegynder
22. januar 2002 - 17:51 #2
Hmm ... hvis det er så let, hvorfor gør du det så ikke bare selv?
Avatar billede code0.dk Nybegynder
22. januar 2002 - 17:52 #3
problemet er at tjekke om denne row allerede findes - og derefter at slette den. Det at skrive til databasen kan jeg godt
Avatar billede repsac Nybegynder
22. januar 2002 - 17:55 #4
Så kan du jo bare prøve at hente noget ud af db'en ...

SELECT * FROM DinTabel WHERE DinPrimaryTing = 'Vaerdi'
Avatar billede henrik_ffc Nybegynder
22. januar 2002 - 17:55 #5
Lidt pseudokode:

select count(*) from tabel where prim_felt='$variabel'
if (mysql_result()>0)
{
  delete from tabel where prim_felt='$variabel'
  insert into tabel values ('$variabel', '$variabel2');
}
Avatar billede repsac Nybegynder
22. januar 2002 - 17:57 #6
sæt lige en @ foran mysql_result så du er fri for eventuelle fejl :)
Avatar billede code0.dk Nybegynder
22. januar 2002 - 18:01 #7
hvad gør denne @ ??
Avatar billede repsac Nybegynder
22. januar 2002 - 18:08 #8
Hvis en funktion fejler vil fejlen normalt skrives på siden. Hvis der sættes @ foran og en funktion fejler vil fejlen ikke skrives på siden.
Avatar billede code0.dk Nybegynder
22. januar 2002 - 18:36 #9
ok - kan du evt. skrive dette så det kan sættes ind på en php side ??
Da dette jo er ren SQL
Avatar billede myplacedk Nybegynder
22. januar 2002 - 18:57 #10
if (rækken eksisterer) {
  // kør update
} else {
  // kør insert
}

Hvis der er noget af dette, du ikke kan finde ud af, så bare sig til.
Avatar billede code0.dk Nybegynder
22. januar 2002 - 19:04 #11
synes ikke lige det svarer på spørgsmålet - kan godt finde ud af php. Men ikke Sql - så jeg ved ikke helt hvordan jeg får lavet disse SQL statements om til noget der kan sættes ind på en php side.
for der kan jo ikke bare skrives
if(select count(*) from tabel where prim_felt='$variabel') osv.
!
Avatar billede fri-hash Nybegynder
22. januar 2002 - 22:52 #12
sql statement til at tjekke om $var eksisterer et sted i kolonnen navn i tabellen tabel:

select navn from tabel where navn='$var'

hvis denne statement returnerer 0 resultater, findes navnet ikke og skal så oprettes:

insert into tabel(navn, kolonne2) values('$var', '$kolonne2værdi')

hvis den returnerer mere end 0 resultater, findes navnet i forvejen og den række der indeholder navnet skal opdateres:

update tabel set kolonne2='$kolonne2værdi' where navn=$navn

kolonne2 og kolonne2værdi er medtaget fordi det jo ikke vil gi nogen mening at updatere navn til hash i den række hvor navnet er hash :-)
Avatar billede fri-hash Nybegynder
17. februar 2002 - 20:13 #13
fik du svar nok?
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
Computerworld tilbyder specialiserede kurser i database-management

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