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

    [php] [mysql] inserimento dati

    ave a tutti!

    tentando di fare una galleria di immagini (tramite il collage di vari scripts trovati su questo forum e in giro per la rete ) ho prodotto quanto segue:

    il form di inserimento:
    codice:
    <form name="form1" enctype="multipart/form-data" method="POST" action="galleria.php">
      <input type="text" name="nome" />
      
    
      <input name="uploadedfile" type="file" id="uploadedfile">
      <input type="hidden" name="max_file_size" value="100000">
      
    
      <input type="submit" name="Submit" value="Invia">
    </form>
    e la pagina (in php) dove visualizzo i dati:

    codice:
    <? include 'coll_db.php'; ?>
    
    <?
    //Carico l'immagine grande sul server
    if($uploadedfile<>"none") {
      if(!copy($uploadedfile,"../immagini/immagini/$uploadedfile_name")) {//posso modicare il percorso dell'immagine da qui
       print("Errore nel caricamento dell'immagine.
    ");
      }
      else {
        print("Caricamento immagine eseguito correttamente");
      }
    }
    ?>
    
    
    
    
    
    <?
    $nome=$_POST['nome'];
    $uploadedfile=$_POST['uploadedfile_name'];
     ?>
    
    
    <?
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database.");
    
    $sql = "INSERT INTO immagini ('id', 'nome', 'url') VALUES ('', $nome, $uploadedfile)";
    
    $ins = mysql_select_db($sql,$db)
    or die("Impossibile aggiungere il record");
    
    mysql_db_query($ins);
    $Tot_ins = mysql_affected_rows();
    if ($Tot_ins >0)
    {echo "sono stati aggiunti $Tot_ins record";}
    else
    { echo "Attenzione non e' stato aggiunto nessun record";}
    
    $query = "SELECT * FROM immagini";
    
    $result = mysql_query($query, $db);
    
    while ($row = mysql_fetch_array($result))
    {
    ?>
    
    <table align="center" border="1" width="25%" height="25%">
        <tr height="50%">
             <td width="10%">
               <p align="center">
                    <?php echo $row[id]; ?>
               </p>
             </td>
             <td width="30%">
               <p align="center">
                    <?php echo $row[nome]; ?>
               </p>
             </td>
             <td width="60%">
                <p align="center">
                <a href="javascript:NewWindow2('immagini/<?php echo $row[url]; ?>')">
                    [img]immagini/<?php echo $row[url]; ?>[/img]
                </a>
                </p>
             </td>
        </tr>
    </table>
    
    <? } ?>
    ...il problema è che non avviene l'iserimento tramite il form di cui sopra!
    dove sbaglio???

    ah dimenticavo: per le variabili $nome e $uploadedfile ho anche tentato di mettere $_POST['nome'] e $_POST['uploadedfile'] ma non ottengo miglioramenti

    attendo consigli o caziate per strafalcioni commessi


    grazie
    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

  2. #2
    I dati li trovi in $_FILE.

    Prova a stampare l'array con print_r.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    I dati li trovi in $_FILE.

    Prova a stampare l'array con print_r.
    anzitutto grazie!

    effettivamente il file all'interno della cartella specifica lo carica, il problema è che non mi carica il nome del file nel database!

    mi spiego meglio: ho 3 campi nella tabella
    -id (autoincrement)
    -nome (deciso da chi carica tramite il form)
    -url (nome effettivo del file che si trova nella cartella sul server)
    quest'ultimo campo è un "text" e mi serve solo per fare, successivamente un href alla cartella.

    quindi la magagna mi sa che l'ho fatta su "INSERT INTO" ma non capisco dove



    grazie
    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

  4. #4
    All'ingresso della pagina prova a stampare il contenuto degli array per vedere cosa trasferisci. Lo stesso fallo per la query.

    Sono indicazioni di carattere generale, non sto entrando nel merito della tua situazione. In altre parole fai dei punti di debug.

    pagina che visualizza
    codice:
    <?php
    
    echo "<pre>";
    print_r($_POST);
    print_r($_FILE);
    
    tuo codice....
    
    echo $sql;
    90 su 100 ti rispondi da solo....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    ...sai che è una gran dritta la storia delle stampe per fare dei punti di debug?

    effettivamente mi stampa ciò che mi serve e mi pare vada tutto bene...poi vado a controllare sul data base e non ha inserito il record!

    questa è la parte della stampa che mi interessa:

    ...

    file caricato
    INSERT INTO immagini ('id', 'nome', 'url') VALUES ('', 'test2', 'Senza-titolo-1.jpg')

    ...


    dov'è che toppo?

    tnx
    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

  6. #6
    i nomi de campi non devono essere tra virgolette, altrimenti li scambia per stringhe e non come "costanti" come sono in effetti i nomi di tabelle e campi.

    Se aggiungi una segnalazione di errore dovrebbe dichiarartelo...
    qui sotto poi fai un po' di casino:
    codice:
    // qui selezioni il db ... la connessione l'hai fatta?
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database.");
    
    // valorizzi la variabile $sql - bene senza apici i campi
    $sql = "INSERT INTO immagini (id, nome, url) VALUES ('', '$nome', '$uploadedfile')";
    
    // domanda: perche' selezioni di nuovo il db???
    $ins = mysql_select_db($sql,$db)
    or die("Impossibile aggiungere il record");
    
    // qui usi mysql_db_query che e' un comando deprecato.
    // usa mysql_query 
    mysql_db_query($ins);
    
    $Tot_ins = mysql_affected_rows();
    
    // ti aspetti una riga .. allora metti $Tot_ins == 1 
    if ($Tot_ins >0)
    vedi i commenti ... attento ai nomi delle variabili che hai usato....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    beh la connessione al data base l'ho fatta effettivamente (infatti la pagina mi restituisce i record che ho inserito "a mano" direttamente nel database e non tramite php);
    d'altr'onde durante il debug m'ha dato un errore del tipo

    "Fatal error: Call to undefined function mysql_connect()"

    !!!

    essendo alle prime armi mi sono andato a vedere il tutorial su php.html.it dove trattava la prima connessione
    (http://freephp.html.it/guide/lezione.asp?id=153)

    [code]
    $db=mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE){
    echo "Errore nella connessione al database.";
    exit;
    }
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database.");
    [code]

    l'errore me lo da proprio sulla prima di queste righe

    possibile?

    ...e se si perchè i record inseriti a mano me li estrae ma non mi inserisce, come dicevo prima, quelli tramite codice?



    p.s.: il resto del codice (che mi ponevi all'attenzione) l'ho pulito...grazie

    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

  8. #8

    up

    scusatemi l'up ma sto veramente uscendo pazzo con questa questione!
    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

  9. #9
    Originariamente inviato da Homer_J.S.
    beh la connessione al data base l'ho fatta effettivamente (infatti la pagina mi restituisce i record che ho inserito "a mano" direttamente nel database e non tramite php);
    d'altr'onde durante il debug m'ha dato un errore del tipo

    "Fatal error: Call to undefined function mysql_connect()"

    !!!
    Significa che per qualche ragione non carichi l'estensione php_mysql.dll .

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10

    grazie

    grazie 1000 piero!!!
    provo a trafficare un po' e a cercare soluzioni per la rete a riguardo!

    Ritengo di avere 2 grandi pregi: il primo è una memoria di ferro; il secondo...mmmhhh va beh ora proprio non me lo ricordo!

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.