/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Slette data fra SQL med PHP....
Fra : Dennis Munding


Dato : 25-04-05 09:46

Hej NG!

Jeg sidder med et kalender-script, som jeg ikke kan få til at "makke ret"!!

Kalenderen er bygget op således, at man skal logge ind for at tilføje,
redigere eller slette "events".

Men hvordan får man den til at slette én bestemt event??

Udseende:

| DATO |
| tidspunkt | indhold | rediger-knap | slet-knap |
| tidspunkt | indhold | rediger-knap | slet-knap |
| DATO |
| tidspunkt | indhold | rediger-knap | slet-knap |
| tidspunkt | indhold | rediger-knap | slet-knap |
| DATO |
| tidspunkt | indhold | rediger-knap | slet-knap |
| tidspunkt | indhold | rediger-knap | slet-knap |

Altså: Der kan være mere end én event på samme dato, men med forskelligt
tidspunkt...

Hvis der f.eks. er en event kl. 9 og en kl. 11, skal det være sådan, at man
godt kan slette den kl. 9 uden at slette den kl. 11 også...

Men det kan jeg ikke få skidtet til!

Hvordan gør man, når der er flere faktorer, som skal afgøre, om det er den
rigtige event, der bliver slettet??

Jeg har prøvet med (på lokal-server):

<?php
$conn = mysql_connect("server", "bruger");
mysql_select_db('database', $conn);
$sql = "DELETE FROM drenge_events WHERE EventYear=EventYear &&
EventMonth=EventMonth && EventDay=EventDay && EventTime=EventTime LIMIT 1";
$result = mysql_query($sql, $conn) or die(mysql_error());
if (mysql_query($sql, $conn)) {
header ("Location: min-fil.php");
} else {
echo "Der er sket en fejl - aktiviteten er IKKE slettet!!";
}
?>

Med og uden ' ' omkring betingelserne, men enten virker det ikke, eller også
sletter den 2 forkerte events ad gangen, eller hele indholdet bliver
slettet!!???

Hvad gør jeg galt??

Skal lige pointere, at der er 3 brugere, som skal have rettigheder til at
tilføje, redigere og slette - og det skal de kunne gøre direkte på nettet,
så jeg ved jo ikke hvilke events de vil slette/redigere - dermed sagt: Jeg
kan ikke skrive, at det er en bestemt event, som skal slettes! (Det ville
ellers gøre det meget nemmere...)

Jeg håber, at der findes en barmhjertig sjæl, som kan/vil hjælpe mig....

På forhånd mange tak!

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



 
 
