probably the table in which ur storing the images will be having its primary
key set to auto_increment.

If tht is the case then when u delete banner(s) then corresponding id(s)
match won't be found.

i.e say table is having 4 records with ids as follows

id =1
id=2
id=3
id=4

so random number generated would lie between 1 to 4.

now say u delete record with id=2. if this happens then no of  records will
be 3 and hence random number can be 2 for which theres no record in
database. and hence a broken image.




----- Original Message -----
From: "Monil Chheda" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, June 28, 2004 1:24 AM
Subject: [PHP] Image Problem


> Hi,
>
> I store images in DB properly... no issues using the
> following code....
>
> <?php
>
> // store.php3 - by Florian Dittmer <[EMAIL PROTECTED]>
> // Example php script to demonstrate the storing of
> binary files into
> // an sql database. More information can be found at
> http://www.phpbuilder.com/
> ?>
>
> <html>
> <head><title>Store binary data into SQL
> Database</title></head>
> <body>
>
> <?php
> // code that will be executed if the form has been
> submitted:
>
> if ($submit) {
>
> // Include constants for database connectivity
> include("constants.php");
>
> // The Database server connection function
> $connection =
> mysql_connect("$host","$db_user","$db_pass") or
> die("Couldn't connect to the MySql Database Server");
>
> // Database selection from the DB server
> $db = mysql_select_db("$db_name",$connection) or
> die("Couldn't select the required Database.");
>
>     $data = addslashes(fread(fopen($banner_image,
> "r"), filesize($banner_image)));
>
>     $result = MYSQL_QUERY("INSERT INTO banner_details
> (text,banner_image,filename,filesize,filetype) ".
>         "VALUES
>
('$banner_description','$data','$form_data_name','$form_data_size','$form_da
ta_type')")
> or die("Couldnt insert banner in the Db");
>
> echo "Banner uploaded";
>
> $id= mysql_insert_id();
>     print "<p>This file has the following Database ID:
> <b>$id</b>";
>
> } else {
>
>     // else show the form to submit new data:
> ?>
>
>     <form method="post" action="<?php echo $PHP_SELF;
> ?>" enctype="multipart/form-data">
>     Banner Text:<br>
>     <input type="text" name="banner_description"
> size="40">
>     <input type="hidden" name="MAX_FILE_SIZE"
> value="1000000">
>     <br>Image to upload/store in database:<br>
>     <input type="file" name="banner_image"  size="40">
>     <p><input type="submit" name="submit"
> value="submit">
>     </form>
>
>
> <?php
>
> }
>
> ?>
>
> </body>
> </html>
>
> ------------
>
> I use the foll file to reterieve it...
>
> <?
> /*
> Aim: To fetch random image and its corresponding
> text from the database.
>
> Working: Generate a random number within the range of
> 1 and number of rows present in the DB and then fetch
> the appropriate ROW ID.
>
> Includes: constants.php for DB connectivity
>
> */
> // Include constants for database connectivity
> include("constants.php");
>
> // The Database server connection function
> $connection =
> mysql_connect("$host","$db_user","$db_pass") or
> die("Couldn't connect to the MySql Database Server");
>
> // Database selection from the DB server
> $db = mysql_select_db("$db_name",$connection) or
> die("Couldn't select the required Database.");
>
> /*
> Fetching the number of rows in the DB table
> */
>
> // Reteriving the data from the banners table in the
> DB
> $sql = "SELECT *" .
> "FROM banner_details";
>
> // Executing the Sql select statement
> $result = mysql_query($sql, $connection) or
> die("Couldn't Execute the query.");
>
> // Getting the number of rows affected by the query
> $rows = mysql_num_rows($result);
>
> print("Rows in DB: $rows\n");
>
> /*
> Generating a Random number between 1 and the NUMBER OF
> ROWS returned from the DB Table
> */
>
> // Seeding the random number generator...
> // this thing is usually used to SET an initial value
> for the random number to be generated.
> mt_srand(doubleval(microtime()) * 100000000);
>
> // The random number is generated...
> $random_number = mt_rand(1, $rows);
>
> print("The random number generated is
> $random_number");
> echo "<BR><BR>";
>
> /*
> Fetching the actual data from the DB Table
> */
>     $query = "select banner_image, text, filetype from
> banner_details where id=$random_number";
>
>     $result = mysql_query($query, $connection) or
> die("Couldn't Execute the query.");
>
>     $data = @MYSQL_RESULT($result,0,"banner_image");
>     $text = @MYSQL_RESULT($result,0,"text");
> $type = @MYSQL_RESULT($result,0,"filetype");
>
> echo "The banner is ";
>
> Header("Content-type: $type");
>
> echo $data;
>
>
> echo "The assocaited text is : $text";
>
>
> ?>
>
> --------------
>
> And this for calling it...
>
> <?php
>
> echo "<img src=rotate.php>";
>
> ?>
>
> I get an Img with a cross (broken)...
>
> Whats the error?
>
> Am i missing something?
>
> Pls help
>
> -Monil
>
> =====
> Best Regards,
> Monil Chheda(INDIA)
> http://domains.eliteral.com
> ===========================
> ===========================
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - You care about security. So do we.
> http://promotions.yahoo.com/new_mail
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to