Hi All On further exploring..
$skill = "PHP, TML, HTML"; $pieces = explode(",", $skill);
$query_string = 'SELECT name, email, phone, yrsofexp FROM {resubmt_table} ' . 'WHERE resubmt_table.uid IN (SELECT DISTINCT uid FROM {resubmt_users_skills} ' . 'WHERE resubmt_users_skills.skillid IN(SELECT skillid FROM {resubmt_skills} ' . 'WHERE resubmt_skills.skillname IN ( ' . db_placeholders($pieces, 'varchar') . ')))';
drupal_set_message($query_string); $query = db_query($query_string);
*The output prints as *
SELECT name, email, phone, yrsofexp FROM {resubmt_table} WHERE resubmt_table.uid IN (SELECT DISTINCT uid FROM {resubmt_users_skills} WHERE resubmt_users_skills.skillid IN(SELECT skillid FROM {resubmt_skills} WHERE resubmt_skills.skillname IN ( '%s','%s','%s')))
But I do not see , pieces[0], pieces[1] and pieces[2] etc in query string. Is it fine or I am doing something wrong here.
Regards Austin
On Mon, Apr 11, 2011 at 7:30 AM, Austin Einter austin.einter@gmail.comwrote:
Anth Thanks for help.
I tried this option, still get '' warning.
$skill = "PHP, TML, HTML"; $pieces = explode(",", $skill); $in_string = "'" . implode("','", $pieces) . "'";
$query = db_query("SELECT name, email, phone, yrsofexp FROM {resubmt_table}
WHERE resubmt_table.uid IN (SELECT DISTINCT uid FROM {resubmt_users_skills} WHERE resubmt_users_skills.skillid IN(SELECT skillid FROM {resubmt_skills} WHERE resubmt_skills.skillname IN (%s)))", $in_string);
I get the warning
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''PHP',' TML',' HTML')))' at line 4 query: SELECT name, email, phone, yrsofexp FROM resubmt_table WHERE resubmt_table.uid IN (SELECT DISTINCT uid FROM resubmt_users_skills WHERE resubmt_users_skills.skillid IN(SELECT skillid FROM resubmt_skills WHERE resubmt_skills.skillname IN ('PHP',' TML',' HTML'))) in C:\MyWeb6.20\wamp\www\livejobs1\sites\default\modules\resume_search\resume_search.module on line 126.
Thanks Austin On Mon, Apr 11, 2011 at 7:00 AM, Anth malkouna@yahoo.com.au wrote:
Sometimes you can't control what you're getting for your IN statement...
Try something like:
$string = "PHP,HTML,SQL"; $pieces = explode(",", $string); $in_string = "'" . implode("','", $pieces) . "'";
On 6:59 AM, nan wich wrote:
In Drupal code, you should *never* find a query with %s that is not surrounded by quotes. To do what you are looking for check the db_placeholders function in the API docs.
*Nancy*
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.
*From:* Austin Einter austin.einter@gmail.com *To:* support@drupal.org *Sent:* Sun, April 10, 2011 8:23:57 PM *Subject:* [support] String conversion
Hi I have a below string. *PHP, HTML, SQL* Want to convert it to *'PHP', 'HTML', 'SQL'*
I tried to write a function to do it as below. If I print the function output it prints properly. If same function output I use for SQL query as below I get warning.
Query: SELECT skillid FROM {resubmt_skills} WHERE resubmt_skills.skillname IN (%s)", $fSkill Warning: SELECT skillid FROM resubmt_skills WHERE resubmt_skills.skillname IN ('ITI',' PHP'))) in C:\MyWeb6.20\wamp\www\livejobs1\sites\default\modules\resume_search\resume_search.module on line 140.
Looks it has extra forward slashes. How can I overcome this.
Thanks Austin
-- [ Drupal support list | http://lists.drupal.org/ ]