我学习如何编写WordPress插件.我需要一些帮助将一些数据写入XML文件.我在我的本地机器上,一台运行MAMP的Mac.我有PHP 5.2.13.在我的插件中,我有:
$file_handle = fopen('markers.xml', 'w');
$stringdata = "Test Info";
fwrite($file_handle, $stringdata);
fclose($file_handle);
运行上面的代码给出了以下错误:
警告:fopen(markers.xml)[function.fopen]:无法打开流:第73行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的权限被拒绝
警告:fwrite():提供的参数不是第75行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的有效流资源
警告:fclose():提供的参数不是76行/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中的有效流资源
我尝试使用$ file_handle行中的绝对路径:http://my_site/wp-content/plugins/my_plugin_folder/markers.xml.但是,这没有用.
我还尝试更改markers.xml的权限,如下所示:
(我):读写(未知):只读大家:读写
出于某种原因,我的Mac不会让我改变(未知)读写.我不确定这是否有所作为.我右键单击该文件并选择"获取信息"以更改权限.
在phpInfo()中,我得到了:
"已注册的PHP Streams https,ftps,compress.zlib,compress.bzip2,php,file,data,http,ftp"
是WordPress设置导致问题?还是只是PHP问题?
有关如何解决这个问题的任何建议?
谢谢.
有没有办法将多个csv文件同时导入MySQL数据库?某种批量导入?
我在运行MAMP服务器的Mac OSX上.
我有185个csv文件,我需要导入MySQL表.我可以使用phpMyAdmin的导入选项卡单独导入它们,但这需要很长时间.有谁知道是否有更好的方法?
嗨,我有一些不会验证的XML.我把这个问题缩小到了这个范围:
<script type="text/javascript">document.getelementbyid("oxm-1f4a4485-5a1d-45f9-a989-9c65a0b9ceb6").src="http://bid.website.net/display?l=h4siaaaaaaaaad2nmq6cqbrenycw7qjyolfccxmregvcoae0u0sly_agtvaewwn4bg_havwbnebpvmzkkzra_kzzdvoloq4u-hjnp7sii0rxcbzz5vl5kxsrds6wtsfbxmcr9chysuhqbecuckb8cvx4m-pbcxugtdrll6d3dqtihnqukth2yvdkptr67cuzfvlxjlinkul9634lpal_h4mwhso8aabzhw1cdcwjxl6xivgv8agrjxjc_gaaaa==&p=h4siaaaaaaaaabxkmq7cmaxaurcqjjrrsfqqsrm7x3fsrwyvosda8qnj_3ojfgb49o45pblq7e80syzjhopggso9wyzpcpntzkxk1ldtbbi7otmxfj9da1wpjcf10vtxdj9e5_utyj19k2lfssepld5agnqaaaa=&url=http%3a%2f%2flocalhost%2fproject-debug%2fproject.html";</script>
我把它放在一个XML验证器中,它吐出来:
此页面包含以下错误:第16行第1行的错误:EntityRef:expecting';'
任何关于失踪';'的想法 应该去?还有其他问题吗?
如何将这两个select语句组合到一个查询中:
SELECT SUM( incidents )  AS fires, neighborhoods AS fire_neighborhoods
FROM (
SELECT * 
FROM `fires_2009_incident_location` 
UNION ALL SELECT * 
FROM `fires_2008_incident_location`
UNION ALL SELECT * 
FROM `fires_2007_incident_location`
UNION ALL SELECT * 
FROM `fires_2006_incident_location`
) AS combo
GROUP BY fire_neighborhoods ORDER BY fires DESC
SELECT SUM( incidents )  AS adw, neighborhoods AS adw_neighborhoods
FROM (
SELECT * 
FROM `adw_2009_incident_location` 
UNION ALL SELECT * 
FROM `adw_2008_incident_location`
UNION ALL SELECT * 
FROM `adw_2007_incident_location`
UNION ALL SELECT * 
FROM `adw_2006_incident_location`
) AS combo2 …对不起有一个非常基本的问题(所以不要有牛,告诉我"google it,duh").要冷静和快乐.
我应该在我的网站上使用png-8还是png-24?大多数网站仍然使用png-8或浏览器支持是否足够好以至于我可以安全地使用png-24?我有一些jquery滑块,我不知道这是否有所不同.谢谢!
-Laxmidi
在对mysql查询进行排名时如何处理关系?我在这个例子中简化了表名和列,但它应该说明我的问题:
SET @rank=0;
   SELECT student_names.students, 
          @rank := @rank +1 AS rank, 
          scores.grades
     FROM student_names  