Jacob Atzen (25-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 25-04-05 10:19

On 2005-04-25, Dennis Munding <mail@invalid.com> wrote:
> Hvordan gør man, når der er flere faktorer, som skal afgøre, om det er
> den rigtige event, der bliver slettet??

Næsten sådan som du gør.

> $sql = "DELETE FROM drenge_events WHERE EventYear=EventYear &&
> EventMonth=EventMonth && EventDay=EventDay && EventTime=EventTime
> LIMIT 1";

Din query her er ikke helt god. Du skal jo indsætte noget istedet for
Event[Year,Month,Day,Time], f.eks. WHERE EventYear = 2005. Desuden
bruger man normalt AND og ikke && i SQL. Altså: WHERE foo=3 AND bar=4

--
Med venlig hilsen
- Jacob Atzen

Dennis Munding (25-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 25-04-05 13:15

Hej Jacob!
"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnd6pdfj.bh.jacob@tank.aub.dk...
> On 2005-04-25, Dennis Munding <mail@invalid.com> wrote:
> > Hvordan gør man, når der er flere faktorer, som skal afgøre, om det er
> > den rigtige event, der bliver slettet??
>
> Næsten sådan som du gør.
>
> > $sql = "DELETE FROM drenge_events WHERE EventYear=EventYear &&
> > EventMonth=EventMonth && EventDay=EventDay && EventTime=EventTime
> > LIMIT 1";
>
> Din query her er ikke helt god. Du skal jo indsætte noget istedet for
> Event[Year,Month,Day,Time], f.eks. WHERE EventYear = 2005. Desuden
> bruger man normalt AND og ikke && i SQL. Altså: WHERE foo=3 AND bar=4

Øøøhmm.... Tror ikke du læste hele mit indlæg, eller også er jeg bare faldet
af i svinget her...

Hvis jeg sætter EventYear=2005 er det jo kun events i 2005, som kan
slettes - jeg ved ikke hvilke events der bliver slettet, hvis der i det hele
taget er nogen, der skal slettes!
Men muligheden for at slette dem skal være til stede for mine
arbejdsgivere....

Håber du kan følge mig - jeg har altså brug for en slags joker til at sætte
ind efter lighedstegnene...

Har glemt at skrive, at jeg er absolut Newbie - så forsigtig med de tekniske
udtryk - jeg skal helst have det skåret ud i pap og skovlet ind med skeer...



Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Jacob Atzen (25-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 25-04-05 14:03

On 2005-04-25, Dennis Munding <mail@invalid.com> wrote:
> Hvis jeg sætter EventYear=2005 er det jo kun events i 2005, som kan
> slettes - jeg ved ikke hvilke events der bliver slettet, hvis der i
> det hele taget er nogen, der skal slettes!
> Men muligheden for at slette dem skal være til stede for mine
> arbejdsgivere....
>
> Håber du kan følge mig - jeg har altså brug for en slags joker til at
> sætte ind efter lighedstegnene...

Der kan du jo så bruge indholdet af en variabel:

$year = 2005;
...WHERE EventYear = $year AND ...

Du skal naturligvis initialisere dine variable korrekt.

--
Med venlig hilsen
- Jacob Atzen

Dennis Munding (25-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 25-04-05 16:15

HEj igen Jacob!
"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnd6pql1.bh.jacob@tank.aub.dk...
> On 2005-04-25, Dennis Munding <mail@invalid.com> wrote:
> > Hvis jeg sætter EventYear=2005 er det jo kun events i 2005, som kan
> > slettes - jeg ved ikke hvilke events der bliver slettet, hvis der i
> > det hele taget er nogen, der skal slettes!
> > Men muligheden for at slette dem skal være til stede for mine
> > arbejdsgivere....
> >
> > Håber du kan følge mig - jeg har altså brug for en slags joker til at
> > sætte ind efter lighedstegnene...
>
> Der kan du jo så bruge indholdet af en variabel:
>
> $year = 2005;
> ...WHERE EventYear = $year AND ...
>
> Du skal naturligvis initialisere dine variable korrekt.

Ja, det har jeg forstået, men problemet er, at det lige så godt kunne være i
år 2008, at der var en event, som skulle slettes...
Som kalenderen er bygget op nu, kan mine arbejdsgivere tilføje events helt
frem til den 31. december 2010, så det jeg har brug for, er en
kode/script/variabel, som nærmest læser tidspunkt, dato, måned og år på den
event, som de evt. ønsker slettet...

Det kan man måske ikke lave?
Jeg skal måske nøjes med at lave det sådan, at de kun kan tilføje events et
år frem ad gangen...?

Jeg stiller det lige op (mest for min egen skyld!):

kl. 7:00 d. 27/04-2005 Event1 Redigér Slet
kl. 10:00 d. 24/04-2005 Event2 Redigér Slet
kl. 13:00 d. 1/05-2008 Event3 Redigér Slet
kl. 17:00 d. 16/11-2009 Event4 Redigér Slet

Hvis man klikker på "Slet" ud for en af ovenstående events, skal en eller
flere af de andre events jo ikke slettes...
Hver event har deres eget unikke id-nr., men jeg kan jo ikke på forhånd se,
om det er nr. 1, 2, 3 eller 4, som min arbejdsgiver vil slette...

Hvordan laver det, så det kun er den rigtige, der bliver
slettet/redigeret....??

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Jacob Atzen (25-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 25-04-05 17:59

On 2005-04-25, Dennis Munding <mail@invalid.com> wrote:
> Som kalenderen er bygget op nu, kan mine arbejdsgivere tilføje events helt
> frem til den 31. december 2010, så det jeg har brug for, er en
> kode/script/variabel, som nærmest læser tidspunkt, dato, måned og år på den
> event, som de evt. ønsker slettet...
>
> Det kan man måske ikke lave?

Jo.

> Jeg skal måske nøjes med at lave det sådan, at de kun kan tilføje events et
> år frem ad gangen...?

Nej, det behøver du ikke.

> Jeg stiller det lige op (mest for min egen skyld!):
>
> kl. 7:00 d. 27/04-2005 Event1 Redigér Slet
> kl. 10:00 d. 24/04-2005 Event2 Redigér Slet
> kl. 13:00 d. 1/05-2008 Event3 Redigér Slet
> kl. 17:00 d. 16/11-2009 Event4 Redigér Slet
>
> Hvis man klikker på "Slet" ud for en af ovenstående events, skal en eller
> flere af de andre events jo ikke slettes...
> Hver event har deres eget unikke id-nr., men jeg kan jo ikke på forhånd se,
> om det er nr. 1, 2, 3 eller 4, som min arbejdsgiver vil slette...

Hvis hver event har et ID, kan du jo bare slette ud fra det.

> Hvordan laver det, så det kun er den rigtige, der bliver
> slettet/redigeret....??

Først skal du finde ud af, hvilken event der skal slettes. Det kan du
f.eks. gøre ved at medgive ID'et på den i din URL:

http://www.example.com/slet.php?id=3

Du kan dernæst tilgå ID'et fra din kode i slet.php:

$id = $_GET['id'];

Og endelig kan du slette event'en i databasen:

$query = "DELETE FROM events WHERE id = '$id'";

--
Med venlig hilsen
- Jacob Atzen

Dennis Munding (25-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 25-04-05 22:39

Hej igen Jacob! (Bare kald mig "Spørge-Jørgen"...)
"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnd6q8fg.bh.jacob@tank.aub.dk...

[SNIP]

> Først skal du finde ud af, hvilken event der skal slettes. Det kan du
> f.eks. gøre ved at medgive ID'et på den i din URL:
>
> http://www.example.com/slet.php?id=3

Det lyder som en god idé (vidste ikke, at man kunne det), men hvis jeg nu
fortæller dig, at jeg ikke desideret har lavet et link til hver event, men
har lavet en tabel med loop, kan det så stadig laves på denne måde??

Må have lånt nogle flere bøger om det - den jeg har, går ikke rigtig i
dybden...
Måske du kender den: "Introduktion til PHP, MySQL og Apache" af Julie C.
Meloni...??

> Du kan dernæst tilgå ID'et fra din kode i slet.php:
>
> $id = $_GET['id'];
>
> Og endelig kan du slette event'en i databasen:
>
> $query = "DELETE FROM events WHERE id = '$id'";

Jaaaa!! Endelig noget jeg forstår lidt af!

Kan ikke takke nok for den hjælp, som jeg bliver givet!! Mange tak!

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Per Thomsen (26-04-2005)
Kommentar
Fra : Per Thomsen


Dato : 26-04-05 08:05

> Må have lånt nogle flere bøger om det - den jeg har, går ikke rigtig i
> dybden...
> Måske du kender den: "Introduktion til PHP, MySQL og Apache" af Julie C.
> Meloni...??
>
Jeg syntes det er en god bog. Der er bla. et afsnit om kalender, som jeg har
brugt meget.

Per



Dennis Munding (26-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 26-04-05 09:34

Hej Per!
"Per Thomsen" <PerThomsenNews@hotmail.com> skrev i en meddelelse
news:uKlbe.114538$Vf.4198572@news000.worldonline.dk...
> > Må have lånt nogle flere bøger om det - den jeg har, går ikke rigtig i
> > dybden...
> > Måske du kender den: "Introduktion til PHP, MySQL og Apache" af Julie C.
> > Meloni...??
> >
> Jeg syntes det er en god bog. Der er bla. et afsnit om kalender, som jeg
har
> brugt meget.

Jeg har skimtet afsnittet om kalenderen, men synes ikke, at jeg fandt, hvad
jeg søgte...
Det skyldes højst sandsynligt, at jeg ikke har givet mig selv tid til at
nærlæse bogen ordenligt endnu....Og så er jeg ikke den mindst tålmodige sjæl
på nogle områder... Når jeg har sat mig for at lave noget, skal det helst
være færdig i går...

Jeg er ikke så meget til "Læs og forstå", men mere til "Prøv og se skidtet
virke", hvilket bogen er ganske god til - men det kræver jo at man skal læse
en del forklaringer først, hvilket er for trættende, når jeg kommer hjem fra
arbejde...

Men jo! Ud fra det jeg har læst i bogen, synes jeg, at den er meget
pædagogisk.

Det jeg nok mangler, er lidt flere svar på de spørgsmål, som hober sig op
efter at have læst et kapitel.

Jeg har fornemmet, at der næsten er uanede muligheder med php, men det er
lige som om, at jeg mangler nogle flere konkrete eksempler på
mulighederne....

Men igen - det skyldes nok, at jeg ikke har læst ordenligt på lektien....
:-/

Et hæfte (for jeg vil ikke kalde det en bog!), som jeg IKKE kan anbefale
nybegyndere er denne:
"PHP og MySQL for absolutte begyndere" af Britt Malka

Efter en hurtig gennemgang (sådan gør jeg med alle bøger/blade), fik jeg
fornemmelsen af, at det mere var et
sådan_installerer_du_dit_og_dat_programmer_hæfte...
Men det er bare mit indtryk...

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Per Thomsen (26-04-2005)
Kommentar
Fra : Per Thomsen


Dato : 26-04-05 13:29

> > Jeg syntes det er en god bog. Der er bla. et afsnit om kalender, som jeg
> har
> > brugt meget.
>
> Jeg har skimtet afsnittet om kalenderen, men synes ikke, at jeg fandt,
hvad
> jeg søgte...
> Det skyldes højst sandsynligt, at jeg ikke har givet mig selv tid til at
> nærlæse bogen ordenligt endnu....Og så er jeg ikke den mindst tålmodige
sjæl
> på nogle områder... Når jeg har sat mig for at lave noget, skal det helst
> være færdig i går...

Kender det godt.

> Et hæfte (for jeg vil ikke kalde det en bog!), som jeg IKKE kan anbefale
> nybegyndere er denne:
> "PHP og MySQL for absolutte begyndere" af Britt Malka
>
> Efter en hurtig gennemgang (sådan gør jeg med alle bøger/blade), fik jeg
> fornemmelsen af, at det mere var et
> sådan_installerer_du_dit_og_dat_programmer_hæfte...
> Men det er bare mit indtryk...

Nej det er ikke bare dit indtryk. Halvdel af 'bogen' er om hvordan man
'tilretter' et eksisterende script. Hvilket består i, at rette brugernavn
ol.
Men prøv nedenstående, som jeg syntes forklarer de store forskelle mellem
serverside og clientside (når man blander javascript og PHP).

http://www.cs.aau.dk/~jesper/courses/pdf/webprogrammering.pdf

(http://kortlink.dk/rqk)

Per



Dennis Munding (25-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 25-04-05 23:24

Hej igen, igen...
"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnd6q8fg.bh.jacob@tank.aub.dk...
> Først skal du finde ud af, hvilken event der skal slettes. Det kan du
> f.eks. gøre ved at medgive ID'et på den i din URL:
>
> http://www.example.com/slet.php?id=3
>
> Du kan dernæst tilgå ID'et fra din kode i slet.php:
>
> $id = $_GET['id'];
>
> Og endelig kan du slette event'en i databasen:
>
> $query = "DELETE FROM events WHERE id = '$id'";

DET VIRKER!!!

Skulle dog ændre det en smule, så det kom til at se således ud:

http://www.example.com/slet.php?EventId='$id'
(Det var linket...)

$id = $_GET['EventId'];
$sql = "DELETE FROM drenge_events WHERE EventId=$id";
(Og det var definationen og selve slette-kommandoen...)

Tusind tak for hjælpen endnu en gang...

Så mangler jeg bare at finde ud af, hvordan jeg får lavet en "replace"-fil
korrekt... :-/

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



zigma.dk (25-04-2005)
Kommentar
Fra : zigma.dk


Dato : 25-04-05 11:05

Dennis Munding wrote in dk.edb.internet.webdesign.serverside.php:
[...]
> Men hvordan får man den til at slette én bestemt event??
[...]

Hej Dennis!

Du kan evt. sætte et unikt id for hver række i databasen. Derved kan du slette
udfra id'et:

<?php
[...]
mysql_query("DELETE FROM tabel WHERE id='$id'");
[...]
?>

Håber du kan følge mig...

// Zigma

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dennis Munding (25-04-2005)
Kommentar
Fra : Dennis Munding


Dato : 25-04-05 13:20


"zigma.dk" <zigma@zigma.dk> skrev i en meddelelse
news:426cc0d7$0$79455$14726298@news.sunsite.dk...
> Dennis Munding wrote in dk.edb.internet.webdesign.serverside.php:
> [...]
> > Men hvordan får man den til at slette én bestemt event??
> [...]
>
> Hej Dennis!
>
> Du kan evt. sætte et unikt id for hver række i databasen. Derved kan du
slette
> udfra id'et:
>
> <?php
> [...]
> mysql_query("DELETE FROM tabel WHERE id='$id'");
> [...]
> ?>
>
> Håber du kan følge mig...

Ikke helt (jeg er Newbie!)...

Hvor og hvordan definerer jeg $id - hvis den da i det hele taget skal
defineres...??
Eller kan jeg bare kopiere det ovenfor og sætte det ind i min fil (og
selvfølgelig erstatte "tabel" med et tabel-navn...)??


PS: Skal på arbejde, så dette er sidste svar inden kl. 23:30.....
(Bare så I ikke tror, at jeg ignorerer jer...)

Med venlig hilsen
--
Dennis Munding
Webmaster
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste