/ 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
Hvordan erstatter udskifter jeg tabelindho~
Fra : Anders


Dato : 20-02-06 23:54

Jeg prøver at lave en funktion, så medlemmerne af en forening kan ændre
deres oplysninger, der er gemt i mysql. Men hvordan få man den til at
gemme ændringer? jeg prøver med denne linie, men det virker ikke

mysql_query("REPLACE INTO medlemmer WHERE id=$id (navn, efternavn,
telefon1, mobil, email, barn, adgangskode) VALUES ('$navn',
'$efternavn', '$telefon1', '$mobil', '$email', '$barn', '$nykode') OR
DIE(mysql_error)");

id bliver fundet, jeg kan få den udskrevet. Jeg har også prøvet at bytte
rundt på WHERE parametret. ingenting hjælper! Nogen der kender svaret?

Anders!
nyt<snabela>@kaosfoto.com

 
 
Anders (21-02-2006)
Kommentar
Fra : Anders


Dato : 21-02-06 00:02

Anders wrote:
> Jeg prøver at lave en funktion, så medlemmerne af en forening kan ændre
> deres oplysninger, der er gemt i mysql. Men hvordan få man den til at
> gemme ændringer? jeg prøver med denne linie, men det virker ikke
>
> mysql_query("REPLACE INTO medlemmer WHERE id=$id (navn, efternavn,
> telefon1, mobil, email, barn, adgangskode) VALUES ('$navn',
> '$efternavn', '$telefon1', '$mobil', '$email', '$barn', '$nykode') OR
> DIE(mysql_error)");
>
> id bliver fundet, jeg kan få den udskrevet. Jeg har også prøvet at bytte
> rundt på WHERE parametret. ingenting hjælper! Nogen der kender svaret?
>
> Anders!
> nyt<snabela>@kaosfoto.com

Glemte at sige, at jeg får ikke nogle fejlmeddelelser!

Erik Ginnerskov (21-02-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 21-02-06 00:25

Anders wrote:
> Jeg prøver at lave en funktion, så medlemmerne af en forening kan
> ændre deres oplysninger, der er gemt i mysql. Men hvordan få man den
> til at gemme ændringer? jeg prøver med denne linie, men det virker
> ikke

Uden at gå ind i kodning, vil jeg foreslå, at du laver en formular, som
indlæser data fra den udpegede post i databasen (udvalgt ved medlemmets
login) i de dertil indrettede indtastningsfelter. Når medlemmet så har
foretaget de ønskede rettelser og trykker Submit, bliver data i databasen
overskrevet.

Jeg har lavet nogle eksperimenter med en gæstebog, hvor det kunne gøres -
bortset fra at data her ligger i en txt-fil og at kun administrator har den
adgang. Men princippet må være det samme:

http://hjemmesideskolen.dk/files/phptxtgb.zip

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Simon Rasch 9640 (21-02-2006)
Kommentar
Fra : Simon Rasch 9640


Dato : 21-02-06 00:51


UPDATE medlemmer set navn='$navn', efternavn='$efternavn' WHERE id=$id

tilføj selv tlf email osv efter samme princip

Mvh
Simon Rasch


"Anders" <nyt@kaosfoto.com> skrev i en meddelelse
news:43fa488a$0$78283$157c6196@dreader1.cybercity.dk...
> Jeg prøver at lave en funktion, så medlemmerne af en forening kan ændre
> deres oplysninger, der er gemt i mysql. Men hvordan få man den til at
> gemme ændringer? jeg prøver med denne linie, men det virker ikke
>
> mysql_query("REPLACE INTO medlemmer WHERE id=$id (navn, efternavn,
> telefon1, mobil, email, barn, adgangskode) VALUES ('$navn', '$efternavn',
> '$telefon1', '$mobil', '$email', '$barn', '$nykode') OR
> DIE(mysql_error)");
>
> id bliver fundet, jeg kan få den udskrevet. Jeg har også prøvet at bytte
> rundt på WHERE parametret. ingenting hjælper! Nogen der kender svaret?
>
> Anders!
> nyt<snabela>@kaosfoto.com



Leif Neland (21-02-2006)
Kommentar
Fra : Leif Neland


Dato : 21-02-06 14:28

Anders wrote:
> Jeg prøver at lave en funktion, så medlemmerne af en forening kan
> ændre deres oplysninger, der er gemt i mysql. Men hvordan få man den
> til at gemme ændringer? jeg prøver med denne linie, men det virker
> ikke
> mysql_query("REPLACE INTO medlemmer WHERE id=$id (navn, efternavn,
> telefon1, mobil, email, barn, adgangskode) VALUES ('$navn',
> '$efternavn', '$telefon1', '$mobil', '$email', '$barn', '$nykode') OR
> DIE(mysql_error)");
>
> id bliver fundet, jeg kan få den udskrevet. Jeg har også prøvet at
> bytte rundt på WHERE parametret. ingenting hjælper! Nogen der kender
> svaret?

OR DIE er ikke en del af mysql-queriet, men php-kode.
Så dit query har fejl, men "or die" bliver aldrig set af php.
Og så skal WHERE være til sidst.

Så ved at klippe din sætning ud og sætte den sammen igen, får jeg:

mysql_query("REPLACE INTO medlemmer (navn, efternavn,
telefon1, mobil, email, barn, adgangskode) VALUES ('$navn',
'$efternavn', '$telefon1', '$mobil', '$email', '$barn', '$nykode')
WHERE id=$id)
or die(mysql_error());

Men den gør ikke hvad du ønsker!

Det er fordi REPLACE INTO fungerer lige som INSERT INTO, bortset fra at de
records, der har samme unikke nøgler først slettes før den ny record sættes
ind.
Så i dit tilfælde, hvis vi antager at id er en unik nøgle, så, da du ikke
har 'id' i de felter, du replacer, vil den eksisterende række være uændret,
og du får lavet en ny række med index null, eller en ny id, hvis id er
autoincrement.

Alle de felter, der ikke er er sat til noget, får ikke en værdi; du "arver"
ikke noget fra den eksisternde record.

Hvis du vil bruge REPLACE INTO, skal du angive samtlige felter, incl
nøglefeltet.
Og så er det ikke nødvendigt at bruge WHERE.

Ellers skal du bruge
UPDATE tabelnavn
SET felt='$værdi',felt='$værdi'....
WHERE id='$id'

Og opfat så lige ovennævnte som pseudokode...

Leif



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste