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 -~----------~----~----~----~------~----~------~--~---