LEFT JOIN scores ON student_names.students = scores.students
 ORDER BY scores.grades DESC
所以想象一下上面的查询产生:
Students  Rank  Grades
=======================
Al         1     90
Amy        2     90
George     3     78
Bob        4     73
Mary       5     NULL
William    6     NULL
虽然Al和Amy的成绩相同,但其中一个排名高于另一个.艾米被扯掉了.我怎样才能让艾米和艾尔拥有相同的排名,这样他们的排名都是1.另外,威廉和玛丽没有参加考试.他们上课并在男孩的房间里吸烟.他们应该并列最后一个位置.
正确的排名应该是:
Students  Rank  Grades
========================
Al         1     90
Amy        1     90
George     2     78
Bob        3     73
Mary       4     NULL
William    4     NULL
如果有人有任何建议,请告诉我.
我需要将table1中的数据插入table2.但是,我想将table2中的myYear列设置为2010.但是,table1中没有myYear列.
所以,我的基本插入看起来像:
INSERT INTO  `table2` ( place, event ) 
SELECT place, event
FROM table1
粗略地说,我想做类似以下的事情:
INSERT INTO `table2` ( place, event, SET myYear='2010' )
...
有没有办法在insert语句中设置列值?
在我的PHP文件中,我使用此行从mySQL数据库中提取数据:
$query = "SET @rank=0; SELECT @rank:=@rank +1 as rank, Blah Blah...";
如果我在phpMyAdmin的SQL窗口中检查SELECT语句(没有$ query =),它可以正常工作.
但是,如果我在PHP中使用它,那么我会收到错误.它不喜欢"SET @ rank = 0;" 位.有没有办法使用"SET @ rank = 0;" 当它在"$ query ="时?有解决方法吗?
其余代码是从数据库中提取数据的标准内容:
public function getmyData() {
 $mysql = mysql_connect(connection stuff);
 $query = "SELECT @rank:=@rank +1 as rank, formatted_school_name,  blah blah";
 $result = mysql_query($query);
            $ret = array();
                 while ($row = mysql_fetch_object($result)) {
                    $tmp = new VOmyData1();
                    $tmp->stuff1 = $row-> stuff1;
                    $tmp->stuff2 = $row->stuff2;
                    $ret[] = $tmp; 
                        }
                 mysql_free_result($result);
                 return $ret;
    }   
更新:我正在尝试使用Amerb的使用多查询的建议.我像这样连接了查询:
$query = …我需要一些帮助,以编程方式在拼图框中以编程方式设置所选项目.
我有一个像这样的组合框:
<mx:ComboBox  id="MyComboBox" change="puzzleHandler(event);"   prompt="Make a Selection">
    <mx:ArrayCollection id="myDP">
        <mx:Object  id="first" label="Label 1" series="2"  pageTitle="Title 1"/>
        <mx:Object  id="second" label="Label 2" series="7" pageTitle="Title 2"/>                                        
        <mx:Object  id="third" label="Label 3" series="9"  pageTitle="Title 3"/>                                        
    </mx:ArrayCollection>
</mx:ComboBox>
我有一个关于深度链接的函数.如果有人输入网址:www.mysite.com/#view=2,他们将被带到网站的相应部分(没有在comboBox中选择标签2).如何以编程方式设置comboBox,以便它与用户所看到的内容相对应?
在我的函数的switch语句中,我想将comboBox设置为与视图对应的标签.如果"view = 2",则comboBox应显示"Label 2"为选中状态.
    case "view=1":
        MyComboBox.selectedItem.label="Label 1";
        parseUrl();
    case "view=2":
        MyComboBox.selectedItem.label="Label 2";
        parseUrl();
    case "view=3":
        MyComboBox.selectedItem.label="Label 3";
        parseUrl();
我试过这个:MyComboBox.selectedItem.label ="Label 1"但它不起作用.有什么建议?
谢谢.
-Laxmidi
如果WHERE子句中的邻域不存在,如何让我的mysql数据库返回0?因此,在下面的示例中,Old Town不在数据库中.我希望数据库返回0个事件而不是空结果.
SELECT incidents, 
       neighborhoods 
 FROM `myTable` 
WHERE neighborhoods ='Old Town'
我也试过了
SELECT IFNULL(incidents,0), 
       IFNULL(neighborhoods,0) 
  FROM `myTable` 
 WHERE neighborhoods ='Old Town'
任何建议都会非常感激.