PHP <= malfunctions when first number is less
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 |
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 '18 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 '18 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 '18 at 11:08
add a comment |
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 '18 at 11:11
Álvaro González
106k30185273
106k30185273
asked Nov 11 '18 at 10:58
Nathan WinchNathan Winch
4718
4718
6
What's the table definition? Is_cost
a text field rather than numeric perhaps?
– mario
Nov 11 '18 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 '18 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 '18 at 11:08
add a comment |
6
What's the table definition? Is_cost
a text field rather than numeric perhaps?
– mario
Nov 11 '18 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 '18 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 '18 at 11:08
6
6
What's the table definition? Is
_cost
a text field rather than numeric perhaps?– mario
Nov 11 '18 at 11:01
What's the table definition? Is
_cost
a text field rather than numeric perhaps?– mario
Nov 11 '18 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 '18 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 '18 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 '18 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 '18 at 11:08
add a comment |
1 Answer
1
active
oldest
votes
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 |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 |
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 |
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 '18 at 11:14
Nathan WinchNathan 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.
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 '18 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 '18 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 '18 at 11:08