PHP <= malfunctions when first number is less
up vote
0
down vote
favorite
I have the following code:
$sql = "SELECT * FROM reward_table WHERE _cost <= '$_points' ORDER BY ID DESC";
$result = $conn->query($sql);
while (($row = mysqli_fetch_assoc($result))) {
$_title = $row_s['_title'];
$_cost = $row_s['_cost'];
$_id = $row_s['ID'];
}
When _cost
is, for example, set at 8792, and $_points
is 8793 then the particular reward shows. When _cost
is updated to 8794 then it disappears, which is great - works. However...
When _cost
is set to 10000, it also shows? But, when I change _cost
to 9000 it disappears as it should. I'm so confused - have I coded something wrong..? It appears like the code will only work if the starting digit of _cost
is higher or the same as the starting digit of $_points
.
Your help is much appreciated and will stop me going totally insane!
php mysqli comparison-operators
add a comment |
up vote
0
down vote
favorite
I have the following code:
$sql = "SELECT * FROM reward_table WHERE _cost <= '$_points' ORDER BY ID DESC";
$result = $conn->query($sql);
while (($row = mysqli_fetch_assoc($result))) {
$_title = $row_s['_title'];
$_cost = $row_s['_cost'];
$_id = $row_s['ID'];
}
When _cost
is, for example, set at 8792, and $_points
is 8793 then the particular reward shows. When _cost
is updated to 8794 then it disappears, which is great - works. However...
When _cost
is set to 10000, it also shows? But, when I change _cost
to 9000 it disappears as it should. I'm so confused - have I coded something wrong..? It appears like the code will only work if the starting digit of _cost
is higher or the same as the starting digit of $_points
.
Your help is much appreciated and will stop me going totally insane!
php mysqli comparison-operators
6
What's the table definition? Is_cost
a text field rather than numeric perhaps?
– mario
Nov 11 at 11:01
1
TryCAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case'10000' < '2'
– Nick
Nov 11 at 11:07
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following code:
$sql = "SELECT * FROM reward_table WHERE _cost <= '$_points' ORDER BY ID DESC";
$result = $conn->query($sql);
while (($row = mysqli_fetch_assoc($result))) {
$_title = $row_s['_title'];
$_cost = $row_s['_cost'];
$_id = $row_s['ID'];
}
When _cost
is, for example, set at 8792, and $_points
is 8793 then the particular reward shows. When _cost
is updated to 8794 then it disappears, which is great - works. However...
When _cost
is set to 10000, it also shows? But, when I change _cost
to 9000 it disappears as it should. I'm so confused - have I coded something wrong..? It appears like the code will only work if the starting digit of _cost
is higher or the same as the starting digit of $_points
.
Your help is much appreciated and will stop me going totally insane!
php mysqli comparison-operators
I have the following code:
$sql = "SELECT * FROM reward_table WHERE _cost <= '$_points' ORDER BY ID DESC";
$result = $conn->query($sql);
while (($row = mysqli_fetch_assoc($result))) {
$_title = $row_s['_title'];
$_cost = $row_s['_cost'];
$_id = $row_s['ID'];
}
When _cost
is, for example, set at 8792, and $_points
is 8793 then the particular reward shows. When _cost
is updated to 8794 then it disappears, which is great - works. However...
When _cost
is set to 10000, it also shows? But, when I change _cost
to 9000 it disappears as it should. I'm so confused - have I coded something wrong..? It appears like the code will only work if the starting digit of _cost
is higher or the same as the starting digit of $_points
.
Your help is much appreciated and will stop me going totally insane!
php mysqli comparison-operators
php mysqli comparison-operators
edited Nov 11 at 11:11
Álvaro González
104k30180269
104k30180269
asked Nov 11 at 10:58
Nathan Winch
4718
4718
6
What's the table definition? Is_cost
a text field rather than numeric perhaps?
– mario
Nov 11 at 11:01
1
TryCAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case'10000' < '2'
– Nick
Nov 11 at 11:07
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08
add a comment |
6
What's the table definition? Is_cost
a text field rather than numeric perhaps?
– mario
Nov 11 at 11:01
1
TryCAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case'10000' < '2'
– Nick
Nov 11 at 11:07
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08
6
6
What's the table definition? Is
_cost
a text field rather than numeric perhaps?– mario
Nov 11 at 11:01
What's the table definition? Is
_cost
a text field rather than numeric perhaps?– mario
Nov 11 at 11:01
1
1
Try
CAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case '10000' < '2'
– Nick
Nov 11 at 11:07
Try
CAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case '10000' < '2'
– Nick
Nov 11 at 11:07
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Simple fix - my table has _cost as text, rather than integer.
All works fine no need to change code. Fix was table-side.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Simple fix - my table has _cost as text, rather than integer.
All works fine no need to change code. Fix was table-side.
add a comment |
up vote
0
down vote
Simple fix - my table has _cost as text, rather than integer.
All works fine no need to change code. Fix was table-side.
add a comment |
up vote
0
down vote
up vote
0
down vote
Simple fix - my table has _cost as text, rather than integer.
All works fine no need to change code. Fix was table-side.
Simple fix - my table has _cost as text, rather than integer.
All works fine no need to change code. Fix was table-side.
answered Nov 11 at 11:14
Nathan Winch
4718
4718
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248037%2fphp-malfunctions-when-first-number-is-less%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
6
What's the table definition? Is
_cost
a text field rather than numeric perhaps?– mario
Nov 11 at 11:01
1
Try
CAST(_cost AS UNSIGNED) <= $_points
. It sounds like you're doing a string comparison, in which case'10000' < '2'
– Nick
Nov 11 at 11:07
You're both right. As soon as I changed the row to INT it started working. Always a simple fix! Thanks guys.
– Nathan Winch
Nov 11 at 11:08