webForumDet fria alternativet

Jämföra vissa fält innan uppdatering.

Databaser & SQL

7 svar · 780 visningar · startad av Pelletsteknik

Medlem sedan feb. 200844 inlägg
Frågan#1

Hur ska jag göra för att inte samma kund ska läggas in i registret mer än en gång?
Går det att jämföra tex 3 fält, fname, lname och postno tex?
Kan man jämföra fälten delvis, så att viss % av det matchar?
/Peter

// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (fname, lname, street, postno, city, telno, cellno, email)
VALUES('$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[postno]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST')")

Medlem sedan mars 2004485 inlägg
#2

OMG du kan inte läsa...

IF NOT EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue' AND Column2='SomeValue')
    INSERT INTO Table1 VALUES (...)
ELSE
Medlem sedan feb. 20013 023 inlägg
#3

Du måste rimligen spara ner än unik identifierare, t ex persnummer. Annars finns ju risken att du blandar ihop två kunder med samma namn. T ex finns det ju personer med lika namn som bor grannar så det räcker inte med förnamn, efternamn och postnr.

Om du inte har persnr, får du jämföra väldigt detaljerat enl Arons modell.

Medlem sedan feb. 200844 inlägg
#4

Jag kan inte mycket om SQL.
Hur fungerar detta, "SomeValue", kan jag ange en viss likhet i & här eller antal tecken som ska jämföras.

Medlem sedan feb. 200844 inlägg
#5

Går det att använda "LIKE"?

Medlem sedan mars 2004485 inlägg
#6

Pelletsteknik skrev:

Jag kan inte mycket om SQL.
Hur fungerar detta, "SomeValue", kan jag ange en viss likhet i & här eller antal tecken som ska jämföras.

Japps du kan använda olika operatorer som större mindre och liknande:
http://www.w3schools.com/sql/sql_where.asp
http://www.sql-tutorial.net/SQL-WHERE.asp

Och sedan kombinera det med and/or:
http://www.w3schools.com/sql/sql_and_or.asp

Kanske är det Like du är ute efter:
http://www.sql-tutorial.net/sql-like.asp

Medlem sedan feb. 200844 inlägg
#7
Nu läggs inte någon kund in?

// skriver information till den angivna tabellen

$nykund = mysql_query("IF NOT EXISTS (SELECT * FROM Kunder WHERE fname='fname' AND lname='lname' AND postno='postno')

    INSERT INTO Kunder (kundnr, foretag, fname, lname, street, postno, city, telno, cellno, email) 
VALUES('$kundnr','$foretag','$fname','$lname','$street','$postno','$city','$telno','$cellno','$email')");
Medlem sedan feb. 200844 inlägg
#8
Detta verkar funka. :)

// skriver information till den angivna tabellen
$oldkund = "SELECT * FROM Kunder WHERE fname ='$fname' AND lname ='$lname' AND postno ='$postno'";
$result = mysql_query($oldkund); 

$user_exist = mysql_num_rows($result);

if ($user_exist > 0) { 
      echo(""); 
   } 
      else { 

$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, postno, city, telno, cellno, email) 
VALUES('$kundnr','$foretag','$fname','$lname','$street','$postno','$city','$telno','$cellno','$email')");

}
257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)