1

I've been a lot around this site the last couple of days, and found a lot of useful tips for a newbie to php as I am (this is my second day :) ) Therefore I'll sure hope you gurus can help me finishing this script.

What do I have: I have this table within my Mysql:

------------------------------![Sql Tabels][1]
----------------------

Would should it do: The script have to get some table rows where the "diemensions" field is emty IS NULL Now the script have to find the image size and spit it out in this format widthxheight the x between the width and height is important.

Where the image is not to be grabt, it should just pass by, and take the next one.

When it's done: It have grabt the image size and updated the "dimensions" field in the DB

Sources for my code: How to determine the picture size, then selectively insert into the database? php

Update MySql Field (if field is not empty, go to next one)

http://dk1.php.net/manual/en/function.getimagesize.php

The PHP it self

<pre><code>
<?php
    #  first we check, if gd is loaded and supports all needed imagetypes
    function gd_get_info() {
        if (extension_loaded('gd') and
            imagetypes() & IMG_PNG and
            imagetypes() & IMG_GIF and
            imagetypes() & IMG_JPG and
            imagetypes() & IMG_WBMP) {

            return true;
        } else {
            return false;
        }
    }


    $username = "";
    $password = "";
    $database = "";
    $db_hostname = "";

    mysql_connect("$db_hostname","$username","$password") or die(mysql_error());
    mysql_select_db("$database") or die(mysql_error());

    //check if the starting row variable was passed in the URL or not
    if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
      //we give the value of the starting row to 0 because nothing was found in URL
      $startrow = 0;
    //otherwise we take the value from the URL
    } else {
      $startrow = (int)$_GET['startrow'];
    }

    // Retrieve all the data from the "example" table
    $result = mysql_query("SELECT * FROM tx_gallery_previews WHERE dimensions IS     NULL     ORDER BY gallery_id ASC LIMIT $startrow, 10") or die(mysql_error());  

    // store the record of the "example" table into $row
    while($row = mysql_fetch_array($result)){
    //$row = mysql_fetch_array($result)) 

    $pid = $row['preview_id'];
    $gid = $row['gallery_id'];
    $imgfile = $row['preview_url'];
    $dimens = $row['dimensions'];

    /*
    echo $row['gallery_id'];
    echo $row['preview_url']. "\r\n<br />"; */
    extract($row);
    //print $pid. " ".$imgfile." ";
    //print "".$dimens."<br />";


    $blah = getimagesize("$imgfile");
    $type = $blah['mime'];
    $width = $blah[0];
    $height = $blah[1];

    if (isset($width)) {
    echo  $pid. " ".$imgfile." ".$width. "x".$height. "\n"."<br />";

    mysql_query("UPDATE into tx_gallery_previews         (preview_id,gallery_id,preview_url,dimensions) VALUES          ($pid,$gid,$imgfile,$width."x".$height)
        ON DUPLICATE KEY UPDATE dimensions=VALUES('"$width."x".$height"')");

    } 
         else{ echo "$pid <img src=\"$imgfile\" width=\"90\">Image not found"."<br />"; }

    }


    // close connection 
    mysql_close($connection);


    $prev = $startrow - 10;

    //only print a "Previous" link if a "Next" was clicked
    if ($prev >= 0)
        echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.$prev.'">Previous</a> ';

    //now this is the link..
    echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a>';
    ?>
    </pre></code>

Seen but couldn't make it work http://dk1.php.net/manual/en/function.getimagesize.php Post by "james dot relyea at zifiniti dot com 07-Feb-2009 08:49" But seems to be the right ideer for my script.

XXXXXXXXXXXXXXXXX When you answer this topic, please explane wich part does what.

Best Regards

Joakim

4

0 回答 0