[symfony-users] Re: Mysterious URL concatenation behavior
Thank you very much for your explanation. This thread has been very helpful and has improved my understanding. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
On Apr 6, 2:15 pm, Thomas Rabaix [EMAIL PROTECTED] wrote: Don't use RAW SQL with mysql_* function. It is not the aims of this framework. You are absolutely right, Thomas. I am struggling with Propel right now. Thanks to your link, I found quite a bit of documentation on propel and will print it. It is like learning a foreign language to me, and so, I still have to translate from first language, SQL, to propel. It will be some time before I can think in propel! Because my time frame is tight, I have given up on propel in a few places until I become more proficient. I have lots of other code that will need to be refactored, so I've made notes on where the 'uglies' are hiding and will come back to change to propel. I am a believer in database abstraction layer! I have learned much from this thread! Thank you. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
On Sun, 6 Apr 2008, Jill Elaine wrote: On Apr 6, 2:19 am, Thomas Rabaix [EMAIL PROTECTED] wrote: Does the getFilepath return a string value, or just echo the value ... that will explain why the filepath is displayed at first I am not sure I understand the difference? Simply put, you can only chain function calls like that if your functions return objects. $this-function() means call the function() method of the current object... -- --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
Does the getFilepath return a string value, or just echo the value ... that will explain why the filepath is displayed at first Thomas On Sun, Apr 6, 2008 at 6:53 AM, Jill Elaine [EMAIL PROTECTED] wrote: Coolio! Yes! Your suggestion works! First of all, I realized I didn't need to put 'http://mysite.com' at the beginning: as long as my filepath starts with a slash, the site name will be added to the front of the URL. So that made my task a bit more simple. Did you try putting parentheses around the function calls? I tried and it works! Now I have a href='?php echo ($file-getFilepath()).($file- getFilename()) ?' Download File/a and this works just great! Or assign the value of each get to a temporary variable before using those in the concatenation expression? I did try $filepath = $file-getFilepath(); $filename = $file-getFilename(); a href='?php echo $filepath.$filename ?' Download File/a doesn't work a href='?php echo ($filepath).($filename) ?' Download File/a doesn't work either! I am still mystified but happy to have a solution! Thank you! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
On Apr 6, 2:19 am, Thomas Rabaix [EMAIL PROTECTED] wrote: Does the getFilepath return a string value, or just echo the value ... that will explain why the filepath is displayed at first I am not sure I understand the difference? H, time for some investigation... Okay, I see what you mean, Thomas. In my lib/FileToSession.php, I have this simple get: public function getFileName() { return $this-getFile()-getFileName(); } but for the filepath, it is very clumsily built as I am not so good with propel: public function getFilePath() { $sessionid = sfContext::getInstance()-getUser()- getAttribute('sessionid'); $c = new Criteria(); $c-clearSelectColumns(); $c-addSelectColumn(FilePeer::FILE_PATH); $c-addJoin( FileToSessionPeer::FILE_ID, FilePeer::ID); $c-add(FileToSessionPeer::FILE_ID, $this-getFileId()); $c-addAnd(FileToSessionPeer::COURSE_SESSION_ID, $sessionid); $resultset = FilePeer::doSelectRS($c); $filepath = array(); while($resultset-next()) { $filepath[] = $resultset-getString(1); } foreach ($filepath as $value) { echo $value; } } and you can see that it does indeed ECHO a value as opposed to return it! Well, I could experiment with changing echo to return? I really struggled to get the filepath selection to work at all. FileToSession is a many-to-many through table to the File table: my nemesis! And I couldn't figure out how to pass the sessionid to the function other than through a user attribute var. Heh, a look in my messy closet! I'll try 'return' in this function and see if it makes a difference. And I'll listen carefully to any advice about better ways to build the above clumsy filepath function! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
I tried putting a return instead of an echo in the code below, but it doesn't work. I end up with only the filename in the a href, and no filepath. foreach ($filepath as $value) { echo $value; } Thanks to the help I received here, I have something that works, and best yet, I have learned something about echo and return: I have more to learn in this area, and I like learning! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
Hello, It look like your code get X filepath and echo all the different path. If there is only one filepath, add $c-setLimit(1) to get only one path. and just return $resultset-getString(1); You have to test that the result is not null. Thomas On Sun, Apr 6, 2008 at 4:23 PM, Jill Elaine [EMAIL PROTECTED] wrote: I tried putting a return instead of an echo in the code below, but it doesn't work. I end up with only the filename in the a href, and no filepath. foreach ($filepath as $value) { echo $value; } Thanks to the help I received here, I have something that works, and best yet, I have learned something about echo and return: I have more to learn in this area, and I like learning! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
If there is only one filepath, add $c-setLimit(1) to get only one path. The file_id and course_session_id are a combination primary key for the FileToSession table, so there is only one. and just return $resultset-getString(1); I tried: public function getFilePath() { $sessionid = sfContext::getInstance()-getUser()- getAttribute('sessionid'); $c = new Criteria(); $c-clearSelectColumns(); $c-addSelectColumn(FilePeer::FILE_PATH); $c-addJoin( FileToSessionPeer::FILE_ID, FilePeer::ID); $c-add(FileToSessionPeer::FILE_ID, $this- getFileId()); $c-addAnd(FileToSessionPeer::COURSE_SESSION_ID, $sessionid); $c-setLimit(1); $resultset = FilePeer::doSelectRS($c); return $resultset-getString(1); } But this throws error: invalid resultset column: 1 This is related to: http://trac.symfony-project.com/browser/trunk/lib/vendor/creole/drivers/mysql/MySQLResultSet.php?rev=1723 public function getString($column) 107 { 108 $idx = (is_int($column) ? $column - 1 : $column); 109 if (!array_key_exists($idx, $this-fields)) { throw new SQLException(Invalid resultset column: . $column); } 110 if ($this-fields[$idx] === null) { return null; } 111 return (string) $this-fields[$idx]; 112 } I think because resultset is an array of keys and values and I'm not returning it right??? I also tried: ... $c-addAnd(FileToSessionPeer::COURSE_SESSION_ID, $sessionid); $c-setLimit(1); $resultset = FilePeer::doSelectOne($c); return $resultset-getString(1); } But then I get wrapped: invalid resultset column: 2 You have to test that the result is not null. The file_path is a required field in the File table, so it's not null, but I understand the wisdom of testing for null anyway. I do appreciate your advice and help, Thomas. Thank you. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
I realized I was making my selection criteria much more complicated than I need. I wrote the function with sql and can see more clearly my criteria: public function getFilePath() { $fileid = $this-getFileId(); mysql_connect(localhost,myuser,mypassword); mysql_select_db(mydb); $getfilepath = SELECT file_path FROM file WHERE file.id = $fileid; $run = mysql_query($getfilepath); $row = mysql_fetch_assoc($run); $filepath = $row['file_path']; return $filepath; mysql_close(); } This works well, and I can use return instead of echo. Okay, this propel language is so foreign to me! I'll keep learning and rewrite my sql statements someday...when I get smarter! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
Don't use RAW SQL with mysql_* function. It is not the aims of this framework. You can do : [...] $file = FilePeer::doSelectOne($c); if($file instanceof File) { return $file-getFilePath(); } return null [...] If you use doSelectOne, you don't have to call setLimit ... if you use doSelectRs, this return a collection of ResultSet, to get the first entry, use $rs-next() if you use doSelect, this return an array of File You sould read the propel documentation. And if you are at the point to write raw SQL, read this http://propel.phpdb.org/docs/en/user_guide/chapters/FindingObjects.html#WritingSQL . Thomas On Sun, Apr 6, 2008 at 10:33 PM, Jill Elaine [EMAIL PROTECTED] wrote: I realized I was making my selection criteria much more complicated than I need. I wrote the function with sql and can see more clearly my criteria: public function getFilePath() { $fileid = $this-getFileId(); mysql_connect(localhost,myuser,mypassword); mysql_select_db(mydb); $getfilepath = SELECT file_path FROM file WHERE file.id = $fileid; $run = mysql_query($getfilepath); $row = mysql_fetch_assoc($run); $filepath = $row['file_path']; return $filepath; mysql_close(); } This works well, and I can use return instead of echo. Okay, this propel language is so foreign to me! I'll keep learning and rewrite my sql statements someday...when I get smarter! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---
[symfony-users] Re: Mysterious URL concatenation behavior
Coolio! Yes! Your suggestion works! First of all, I realized I didn't need to put 'http://mysite.com' at the beginning: as long as my filepath starts with a slash, the site name will be added to the front of the URL. So that made my task a bit more simple. Did you try putting parentheses around the function calls? I tried and it works! Now I have a href='?php echo ($file-getFilepath()).($file- getFilename()) ?' Download File/a and this works just great! Or assign the value of each get to a temporary variable before using those in the concatenation expression? I did try $filepath = $file-getFilepath(); $filename = $file-getFilename(); a href='?php echo $filepath.$filename ?' Download File/a doesn't work a href='?php echo ($filepath).($filename) ?' Download File/a doesn't work either! I am still mystified but happy to have a solution! Thank you! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups symfony users group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~--~~~~--~~--~--~---