开发者

Parsing rows from MySQL into files using PHP is not working

开发者 https://www.devze.com 2022-12-09 01:04 出处:网络
I\'m trying to parse an entire MySQL table into files named after the rows. However, it seems to miss out a lot of files, and it just isn\'t working properly, but I don\'t understand what\'s wrong. He

I'm trying to parse an entire MySQL table into files named after the rows. However, it seems to miss out a lot of files, and it just isn't working properly, but I don't understand what's wrong. Here's what I'm using:

$link = mysql_connect(...); //*Let's assume this is correct*
mysql_select_db(*This too*);
$query = "SELECT * FROM rules";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($result) or die(mysql_error());
for($x = 0;$x < $num;$x++) {
    $rules = mysql_fetch_assoc($result开发者_StackOverflow);
    $file = '';
    if($rules['except'])
        $file .= $common = str_replace(explode(',', $rules['except']), "", $common);
    if($rules['custom'])
        $file .= $rules['custom'];
    if($rules['css'])
        $file .= trim($rules['css'], ";")."{display:none !important;height:0px !important;width:0px !important;}";
    if($file == '') {
        $handle = fopen($rules['site'].'.css', 'w');
        fwrite($handle, $file);
    }
}

Can anyone see anything wrong?


Looks like the problem you're searching is in this line if($file == '') {. It will be true only if $file is empty. But I think you need an oposite condition like following:

if($file != '') {

Also I suggest you to always close the file you've opened:

if($file != '') {
   $handle = fopen($rules['site'].'.css', 'w');
   fwrite($handle, $file);
   fclose($handle);
}


if i am not mistaken by looking at it, seems like this line:

$file .= $common = str_replace(explode(',', $rules['except']), "", $common);

would always be empty.

0

精彩评论

暂无评论...
验证码 换一张
取 消