You're solving the wrong problem, then. Keep looking, it's right there  
in front of you.

Walter

On Jul 1, 2009, at 1:36 PM, WLQ wrote:

>
> I understand I should put this:
> if(is_array($data)) {
>    array_shift($data);
> }
>
> Instead of:
> array_shift($data);
>
>> Or just do ....
>>
>> if(is_array($data)) {
>>     array_shift($data);
>>
>> }
>>
>> HTH Alex
>>
>> ----- Original Message -----
>> From: "Walter Lee Davis" <wa...@wdstudio.com>
>> To: <prototype-scriptaculous@googlegroups.com>
>> Sent: Wednesday, July 01, 2009 5:56 PM
>> Subject: [Proto-Scripty] Re: MySQL - order ID
>>
>>> Which means it's not getting an array. So look and see what it IS
>>> getting. What is the value of $data at that point? (Use echo(),
>>> print_r(), something like that to output the value.)
>>
>>> I can see the error right away, looking back over the code. It's a
>>> fairly stupid error on my part introduced while refactoring the
>>> working code into an example you could pick apart and learn from.
>>
>>> I want you to find it, because otherwise you will never stand on  
>>> your
>>> own here.
>>
>>> Walter
>>
>>> On Jul 1, 2009, at 10:31 AM, WLQ wrote:
>>
>>>> But here's what I get in error:
>>>> array_shift() [function.array-shift]: The argument should be an  
>>>> array
>>
>>>> On this line:
>>>> array_shift($data);
>>
>>>>> Yes. Like any example that you will ever find on the Web, this one
>>>>> needs to be adjusted to match your environment. Some basic  
>>>>> fluency in
>>>>> PHP is a requirement to use the MAR system, it can't divine
>>>>> everything
>>>>> for you.
>>
>>>>> Walter
>>
>>>>> On Jul 1, 2009, at 5:57 AM, WLQ wrote:
>>
>>>>>> Right, shouldn't then that be 'widgets'? Because the table of our
>>>>>> original sortable list were controlled by the widgets table. So
>>>>>> like:
>>>>>> if($master = MyActiveRecord::FindById('widgets',$original)){
>>
>>>>>>> Originals is a table in the database, it contains one of each
>>>>>>> type of
>>>>>>> thing you wish to be able to clone into the clones table.
>>>>>>> MyActiveRecord creates a PHP class for each table you "wrap" it
>>>>>>> around, and each row of the table becomes an object of that  
>>>>>>> class
>>>>>>> when
>>>>>>> you request it through MAR.
>>
>>>>>>> In short, this line:
>>
>>>>>>> if($master = MyActiveRecord::FindById('originals',$original)){
>>
>>>>>>> ...if it finds a table called 'originals' in your database, will
>>>>>>> return the row with the ID matching $original (or false).
>>
>>>>>>> Walter
>>
>>>>>>> On Jun 29, 2009, at 12:25 PM, WLQ wrote:
>>
>>>>>>>> It says - Class originals does not exist
>>>>>>>> Where does the originals class comes from? What is the  
>>>>>>>> originals
>>>>>>>> from
>>>>>>>> the code above?
>>
>>>>>>>>> If this is the code you are using (and I've added the missing
>>>>>>>>> close
>>>>>>>>> parenthesis), then the fact that you are getting a 200 back
>>>>>>>>> (and a
>>>>>>>>> new
>>>>>>>>> ID) means that you have successfully created a new clone.
>>>>>>>>> Otherwise,
>>>>>>>>> you should be getting a 500 or 404 back.
>>
>>>>>>>>> //create_clone.php
>>>>>>>>> $original = $_POST['original'];
>>>>>>>>> if($master = MyActiveRecord::FindById('originals',$original)){
>>>>>>>>>         $data = get_object_vars($original);
>>>>>>>>>         array_shift($data); //get rid of the ID
>>>>>>>>>         $new = MyActiveRecord::Create('clones',$data);
>>>>>>>>>         $new->save();
>>>>>>>>>         if(false === $new->get_errors()){
>>>>>>>>>                 header('Content-type: text/html;  
>>>>>>>>> charset=utf-8');
>>>>>>>>>                 //this is the part you need:
>>>>>>>>>                 print 'item_' .  $new->id;
>>>>>>>>>         }else{
>>>>>>>>>                 header('HTTP/1.0 500 Server Error',true,500);
>>>>>>>>>                 exit;
>>>>>>>>>         }}else{
>>
>>>>>>>>>         header('HTTP/1.0 404 Missing',true,404);
>>
>>>>>>>>> }
>>
>>>>>>>>> Visit your test page with Firefox and with the Console tab of
>>>>>>>>> Firebug
>>>>>>>>> open. Make sure Firebug is set to show XHR transactions. You
>>>>>>>>> should
>>>>>>>>> be
>>>>>>>>> able to observe the request to create_clone, and see the reply
>>>>>>>>> from
>>>>>>>>> the server. The reply should be the new ID of your clone. If  
>>>>>>>>> it
>>>>>>>>> isn't,
>>>>>>>>> then you have more debugging to do.
>>
>>>>>>>>> Things to check here:
>>
>>>>>>>>> * Have you included/required the library (MyActiveRecord) in  
>>>>>>>>> this
>>>>>>>>> script, and have you defined the constants it needs (MySQL
>>>>>>>>> address
>>>>>>>>> and
>>>>>>>>> credentials, also known as a DSN).
>>>>>>>>> * Have you got a MySQL table called clones?
>>>>>>>>> * Have you enabled error reporting on your server for your  
>>>>>>>>> test
>>>>>>>>> pages,
>>>>>>>>> so you can see the PHP errors as they whiz by?
>>>>>>>>> * Have you ordered that fat book I recommended?
>>
>>>>>>>>> Debugging PHP is like playing Whack-a-Mole. You fix one thing,
>>>>>>>>> and
>>>>>>>>> another pops up. You iterate, in other, more dainty words.
>>
>>>>>>>>> Walter
>>
>>>>>>>>> On Jun 28, 2009, at 12:04 PM, WLQ wrote:
>>
>>>>>>>>>> Also I've used that clone.php you gave, the only thing it
>>>>>>>>>> doesn't do
>>>>>>>>>> is change the MySQL table itself.
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to