Re: [PHP-DB] mysql_num_rows == 0
On 30 May 2011 22:31, Nazish naz...@jhu.edu wrote: Hi all, I've run into a little barrier, and I'm wondering whether you have any insights. I'm entering values into a MySQL database. Before running the mysql_query, I'm checking if the value already exists (using mysql_num_rows == 0). If the value already exists in the database, the page will echo Username already exists and it won't insert the user's new value. It runs that far, and echoes the message accordingly. However, if the username is new, and does not exist in the database, the query dies (without leaving a mysql error). I tried changing the Unique IDs in the database, but it doesn't seem to be the issue. The syntax seems fine, as I used it for another similar page. Any idea why it's dying? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter -- hype WWW: plphp.dk / plind.dk LinkedIn: plind BeWelcome/Couchsurfing: Fake51 Twitter: kafe15 /hype -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] mysql_num_rows == 0
try this instead.. if(mysql_num_rows($check) 0) { //true } else { //false } and yes, Peter's right... please dont make everything die(). Karl On May 30, 2011, at 3:43 PM, Peter Lind wrote: On 30 May 2011 22:31, Nazish naz...@jhu.edu wrote: Hi all, I've run into a little barrier, and I'm wondering whether you have any insights. I'm entering values into a MySQL database. Before running the mysql_query, I'm checking if the value already exists (using mysql_num_rows == 0). If the value already exists in the database, the page will echo Username already exists and it won't insert the user's new value. It runs that far, and echoes the message accordingly. However, if the username is new, and does not exist in the database, the query dies (without leaving a mysql error). I tried changing the Unique IDs in the database, but it doesn't seem to be the issue. The syntax seems fine, as I used it for another similar page. Any idea why it's dying? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter -- hype WWW: plphp.dk / plind.dk LinkedIn: plind BeWelcome/Couchsurfing: Fake51 Twitter: kafe15 /hype -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php Karl DeSaulniers Design Drumm http://designdrumm.com -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] mysql_num_rows == 0
That did the trick: I was over-enthusiastic in my usage of die(mysql_error). I initially used mysql_error to troubleshoot another problem (which has now re-emerged), but that's a different question which is puzzling me. The error message ($alert = Username already exists!;) displays on the page as soon as the value has been inserted into mysql. It's strange, since the message should be bypassed through the else statement, and the script only runs if the user clicks 'submit'. Is this familiar? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter 2011/5/30 Peter Lind peter.e.l...@gmail.com On 30 May 2011 22:31, Nazish naz...@jhu.edu wrote: Hi all, I've run into a little barrier, and I'm wondering whether you have any insights. I'm entering values into a MySQL database. Before running the mysql_query, I'm checking if the value already exists (using mysql_num_rows == 0). If the value already exists in the database, the page will echo Username already exists and it won't insert the user's new value. It runs that far, and echoes the message accordingly. However, if the username is new, and does not exist in the database, the query dies (without leaving a mysql error). I tried changing the Unique IDs in the database, but it doesn't seem to be the issue. The syntax seems fine, as I used it for another similar page. Any idea why it's dying? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter -- hype WWW: plphp.dk / plind.dk LinkedIn: plind BeWelcome/Couchsurfing: Fake51 Twitter: kafe15 /hype
Re: [PHP-DB] mysql_num_rows == 0
Code runs smoothly now, thanks. It's always great to pick up diverse coding tips through the conversations here. 2011/5/30 Nazish naz...@jhu.edu That did the trick: I was over-enthusiastic in my usage of die(mysql_error). I initially used mysql_error to troubleshoot another problem (which has now re-emerged), but that's a different question which is puzzling me. The error message ($alert = Username already exists!;) displays on the page as soon as the value has been inserted into mysql. It's strange, since the message should be bypassed through the else statement, and the script only runs if the user clicks 'submit'. Is this familiar? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter 2011/5/30 Peter Lind peter.e.l...@gmail.com On 30 May 2011 22:31, Nazish naz...@jhu.edu wrote: Hi all, I've run into a little barrier, and I'm wondering whether you have any insights. I'm entering values into a MySQL database. Before running the mysql_query, I'm checking if the value already exists (using mysql_num_rows == 0). If the value already exists in the database, the page will echo Username already exists and it won't insert the user's new value. It runs that far, and echoes the message accordingly. However, if the username is new, and does not exist in the database, the query dies (without leaving a mysql error). I tried changing the Unique IDs in the database, but it doesn't seem to be the issue. The syntax seems fine, as I used it for another similar page. Any idea why it's dying? $check = mysql_query(SELECT * FROM user WHERE user_name='$user_name') or die (Unable to query database:.mysql_error()); $numrows = mysql_num_rows($check) or die (Unable to search database:.mysql_error()); - DIES HERE when a new value is entered. no mysql_error msg. bla bla or die(more bla); is a very bad way of handling error checks. In your particular case, your foot has been shot off because mysql_num_rows will return 0 (no rows match the query) and thus the die() is executed - but of course there's no error in the query, it executed just fine, this we know already. Moral: don't use ' or die();' for anything else than hands on debugging purposes Regards Peter -- hype WWW: plphp.dk / plind.dk LinkedIn: plind BeWelcome/Couchsurfing: Fake51 Twitter: kafe15 /hype