PDA

View Full Version : SQL Problem



Robbie
17-01-2008, 08:21 PM
I have the code:


<?

// Database Connect

$host = "localhost";
$user = "usr";
$pass = "pass";
$db = "usr";
$cn = mysql_pconnect($host, $user, $pass);
if( !$cn )
{
echo "Error connecting to database.";
}
mysql_select_db($db);



//Check If form has been submitted

if($_POST["B1"]) {



// If Habbo Name hasn't been entered

if($_POST[T1] = "") {
die("<font face='verdana' size='1'>You must enter a habbo name</font>");
}


// If Forum name hasn't been entered

if($_POST[T2] = "") {
die("<font face='verdana' size='1'>You must enter a forum name</font>");
}

// If username is already in database

$find_username = mysql_query("SELECT * FROM event WHERE name = '$_POST[T1]'");
$duplicate_username = mysql_num_rows($find_username);


// If not, then enter user

if ($duplicate_username == 0 ) {
$query = mysql_query("INSERT INTO `event` (`name`, `forum`, `points`) VALUES('$_POST[T1]', '$_POST[T2]', '50')");
echo "<font face='verdana' size='1'>entered";

// If in, show error

} else {
die("<font face='verdana' size='1'>Habbo name already in database!</font>");
}

} else {

?>


// Code for my page

<?php } ?>




The code works etc (I removed the html code) but when i add the username check code, it always says Habbo name already in database no matter what.

any help? thanks

Jackboy
17-01-2008, 08:48 PM
u aint done a mysql_num_rows mate.

Ur just checking the array for a number when it aint got that.

PM me if u dont understand what im woffling about

EDIT: NEW CODE


<?

// Database Connect

$host = "localhost";
$user = "usr";
$pass = "pass";
$db = "usr";
$cn = mysql_pconnect($host, $user, $pass);
if( !$cn )
{
echo "Error connecting to database.";
}
mysql_select_db($db);



//Check If form has been submitted

if($_POST["B1"]) {



// If Habbo Name hasn't been entered

if($_POST[T1] = "") {
die("<font face='verdana' size='1'>You must enter a habbo name</font>");
}


// If Forum name hasn't been entered

if($_POST[T2] = "") {
die("<font face='verdana' size='1'>You must enter a forum name</font>");
}

// If username is already in database

$find_username = mysql_query("SELECT * FROM event WHERE name = '$_POST[T1]'");
$all_usernames = mysql_num_rows($find_username);
$duplicate_username = mysql_num_rows($all_usernames);


// If not, then enter user

if ($duplicate_username == 0 ) {
$query = mysql_query("INSERT INTO `event` (`name`, `forum`, `points`) VALUES('$_POST[T1]', '$_POST[T2]', '50')");
echo "<font face='verdana' size='1'>entered";

// If in, show error

} else {
die("<font face='verdana' size='1'>Habbo name already in database!</font>");
}

} else {

?>


// Code for my page

<?php } ?>

MrCraig
17-01-2008, 09:02 PM
i dont understand what your woffling about as youve done the mysql_num_rows twice.

Robbie
17-01-2008, 09:04 PM
^ doesnt work.

And it does have num rows, here


$find_username = mysql_query("SELECT * FROM event WHERE name = '$_POST[T1]'");
$duplicate_username = mysql_num_rows($find_username);

edit: craig beat me

Jme
17-01-2008, 09:18 PM
I don't see why you'vwe given your query to insert the event or w.e a variable? I think the problem is you've wrapped your variable that represents the username in quotes but not the field you're checking, I don't know, try what i've done below and see if it works..


<?

// Database Connect

$host = "localhost";
$user = "usr";
$pass = "pass";
$db = "usr";
$cn = mysql_pconnect($host, $user, $pass);
if( !$cn )
{
echo "Error connecting to database.";
}
mysql_select_db($db);



//Check If form has been submitted

if($_POST["B1"]) {



// If Habbo Name hasn't been entered

if($_POST[T1] = "") {
die("<font face='verdana' size='1'>You must enter a habbo name</font>");
}


// If Forum name hasn't been entered

if($_POST[T2] = "") {
die("<font face='verdana' size='1'>You must enter a forum name</font>");
}

// If username is already in database
$find_username = mysql_query("SELECT * FROM `event` WHERE `name` = '" . $_POST['T1'] . "' ");
$duplicate_username = mysql_num_rows($find_username);


// If not, then enter user

if ($duplicate_username == 0) {
mysql_query("INSERT INTO `event` (`name`, `forum`, `points`) VALUES('$_POST[T1]', '$_POST[T2]', '50')");
echo "<font face='verdana' size='1'>entered";

// If in, show error

} else {
die("<font face='verdana' size='1'>Habbo name already in database!</font>");
}

} else {

?>

// Code for my page

<?php } ?>

Robbie
17-01-2008, 09:41 PM
didnt work :s

MrCraig
17-01-2008, 09:56 PM
<?

// Database Connect

$host = "localhost";
$user = "usr";
$pass = "pass";
$db = "usr";
$cn = mysql_pconnect($host, $user, $pass);
if( !$cn )
{
echo "Error connecting to database.";
}
mysql_select_db($db);



//Check If form has been submitted

if($_POST["B1"]) {



// If Habbo Name hasn't been entered

if($_POST[T1] = "") {
die("<font face='verdana' size='1'>You must enter a habbo name</font>");
}


// If Forum name hasn't been entered

if($_POST[T2] = "") {
die("<font face='verdana' size='1'>You must enter a forum name</font>");
}

// If username is already in database

$find_username = mysql_query("SELECT * FROM event");

$duplicate_username = 0
while($countnums = mysql_fetch_array($find_username))
{
if($countnums[name] == $_POST[T1])
$duplicate_username++;
}


// If not, then enter user

if ($duplicate_username == 0 ) {
$query = mysql_query("INSERT INTO `event` (`name`, `forum`, `points`) VALUES('$_POST[T1]', '$_POST[T2]', '50')");
echo "<font face='verdana' size='1'>entered";

// If in, show error

} else {
die("<font face='verdana' size='1'>Habbo name already in database!</font>");
}

} else {

?>


// Code for my page

<?php } ?>



That bypasses the mysql_num_rows thing, in case thats the reason it doesnt work as i dont see anything wrong with it :S

Jackboy
18-01-2008, 08:48 PM
i dont understand what your woffling about as youve done the mysql_num_rows twice.

Lmao at me. I meant to do an array.

Want to hide these adverts? Register an account for free!