Re: exasperated again
| From: | Stuart | Date: | Sat, 04 Jul 2009 22:39:36 +0000 |
| Subject: | Re: exasperated again | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294887@lists.php.net to get a copy of this message | ||
2009/7/4 PJ <af.gourmet@videotron.ca>:
> Stuart wrote:
>> 2009/7/4 PJ <af.gourmet@videotron.ca>:
>>
>>> Ashley Sheridan wrote:
>>>
>>>> On Sat, 2009-07-04 at 10:47 -0400, PJ wrote:
>>>>
>>>>
>>>>> Jim Lucas wrote:
>>>>>
>>>>>
>>>>>> PJ wrote:
>>>>>>
>>>>>>
>>>>>>> Could somebody please explain to me what is wrong with this code?
>>>>>>> In my script it works, returns the correct id, but when I try it in a
>>>>>>> test pages, nothing in the world gets it to work. This is rather
>>>>>>> frustrating, again:
>>>>>>> THIS WORKS IN ANOTHER PAGE; IN THE TEST PAGE ID DOES NOT.
>>>>>>> $sql = "SELECT id FROM publishers
>>>>>>> WHERE publisher = 'whoever'";
>>>>>>> $result = mysql_query($sql,$db);
>>>>>>> $row = mysql_fetch_assoc($result); if
>>>>>>> (mysql_num_rows($result) !== 0) {
>>>>>>> $pub = $row['id'];
>>>>>>> Syntax is ok, echo "hello"; works.
>>>>>>>
>>>>>>>
>>>>>>> This works in the test page:
>>>>>>> $aid = array();
>>>>>>> $ord = array();
>>>>>>> $sql = "SELECT authID, ordinal
>>>>>>> FROM book_author WHERE bookid = 624 ORDER BY ordinal
>>>>>>> ASC";
>>>>>>> $result = mysql_query($sql, $db); //$row
>>>>>>> =
>>>>>>> mysql_fetch_assoc($result);
>>>>>>> while ( $row = mysql_fetch_assoc($result) ) {
>>>>>>> $aid[]=$row['authID'];
>>>>>>> $ord[]=$row['ordinal'];
>>>>>>> }
>>>>>>> var_dump($aid);
>>>>>>> echo "<br />";
>>>>>>> var_dump($ord);
>>>>>>> echo $aid[0], " - ";
>>>>>>> echo $ord[0];
>>>>>>>
>>>>>>> This does not:
>>>>>>> $fi="joe"; $la="joe";
>>>>>>> $sql = "SELECT id FROM author
>>>>>>> WHERE first_name = '$fi' && last_name =
>>>>>>> '$la'";
>>>>>>> $result = msql_query($sql, $db);
>>>>>>> $row = mysql_fetch_assoc($result);
>>>>>>> $count=mysql_num_rows($result);
>>>>>>> echo $count;
>>>>>>> if (mysql_num_rows($result) > 0) {
>>>>>>> $a_id=$row['id'];
>>>>>>> }
>>>>>>> echo $a_id, "<br /><br />";
>>>>>>> The test page prints out echo "some text"; but no results
>>>>>>> when the
>>>>>>> results are there....
>>>>>>> Tell me I have missed something simple here, or is this normal for php
>>>>>>> ?
>>>>>>> I have checked the queries on Mysql command line and they are fine.
>>>>>>> I have verified the syntax and Netbeans tells me it is fine.
>>>>>>> Same results Firefox3 (2 machines) & IE 8.
>>>>>>> What is not fine?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> I was preaching this to you months ago. You should have error
>>>>>> reporting turned on in a development area.
>>>>>>
>>>>>> by that I mean php should be set to display_errors = on and
>>>>>> error_reporting = E_ALL
>>>>>>
>>>>>> Give this a try in a development area and "you will see the errors of
>>>>>> your ways..."
>>>>>>
>>>>>>
>>>>>>
>>>>> The error reporting is always on as you suggested and I use it all the time.
>>>>> But error reporting cannot report a non-existing error - a human stupid
>>>>> error that I finally caught - msql instead of mysql... oh. well... :-(
>>>>>
>>>>> --
>>>>> Hervé Kempf: "Pour sauver la planète, sortez du capitalisme.."
>>>>> -------------------------------------------------------------
>>>>> Phil Jourdan --- pj@ptahhotep.com
>>>>> http://www.ptahhotep.com
>>>>> http://www.chiccantine.com/andypantry.php
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Actually, if you had error reporting on, it should have at least picked
>>>> that up as a function that was not defined. You do mention you get a lot
>>>> of white pages instead of errors, which suggests that either you do not
>>>> have errors turned on, or you are turning them on from within PHP,
>>>>
>>> What do you mean "from within PHP" ?
>>> Isn't this enough in the script?
>>> error_reporting(E_ALL);
>>> ini_set('display_errors', 1);
>>>
>>
>> As Ash points out that will not display errors in the code syntax
>> since they prevent any of your script from being executed. You're
>> better off setting these values in php.ini.
>>
>> -Stuart
>>
>>
> But not on a productions server, right? (Since this should have been
> corrected before "going live")
Indeed. If you're using the same server for both then use ini_set to
turn display_errors off on the production site.
-Stuart
--
http://stut.net/