Visualizzazione dei risultati da 1 a 6 su 6

Discussione: variabile $row

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28

    variabile $row

    Ciao sapreste dirmi come dopo che questo script effettua l'upload dell'immagine correttamente mi visualizza la variabile $totrows(che mi indica il num dei record presenti nella tabella) correttamente ma non mi visualizza la variabile $rows che deve contenere l'id dell'immagine che ho caricato?

    Questi sono i miei script

    INDEX.PHP
    <?
    @include 'upload.php';
    if (isset($_FILES['file']))
    {
    upload();
    }
    echo "
    <h3>Upload</h3>
    <form enctype=\"multipart/form-data\"
    action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
    <input type=\"hidden\" name=\"MAX_FILE_SIZE\"
    value=\"300000\" />
    <input type=\"file\" name=\"file\" size=\"40\" />
    <input type=\"submit\" value=\"Invia\" />
    </form>
    ";
    ?>


    CONFIG.PHP
    <?
    $host = 'localhost';
    $username = 'root';
    $db = 'img';
    $conn = @mysql_connect($host,$username) or die (mysql_error());
    $sel = @mysql_select_db($db) or die (mysql_error());
    ?>

    UPLOAD.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, immagine) VALUES ('$nome','$size','$type','$immagine')";
    $result = @mysql_query ($sql) or die (mysql_error());
    $query = "SELECT *
    FROM immagini";
    $result = @mysql_query($query)or die (mysql_error());
    $totrows = @mysql_num_rows($result);
    echo $totrows;
    $query = "SELECT id
    FROM immagini
    LIMIT $totrows-1,$totrows";
    $result = @mysql_query($query);
    while($row = @mysql_fetch_array($result)){
    echo $row;
    }

    return true;
    }
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    il problema l'ho risolto solo parzialmente poiche nel file upload.php nell'ultima query all'echo va messo il nome del campo da visualizzare quindi
    $row[id].

    il problema è che resta da risolvere il problema della limit poiche nella stringa

    LIMIT ($totrows-1),$totrows"; vanno aggiunte le parentesi ma il parametri li prende in questa maniera

    limit(num-1),num con la variabile num che indica il valore numerico che varia a seconda dei record memorizzati nel database invecec num-1 dovrebbe prenderlo come un unico valore che deve essere il risultato della operazione

    l'errore è: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(29-1),29' at line 3

    N.B il codice al di la di questo errore è perfettamente funzionante chiunque volesse puo utilizzarlo

  3. #3
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061

    Re: variabile $row

    Originariamente inviato da lanik
    .........
    UPLOAD.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, immagine) VALUES ('$nome','$size','$type','$immagine')";
    $result = @mysql_query ($sql) or die (mysql_error());
    $query = "SELECT *
    FROM immagini";
    $result = @mysql_query($query)or die (mysql_error());
    $totrows = @mysql_num_rows($result);
    echo $totrows;
    $query = "SELECT id
    FROM immagini
    LIMIT $totrows-1,$totrows";
    $result = @mysql_query($query);
    while($row = @mysql_fetch_array($result)){
    echo $row;
    }

    return true;
    }
    }
    ?>
    Codice PHP:
    UPLOAD.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, immagine) VALUES ('$nome','$size','$type','$immagine')";
        
    $result = @mysql_query ($sql) or die (mysql_error());
        
    $query "SELECT *    
                FROM immagini"
    ;
        
    $result = @mysql_query($query)or die (mysql_error());
        
            
    $id_ultima mysql_insert_id();

        return 
    true;
      }
    }
    ?>
    se hai il campo id come autoincrement puoi utilizzare la funzione mysql_insert_id() per ottenere l'ultimo valore del campo autoincrementante inserito da una precedente INSERT... cosi eviti anche di fare 2 query aggiuntive...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    graziee milleeeeee

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    di nulla...
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    scusami se sono qui di nuovo a chiederti non vorrei essere assillante ma se ti va mi dai una mano
    dopo la funzione corretta di upload io vorrei visualizzare l'immagine percio ho usato questo codice
    ti aggiungo il pezzo il resto è identico a quello postato precedentemente

    $result = @mysql_query($query) or die (mysql_error());
    while($row = @mysql_fetch_array($result)){
    echo $row[id];
    $id_img=$row[id];
    echo "<img src=\"show.php?id=".$id_ultima."\">
    ";
    }


    return true;
    }
    }
    ?>

    sicuramente ce un problema con l'echo e i backslash (carattere di escape) poiche mi visualizza solamente l'iconcina con la x al posto dell'immagine

    il file show.php è:

    <?
    if (isset($_GET['id_img']))
    {
    $id = @intval($_GET['id_:img']);
    @include 'config.php';
    $sql = "SELECT id,type,immagine FROM immagini WHERE id='$id_ultima'";
    $result = @mysql_query($sql) or die(mysql_error ());
    $row = @mysql_fetch_array($result);
    $id_ultima = $row['id'];
    $type = $row['type'];
    $img = $row['immagine'];
    if (!$id_ultima)
    {
    echo "Id sconosciuto";
    }else{
    @header ("Content-type: ".$type);
    echo $img;
    }
    }else{
    echo "Impossibile soddisfare la richiesta.";
    }
    ?>

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.