webForumDet fria alternativet

Testa mot flera fält

Databaser & SQL

6 svar · 194 visningar · startad av mozilla

Medlem sedan juli 20011 084 inlägg
Frågan#1

Hur testar man mot två fält samtidigt? Lite bättre förklaring: Jag vill kontrollera så inte någon har samma för- och efternamn, i databasen finns det två fält, ett för fornamn och ett för efternamn. Men nu vill jag se till så ingen fuskar. Och det kan man ju enkelt kolla via

fornamn = '"& strFornamn &"' OR efternamn = '"& strEfternamn &"'

Men då kan någon fuska om de vill det, genom att bara fylla i tex efternamnet, och där skriva hela namnet tex "Sven Svensson" och på så sätt gå runt min kod. Hur kan man kontrollera det?

fornamn = '"& strFornamn &"' OR efternamn = '"& strEfternamn &"' [b]OR fornamn & eftername = '"& strEfternamn &"'[/b]

Vill inte fungera?

Medlem sedan dec. 200012 464 inlägg
#2

Jag förstår inte riktigt vad som är problemet. Det bör vara AND i din jämförelse och om du sedan kräver att alla fyller i både för och efternamn så blir det inget problem

fornamn = '"& strFornamn &"' AND efternamn = '"& strEfternamn &"'
Medlem sedan juli 20011 084 inlägg
#3

jo... men problemet ligger när de istället för att skriva

Förnamn: Sven
Efternamn: Svensson

istället skriver

Förnamn: (ingenting)
Efternamn: Sven Svensson

på så sätt kan det finnas två personer med samma namn, och det får det inte göra. Hoppas det gav lite mer klarhet i problemet. Jag kör med mySQL ifall det skulle ha någon betydelse.

Medlem sedan mars 20034 471 inlägg
#4

Men om du gör förnamn till ett obligatoriskt fält som måste vara ifyllt, så borde du kunna lösa det i applikationsprogrammet.

Medlem sedan juli 20011 084 inlägg
#5

Okej, det var kanske ett dumt förslag. På min sida är Förnamn obligatoriskt, men inte efternamn. Det största problemet ligger istället i gästboken, där både registrerade användare och gäster ska kunna skriva inlägg. Men då en gäst skriver något vill jag kontrollera så att det inte finns någon användare med samma namn.

Går det överhuvudtaget att göra så i mySQL?

Medlem sedan mars 20034 471 inlägg
#6

Humm, vill du verkligen det? Hur många Nils Hansson tror du det finns i Sverige? Namn är inte direkt unika...

Medlem sedan juli 20011 084 inlägg
#7

Jo jag vill verkligen ha det så. Det rör sig inte direkt om för/efternamn, utan jag tog bara det för att illustrera mitt problem. Jag vill ha en SQL-sats som fungerar som den under (fast den fungerar inte :e)

"SELECT fornamn FROM namn WHERE fornamn & efternamn = 'Nils Hansson'"

Med andra ord jämföra mot två fält samtidigt Går det?

272 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)