webForumDet fria alternativet

Söka/lägga till i DB

PHP

8 svar · 243 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Frågan#1

Jag vill helt enkelt kolla om ett visst värde finns i min MySQL-databas. Finns inte värdet ska det skrivas till db:n, annars skickas man vidare. Har gjort så här:

$open2 = mysql_connect("adress", "blabla", "blabla");
$sql = mysql_db_query("db", "SELECT address FROM table");

while ($row = mysql_fetch_array($sql))
{
	if ($row['address'] == $HTTP_POST_VARS[email])
	{
		mysql_close($open2);
		header("location: mail.php");
	}
}

$open = mysql_connect("adress", "blabla", "blabla");
$data = mysql_db_query("db", "INSERT INTO table (address) VALUES ('$HTTP_POST_VARS[email]');");
mysql_close($open);
header("location: mail.php?action=insertsuccess");

Det är säkert jättefult skrivet, det fungerar ju inte heller. Det som händer är att värdet läggs till även fast det finns i db:n.

Medlem sedan nov. 2001274 inlägg
#2

Jag hade gjort något sånt här.


$sql = "SELECT address FROM table WHERE address = '{$_POST["email"]}'"

$result = mysql_query($sql);

if (mysql_result($result, 0) > 0) {

header("location: mail.php");

} else {

$sql = "INSERT INTO table (address) values('{$_POST["email"]}')";
mysql_query($sql);
header("location: mail.php?action=insertsuccess");
}

Så du kollar om du får några träffar från den första frågan. Om du inte får det så finns ju inte adressen i databasen, o då kör du in den. Om den redan finns så skickas du vidare. Hoppas det hjälpte...

Medlem sedan maj 2001797 inlägg
#3

Tack för hjälpen, men det funkar inte. Det blir fel på:

if (mysql_result($result, 0) > 0)

Fel:Supplied argument is not a valid MySQL result resource

Medlem sedan nov. 2001274 inlägg
#4

testa

if (mysql_result($result) > 0) {

Asså ta bort nollan i parentesen

Medlem sedan maj 2001797 inlägg
#5

Då blev det
Wrong parameter count for mysql_result()

Medlem sedan nov. 2001274 inlägg
#6

Hah, vad sysslar jag med egentligen.

$sql = "SELECT address FROM table WHERE address = '{$_POST["email"]}'"

$result = mysql_query($sql);

if (mysql_num_rows($result) > 0) {

header("location: mail.php");

} else {

$sql = "INSERT INTO table (address) values('{$_POST["email"]}')";
mysql_query($sql);
header("location: mail.php?action=insertsuccess");
}

Kolla på den felande raden nu. :)

Medlem sedan maj 2001797 inlägg
#7

Nope,
Supplied argument is not a valid MySQL result resource
på samma rad.

Medlem sedan nov. 2001274 inlägg
#8
$open2 = mysql_connect("adress", "blabla", "blabla");
$sql = mysql_db_query("db", "SELECT address FROM table WHERE address = '{$_POST["address"]}'");

if (mysql_num_rows($sql) > 0)
{
mysql_close($open2);
header("location: mail.php");
} else {

$open = mysql_connect("adress", "blabla", "blabla");
$data = mysql_db_query("db", "INSERT INTO table (address) VALUES ('$HTTP_POST_VARS[email]');");
mysql_close($open);
header("location: mail.php?action=insertsuccess");
}

Såhär då? :l

Medlem sedan maj 2001797 inlägg
#9

Sådärja! Inte lika snygg kod som innan men den fungerar perfekt! Tack ska du ha :bire

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