Re: You have an error in your SQL syntax; [message #174135 is a reply to message #174134] |
Sun, 22 May 2011 21:16 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
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.
jstucklex(at)attglobal(dot)net
==================
|
|
|