|
| 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
| |
|
|