Re: You have an error in your SQL syntax; [message #174137 is a reply to message #174135] |
Sun, 22 May 2011 21:22 |
Co
Messages: 75 Registered: May 2011
Karma:
|
Member |
|
|
On 22 mei, 23:16, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 5/22/2011 4:56 PM, Co wrote:
>
>
>
>
>
>
>
>
>
>> On 22 mei, 22:35, Luuk<L...@invalid.lan> wrote:
>>> On 22-05-2011 22:11, Co wrote:
>
>>>> On 22 mei, 19:11, Luuk<L...@invalid.lan> wrote:
>>>> > On 22-05-2011 16:01, Co wrote:
>
>>>> >> Hi all,
>
>>>> >> I run a query based on the input in a listbox.
>>>> >> The query looks for users from a certain country.
>>>> >> When no users are from the chosen country I get a error message.
>>>> >> Is there no way to check if there are records in the query before
>>>> >> trying to output
>>>> >> so we only get a message saying: No records for this search.... or
>>>> >> something like it.
>
>>>> >> Regards
>>>> >> Marco
>
>>>> > I hope you know that there is a great MANUAL online at:http://www.php.net
>
>>>> > It has this great info:http://php.net/manual/en/function.mysql-num-rows.php
>
>>>> > --
>>>> > Luuk
>
>>>> Thanks Luuk,
>>>> I didn't know.
>>>> Anyways I tried an example from the page:
>
>>>> $num_rows = mysql_num_rows($sql2);
>>>> if($num_rows<> 0) {
>>>> while($row = mysql_fetch_array($sql2)) { ......
>
>>>> else {
>>>> print ("<p>No records for this search were found.</p>");
>>>> }
>
>>>> But I still get the error line saying:
>>>> Warning: mysql_num_rows(): supplied argument is not a valid MySQL
>>>> result resource
>
>>>> Marco
>
>>> The argument to mysql_num_rows() should not be a sql-statement, so
>>> sending a parameter with the name $sql2 seems confusing
>
>>> The argument you need to pass is the result from mysql_query();
>
>>> like the example:
>>> $result = mysql_query("SELECT * FROM table1", $link);
>>> $num_rows = mysql_num_rows($result);
>
>>> --
>>> Luuk
>
>> Guys,
>
>> I solved it.
>> I put this in the beginning:
>> $nr = mysql_num_rows($sql); // Get total of Num rows from the database
>> query
>> if ($nr){ // if we found any records we will proceed
>
>> If the query returns 0 records we pass all the code and just say "No
>> records found".
>
>> The only problem I still have is when I load the page first time I get
>> an error saying:
>> Notice: Undefined index
>> Somehow on this line:
>
>> if (($_POST['listByq'] == "newest_members")) {
>
>> listByq has not been defined.
>> Can I declare it at the top of the page?
>
>> Marco
>
> You can declare it, but rather you should use:
>
> if (isset($_POST['listByq']))
> $listByq = $_POST['listByq'];
> else
> $listByq = 'Some default value'; // Use an appropriate value
>
> Which can also be shortened to:
>
> $listByq = isset($_POST['listByq']) ? $_POST['listByq'] : 'Some default
> value';
>
> Then use $listByq from there on.
>
> And BTW - ALWAYS validate any input from the user, including $_POST
> values. There is no guarantee these values came from your form, for
> instance. A hacker can easily provide whatever value he wants.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================
Jerry,
thanks this works,
and thanks for the advises.
Marco
|
|
|