Jump to content

Recommended Posts

I have a simple query and I'm trying to check to see if a board already exists with the same name or abbreviation, excluding the current board.

 

$result = mysql_query("SELECT * FROM `boards` WHERE name!='$board' AND abb='$abb' OR name='$newBoardName'");
	$row = mysql_fetch_assoc($result);
	if(!mysql_num_rows($result))
                {
                      
                 }
                 else
                 {
                      echo $board . '-' . $row['name'];
                 }

 

How is it possible that $board is the same as $row['name'] when that's clearly excluded in my query?

Link to comment
https://forums.phpfreaks.com/topic/165725-solved-makes-no-sense/
Share on other sites

I think your query is wrong.

 

There is 2 ways of doing it...I think.

 

mysql_query("SELECT * FROM `boards` WHERE name!='{$board}' AND abb='{$abb}' OR name='{$newBoardName}'");

 

or

 

mysql_query("SELECT * FROM `boards` WHERE name!='".$board."' AND abb='".$abb."' OR name='".$newBoardName."'");

To clarify my post above, it looks like you expect your query to be executed like this:

 

SELECT * FROM `boards` WHERE name!='$board' AND (abb='$abb' OR name='$newBoardName')

 

But that's not the case. It'll be executed like this:

 

SELECT * FROM `boards` WHERE (name!='$board' AND abb='$abb') OR name='$newBoardName'

 

Because:

AND has higher precedence than OR.

 

Which is why it's possible that $row['name'] == $board in your result set.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.