/ 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
Indsæt uniq række i mysql
Fra : Mikkel Christensen


Dato : 28-07-01 13:49

Jeg kunne ikke lige finde en mysql kategori, så det bliver sendt her da php
og mysql som regel hænger sammen. Siden er også i php...

Jeg har nogle tabeller som f.eks. kunne indeholde brugernavnet for brugere
som besøger en bestemt side.
Her gang en bruger besøger en side skal hans navn indsættes i tabellen.
Men ikke hvis den står der i forvejen.

Sådan gør jeg nu:

mysql_query("SELECT * FROM tabel WHERE user = $user");
if(mysql_num_rows<1){
mysql_query("INSERT INTO tabel ......");
}

Men det kræver jo to database kald, så jeg tænkte om mysql ikke har en
funktion som kun indsætter en række som ikke eksisterer i forvejen?
Lidt a la SELECT DISTINCT(kolonne) bare med INSERT i stedet for.

Kan i hjælpe?




 
 
Jonas Delfs (28-07-2001)
Kommentar
Fra : Jonas Delfs


Dato : 28-07-01 14:36

"Mikkel Christensen" <barefoot@e-mail.dk> skrev i en meddelelse
news:9jucbj$62$1@sunsite.dk...

> Jeg kunne ikke lige finde en mysql kategori, så det bliver sendt her da
php
> og mysql som regel hænger sammen. Siden er også i php...

d.e.database :)

> Jeg har nogle tabeller som f.eks. kunne indeholde brugernavnet for brugere
> som besøger en bestemt side.
> Her gang en bruger besøger en side skal hans navn indsættes i tabellen.
> Men ikke hvis den står der i forvejen.
>
> Sådan gør jeg nu:
>
> mysql_query("SELECT * FROM tabel WHERE user = $user");
> if(mysql_num_rows<1){
> mysql_query("INSERT INTO tabel ......");
> }
>
> Men det kræver jo to database kald, så jeg tænkte om mysql ikke har en
> funktion som kun indsætter en række som ikke eksisterer i forvejen?
> Lidt a la SELECT DISTINCT(kolonne) bare med INSERT i stedet for.
>
> Kan i hjælpe?

REPLACE: http://www.mysql.com/doc/R/E/REPLACE.html

--
Mvh./Best Regards
Jonas Delfs, http://delfs.dk

"Developers are being asked to do more with less, do it faster, and make it
fit with the existing systems and databases." - IDC



Mikkel Christensen (28-07-2001)
Kommentar
Fra : Mikkel Christensen


Dato : 28-07-01 14:48

> > Jeg kunne ikke lige finde en mysql kategori, så det bliver sendt her da
> php
> > og mysql som regel hænger sammen. Siden er også i php...
>
> d.e.database :)

Mener du: dk.edb.database ?

> > Jeg har nogle tabeller som f.eks. kunne indeholde brugernavnet for
brugere
> > som besøger en bestemt side.
> > Her gang en bruger besøger en side skal hans navn indsættes i tabellen.
> > Men ikke hvis den står der i forvejen.
> >
> > Sådan gør jeg nu:
> >
> > mysql_query("SELECT * FROM tabel WHERE user = $user");
> > if(mysql_num_rows<1){
> > mysql_query("INSERT INTO tabel ......");
> > }
> >
> > Men det kræver jo to database kald, så jeg tænkte om mysql ikke har en
> > funktion som kun indsætter en række som ikke eksisterer i forvejen?
> > Lidt a la SELECT DISTINCT(kolonne) bare med INSERT i stedet for.
> >
> > Kan i hjælpe?
>
> REPLACE: http://www.mysql.com/doc/R/E/REPLACE.html

Vil det sige at jeg kan skrive:
REPLACE table (brugernavn, dato) VALUES (barefoot, dato) WHERE brugernavn =
barefoot

Eller skal jeg bare skrive:
REPLACE table (brugernavn, dato) VALUES (barefoot, dato)



Jonas Delfs (28-07-2001)
Kommentar
Fra : Jonas Delfs


Dato : 28-07-01 16:33

"Mikkel Christensen" <barefoot@e-mail.dk> skrev i en meddelelse
news:9jufpm$6cm$1@sunsite.dk...

> > > Jeg kunne ikke lige finde en mysql kategori, så det bliver sendt her
da
> > php
> > > og mysql som regel hænger sammen. Siden er også i php...
> >
> > d.e.database :)
>
> Mener du: dk.edb.database ?

Ja.

> > > Jeg har nogle tabeller som f.eks. kunne indeholde brugernavnet for
> brugere
> > > som besøger en bestemt side.
> > > Her gang en bruger besøger en side skal hans navn indsættes i
tabellen.
> > > Men ikke hvis den står der i forvejen.
> > >
> > > Kan i hjælpe?
> >
> > REPLACE: http://www.mysql.com/doc/R/E/REPLACE.html
>
> Vil det sige at jeg kan skrive:
> REPLACE table (brugernavn, dato) VALUES (barefoot, dato) WHERE brugernavn
=
> barefoot
>
> Eller skal jeg bare skrive:
> REPLACE table (brugernavn, dato) VALUES (barefoot, dato)

Du kunne kigge på den URL jeg svarede med - der står intet om en
WHERE-clause i definationen.
Men du skal lige være opmærksom på at feltet brugernavn skal være unique før
at REPLACE tjekker kolonnen.

--
Mvh./Best Regards
Jonas Delfs, http://delfs.dk

"Developers are being asked to do more with less, do it faster, and make it
fit with the existing systems and databases." - IDC



Mikkel Christensen (28-07-2001)
Kommentar
Fra : Mikkel Christensen


Dato : 28-07-01 17:47

Ok, tak for indsatsen:)



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

Månedens bedste
Årets bedste
Sidste års bedste