Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Problema con MYSQL e BLOB su foto

    Ciao ragazzi!! Sto smanettando per creare un piccolo motore in php che possa uploadare una foto tramite campo BLOB in un DB, ma ho qualche problemino:

    1) Modifico il codice che ho trovato, per inserire oltre alla foto, anche altri campi associati ad essa (numero di porte, cilindrata, ecc). Ma niente: nel DB viene inserita solo la foto ed i campi come type e size (oltre all'id con auto_increment)... come mai?

    2) Quando vado a visualizzare la foto, mi restituisce come immagine il link che viene chiamato dal DB, ma della foto nemmeno l'ombra (premesso che le variabili $ecc ecc corrispondono a quelle del form html che invia la chiamata al file)...

    Problema 1:
    Codice PHP:
    <?
    function upload()
    {
      
    $result false;
      
    $immagine '';
      
    $size 0;
      
    $type '';
      
    $nome '';


      
    $max_size 300000;
      
    $result = @is_uploaded_file($_FILES['file']['tmp_name']);
      if (!
    $result)
      {
        echo 
    "Impossibile eseguire l'upload.";
        return 
    false;
      }else{
        
    $size $_FILES['file']['size'];
        if (
    $size $max_size)
        {
          echo 
    "Il file è troppo grande.";
          return 
    false;
        }
        
    $type $_FILES['file']['type'];
        
    $nome $_FILES['file']['name'];
        
    $immagine = @file_get_contents($_FILES['file']['tmp_name']);
        
    $immagine addslashes ($immagine);
        @include 
    'config.php';
        
    $sql "INSERT INTO immagini (nome, size, type, anno, marca, modello, cilindrata, porte, alimentazione, descrizione, immagine) VALUES ('$nome','$size','$type','$anno','$marca','$modello','$cilindrata','$porte','$alimentazione','$descrizione','$immagine')";
        
    $result = @mysql_query ($sql) or die (mysql_error());
        return 
    true;
      }
    }
    ?>
    Problema 2
    Codice PHP:
    <?
    if (isset($_GET['id']))
    {
      
    $id = @intval($_GET['id']);
      @include 
    'config.php';
      
    $sql "SELECT id,type,immagine FROM immagini WHERE id='$id'";
      
    $result = @mysql_query($sql) or die(mysql_error ());
      
    $row = @mysql_fetch_array($result);
      
    $id_img $row['id'];
      
    $type $row['type'];
      
    $img $row['immagine'];
      if (!
    $id_img)
      {
        echo 
    "Id sconosciuto";
      }else{
        @
    header ("Content-type: ".$type);
        echo 
    $img;
      }
    }else{
      echo 
    "Impossibile soddisfare la richiesta.";
    }
    ?>
    Il tutorial completo lo trovate qua:
    http://www.mrwebmaster.it/php/artico...mysql_605.html

    Grazie a tutte le anime pie che vorranno darmi una risposta!!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  2. #2
    Il problema 2 l'ho risolto con questo codice:

    Codice PHP:
    <?php  
     
    include("config.php");
     
    // connessione e selezione del database 
      
     
    mysql_connect($host$username$password)  
     or die(
    'Connessione non riuscita: ' mysql_error());  
       
     if(!
    mysql_select_db($db))  
     die(
    'Selezione database fallita!');  
       
     
    // query per recuperare il file  
     
    $query "SELECT id,type,immagine FROM immagini WHERE id='$id'";
     
    $risultato mysql_query($query) or die('Query non valida: ' mysql_error());  
     
    $tmp mysql_fetch_array($risultato);  
       
     
    // invio una intestazione contenente il tipo MIME  
     
    header('Content-Type: '.$tmp['type']);  
       
     
    // invio il contenuto del file  
     
    echo $tmp['immagine'];  
     
    ?>
    ..lo scrivo per futuri riferimenti di chi cercasse la stessa cosa ed incappa nel mio topic, non si sa mai!! Rimane il Problema 1 da risolvere... helppp!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  3. #3
    Upp!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Cioè tu ti aspetti che la tua funzione upload() possa vedere le variabili $anno, $marca, $modello ecc. senza passargliele?

  5. #5
    ...e come faccio a passargliele? Ho cercato altri codici che inviano un form in un database, ma sono sostanzialmente identici al mio....
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  6. #6
    ho provato a passargliele inserendo nel codice queste righe:

    Codice PHP:
    $anno=$_REQUEST['anno'];
    $marca=$_REQUEST['marca']; 
    Ma niente da fare.... dove sbaglio?
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  7. #7
    Anche "forzando" la query con questa sintassi:

    Codice PHP:
    mysql_db_query($db,"insert into immagini (nome, size, type, marca, immagine) values('".$nome."', '".$size."', '".$type."', 'Ford','".$immagine."')",$con); 
    Non scrive Ford nel database... dal pannello MySQL noto che non scrive il campo... premetto che la tabella l'ho creata secondo questa query:

    Codice PHP:
    $sql 'CREATE TABLE `immagini` ('
    ' `id` int(11) NOT NULL auto_increment,'
    ' `nome` varchar(50) NOT NULL default "",'
    ' `size` varchar(25) NOT NULL default "",'
    ' `type` varchar(25) NOT NULL default "",'
    ' `anno` int(4) NOT NULL default "",'
    ' `marca` varchar(50) NOT NULL default "",'
    ' `modello` varchar(50) NOT NULL default "",'
    ' `cilindrata` varchar(50) NOT NULL default "",'
    ' `porte` int(1) NOT NULL default "",'
    ' `alimentazione` varchar(25) NOT NULL default "",'
    ' `descrizione` varchar(500) NOT NULL default "",'
    ' `immagine` blob NOT NULL,'
    ' PRIMARY KEY (`id`)'
    ' )'
    Mica c'è qualche errore nella creazione del database che rende i campi "non scrivibili"?? Mi parrebbe strano...... grazie a tutti in anticipo!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Sir Lothar
    Non scrive Ford nel database... dal pannello MySQL noto che non scrive il campo...
    ...e invece gli altri campi sì?

  9. #9
    Li scrive eccome, e li carica anche quando voglio visualizzare l'immagine.... dove sta lo sbaglio?
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Ridicolo. L'ultima query che hai postato, o scrive 'Ford' o non scrive il record.
    Per semplificarti le cose potresti aggiungere "or die(mysql_error())" in fondo ad ogni istruzione che interessi mysql. Così cominceresti a capirci qualcosa di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.