Avatar billede plippert Nybegynder
23. september 2011 - 11:38 Der er 10 kommentarer og
1 løsning

markere værdi som læst/brugt

JEG ER ABSOLUT NOVICE, så det er sikkert et nemt og enkelt spørgsmål, men nu har jeg søgt noget tid uden at have heldet med mig.

Jeg har en database med kolonnerne
Id - primary key auto
Kode - unik kode, som jeg selv generer
User - bruger_id skal hives ind når en Kode er vist
Used - skal blot markere at en Kode er brugt

Det jeg forsøger på i første omgang er, at sætte et flag i kolonnen Used når værdien i Kode er vist til en bruger.
Når jeg har det på plads kommer min næste udfordring, men det bliver et andet spørgsmål - hive brugerinfo ind og skrive i kolonnen User når en Kode er delt ud til den specifikke bruger.

Den er sikkert nem at gå til, men for mig er det dælme svær, så derfor 200 point.
Avatar billede majbom Novice
23. september 2011 - 11:45 #1
som udgangspunkt er både "user" og "used" tomme?

er det så ikke dobbeltkonfekt at have begge felter?

som jeg forstår dit spørgsmål, skal en bruger have tildelt en kode og når det er sket, skal brugerens id ind i feltet "user" - og så er koden "brugt"?

så selvom du skrotter "used" vil du stadig kunne se om koden er brugt eller ej
Avatar billede plippert Nybegynder
23. september 2011 - 11:57 #2
For så vidt rigtigt. Grunden til at jeg har begge felter lige nu er, at jeg tænker jeg skal have metoden på plads først inden jeg begynder at forsøge at hive bruger-info ind i databasen. men ja, til slut, kan Used slettes.

Og ja, både User og Used er tomme :)
Avatar billede majbom Novice
23. september 2011 - 13:32 #3
er det ikke lidt dumt at lave én ting for derefter at lave en anden ting bagefter der erstatter den første?

SELECT id, kode FROM tabel WHERE used != 1 LIMIT 1


og bagefter

UPDATE tabel SET used = 1 WHERE id = id'et_på_den_netop_hentede_kode


hvilket sprog bruger du sammen med dette?
Avatar billede plippert Nybegynder
23. september 2011 - 14:56 #4
<?php
// connection til DB står her


$data = mysql_query("SELECT kode FROM discount WHERE used !=1 LIMIT 1 ")
  or die(mysql_error());
  mysql_query("UPDATE discount SET used = 1 WHERE kode = ('$data')")
or die(mysql_error());


Print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
{
Print "<tr>";
Print "<th>Kode:</th> <td>".$info['kode'] . " </td></tr>";
}
Print "</table>";

?>


kode vises, men update virker ikke :(
23. september 2011 - 17:06 #5
$data er en 'resource' der ikke kan bruges direkte men skal 'pakkes ud' med en mysql_fetch_array eller, når der kun er et resultat, med mysql_result.  Prøv dette (ikke testet, men det skulle virke.)

$data = mysql_query("SELECT kode FROM discount WHERE used !=1 LIMIT 1 ")
  or die(mysql_error());
$kode = mysql_result($data, 0);
  mysql_query("UPDATE discount SET used = 1 WHERE kode = '$kode'")
or die(mysql_error());


Print "<table border cellpadding=3>";
Print "<tr>";
Print "<th>Kode:</th> <td>$kode</td></tr>";
Print "</table>";
25. september 2011 - 17:28 #6
plippert, du kom ikke tilbage.  Så du mit indlæg #5 som jeg oprettede for to dage siden?  Løste det problemet?  For det tilfælde opretter jeg dette som svar (for deling af points for andre hjælpsomme indlæg).  Eller fejler det, i såfald fortæl, så det måske kan forbedres.  Eller er det i mellemtiden ligemeget (du løste det selv eller problemet er ikke længere relevant).  I så fald luk venligst spørgsmålet ved selv at oprette og acceptere et svar.  Under alle omstændigheder, giv genlyd.
Avatar billede plippert Nybegynder
26. september 2011 - 08:25 #7
godmorgen :)
Jeg har holdt weekend helt uden computer og kode. Højst usædvanligt, men dejligt til trods. Jeg kigger videre på det hele i dag, så jeg vender frygteligt tilbage med eventuelle problemer :)


Tak
Avatar billede plippert Nybegynder
26. september 2011 - 08:52 #8
So far so good - værdien i used ændres og der vises en ny kode. Tak for det :)

Måske jeg kan få lidt mere hjælp fra jer... Koden som jeg sidder med, skal vises på Facebook, og i stedet for at skrive et 1-tal i 'used' vil jeg sætte brugerens Facebook UID.
Er det noget nogen kan hjælpe med, eller skal jeg oprette som nyt spørgsmål?
26. september 2011 - 08:56 #9
plippert, det er et nyt problem som du bør oprette som et nyt spørgsmål.  Så får det, som frisk spørgsmål opmærksomhed fra alle ekspertens medlemmer, og ikke kun fra de der har deltaget i dette spørgsmål.  Det ville også være fair, hvis dette spørgsmål er besvaret, så at lukke det og afgive points.
Avatar billede plippert Nybegynder
26. september 2011 - 09:48 #10
Enig - jeg lukker og siger mange tak for hjælpen :)
Avatar billede majbom Novice
26. september 2011 - 12:09 #11
selv tak!
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