Visualizzazione risultati 1 fino 9 di 9

Discussione: Inserimento articoli (gestione tabella db)

  1. #1
    Guest

    Predefinito Inserimento articoli (gestione tabella db)

    Ciao ho bisogno ancora del vostro aiuto sto scrivendo una pagina php per inserire degli articoli in in database.
    Gli artiicoli vanno però inseriti in più tabelle nello stesso database ho già creato il file config con la connessione al database.

    Nel file inserit ho specificato:

    Codice HTML:
    Sezione:<br>
    <select name="sezione">
    <option value="1">Tab1</option>
    <option value="2">Tab2</option>
    <option value="3">Tab3</option>
    <option value="4">Tab4</option>
    <option value="5">Tab5</option>
    <option value="6">Tab6</option>
    <option value="7">Tab7</option>
    <option value="8">Tab8</option>
    <option value="9">Tab9</option>
    <option value="10">Tab10</option>
    <option value="11">Tab11</option>
    </select>
    Il file save è così composto:

    Codice PHP:
    <?
    $titolo
    =$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];
    $categoria=$_REQUEST['categoria'];
    include(
    "top_foot.inc.php");
    include(
    "config.inc.php");
    top();

    if (
    $pass != $password): echo "Password errata";
    elseif (
    trim($titolo) == "" OR trim($testo) == ""):
    echo
    "I campi Titolo e Testo devono essere riempiti!";
    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));
    $titolo = str_replace("<", "&lt;", $titolo);
    $titolo = str_replace(">", "&gt;", $titolo);
    $autore = str_replace("<", "&lt;", $autore);
    $autore = str_replace(">", "&gt;", $autore);
    $testo = str_replace("<", "&lt;", $testo);
    $testo = str_replace(">", "&gt;", $testo);
    $testo = nl2br($testo);
    $data = mktime("00", "00", "0000", $mese, $giorno, $anno);
    $categoria = str_replace("<", "&lt;", $categoria);
    $categoria = str_replace(">", "&gt;", $categoria);

    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "INSERT INTO $sezione (titolo, testo, data, autore, mail, categoria) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail', '$categoria')";
    if (
    mysql_query($query, $db))
    echo
    "L'articolo stato inserito correttamente";
    else
    echo
    "Errore durante l'inserimento";
    //endif;
    mysql_close($db);
    endif;
    foot();
    ?>
    Dovrei associare l'evento della scelta al codice: $sezione = "tab1"
    In modo che questa scelta condizioni la tabella in cui verrà salvato il file ma non so come.
    Sapete aiutarmi?
    Ultima modifica di dreadnaut : 18-08-2009 alle ore 18.32.58 Motivo: + tag [html] e [php]

  2. #2
    Guest

    Predefinito

    Salve.
    Non ho ben capito cosa ha in mente di fare. Provo comunque a farLe alcuni esempi:
    Lei dice di avere più tabelle in un DB. Supponiamo che "Tab1", "Tab2", ecc .. siano i nomi delle tabelle contenute nel DB. Innanzitutto deVe recuperare il valore della select .. quindi:

    $sezione = $_POST['sezione'];

    Sempre ammesso che il passaggio dei dati dal form HTML all'applicazione php avvenga mediante il metodo POST. Se avviene via GET può fare:

    $sezione = $_GET['sezione'];

    Una volta recuperato il valore, medianti delle strutture di controllo con if/elseif/else può fare una cosa del genere:
    Codice:
    if ($sezione == "Tab1") {
    
    .. codice di inserimento dei dati nel DB ..
    
    } elseif ($sezione == "Tab2") {
    
    .. codice di inserimento dei dati nel DB .. 
    
    } else {
    
    .. altro codice di inserimento dati nel DB ..
    
    }
    In "italiano" ho detto: se il valore della variabile $sezione corrisponde a "Tab1" esegui il codice sottostante. Se corrisponde a "Tab2" esegui quest'altro codice sottostante, altrimenti esegui quest'altro codice.
    E' quello che voleva ? Resto a disposizione ..
    Saluti,
    M.

    P.S. Un consiglio personale: non utilizzare $_REQUEST .. preferisci $_POST o $_GET ..

  3. #3
    Guest

    Predefinito

    Se ho capito il problema è che la selezione ti da come risultato un numero, mentre a te servirebbe il nome composto tipo "testo"+"numero"?

    Se è solo questo basta un
    Codice PHP:
    $sezione = "tab".$sezione;
    Altrimenti prova ad essere un pò più chiaro con il tuo problema...

    ;)

  4. #4
    Guest

    Predefinito

    Cambia tutti quei str_replace() in $testo, $titolo e $autore con htmlspecialchars()

  5. #5
    Guest

    Predefinito

    Mi servirebbe un codice che compie questo "ragionameto":

    $sezione= se "1"="tab1" se "2"="tab2" se "3"="tab3" e così via solo che non sono ingrado di scriverlo.

  6. #6
    Guest

    Predefinito

    Salve.
    Il codice che ho scritto fa proprio questo ..
    Saluti.

  7. #7
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    non ti è più semplice assegnara al "value" del select già il valore tab1, tab2 ecc...
    passare il valore 1 per poi riportarlo a tab1 ha poco senso secondo me.
    In alternativa puoi usare, nella query INSERT INTO tab".$_POST[sezione]." (o GET a seconda di ciò che usi), dato che tab resta per tutti e varia solo il numero che tu già hai


    salentoproject, la tua soluzione può essere corretta, ma dato che varia solo 1 variabile e il resto resta intatto, tanto vale usare i dati che ha in modo più semplice.
    Se smetti di imparare e evolverti sei morto dentro

  8. #8
    Guest

    Predefinito

    In effetti makpaolo avevi ragione due modifice ed è bastato inserire il codice:

    $sezione=$sezione

    Puoi aiutarmi a risolvere un altro problema?

    nel file inserit (quello che manda i dati a save) ho scritto:

    Codice PHP:
    Sezione:<br>
    <
    select name="sezione">
    <
    option value="microsoft">Microsoft</option>
    <
    option value="apple">Apple</option>
    <
    option value="office">Office</option>
    <
    option value="sicurezza">Sicurezza</option>
    <
    option value="multimedia">Multimedia</option>
    <
    option value="internet">Internet</option>
    <
    option value="im">I'M</option>
    <option value="live">Live</option>
    <option value="hardware">Hardware</option>
    <option value="mobile">Mobile</option>
    <option value="techouse">Tech House</option>
    </select>
    <br>
    <br>
    Categoria:<br>
    <select name="categoria">
    <option value="1">OS</option>
    <option value="2">Software</option>
    <option value="3">iPod-iPhone</option>
    <option value="4">Prodotti</option>
    <option value="5">News</option>
    </select>
    Volevo sapere se potevo far variare l'elenco di categoria in funziona della scelta fatta in sezione.

    Grazie mille ancora
    Ultima modifica di wtech : 21-08-2009 alle ore 09.26.21

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da wtech Visualizza messaggio
    In effetti makpaolo avevi ragione due modifice ed è bastato inserire il codice:

    $sezione=$sezione

    Puoi aiutarmi a risolvere un altro problema?

    nel file inserit (quello che manda i dati a save) ho scritto:

    Codice PHP:
    Sezione:<br>
    <
    select name="sezione">
    <
    option value="microsoft">Microsoft</option>
    <
    option value="apple">Apple</option>
    <
    option value="office">Office</option>
    <
    option value="sicurezza">Sicurezza</option>
    <
    option value="multimedia">Multimedia</option>
    <
    option value="internet">Internet</option>
    <
    option value="im">I'M</option>
    <option value="live">Live</option>
    <option value="hardware">Hardware</option>
    <option value="mobile">Mobile</option>
    <option value="techouse">Tech House</option>
    </select>
    <br>
    <br>
    Categoria:<br>
    <select name="categoria">
    <option value="1">OS</option>
    <option value="2">Software</option>
    <option value="3">iPod-iPhone</option>
    <option value="4">Prodotti</option>
    <option value="5">News</option>
    </select>
    Volevo sapere se potevo far variare l'elenco di categoria in funziona della scelta fatta in sezione.

    Grazie mille ancora
    Certo che puoi, e secondo me ti è di aiuto il Javascript in questo caso. La prima cosa che devi fare è crearti una funzione che si attivi al verificarsi di un determinato evento (ad esempio, il click su una voce della select "sezione"). Una delle cose su cui potresti "giocare" è il fattore visibilità degli elementi nella pagina. Ti faccio un esempio terra terra...

    La select "sezione" l'inserisci nella pagina senza specificare nulla di particolare... Tutte le altre select le inserirai invece con il parametro css "visibility" settato su "hidden". Quando viene cliccata una voce dalla select "sezione", la procedura che ti ho scritto quì sotto si attiva e fa in modo che la select corrispondente cambi il suo stato da "hidden" a "visible" diventando di fatto visibile nella pagina.

    Codice:
    function scelta() {
        switch(document.sezione.selectedIndex) {
            case 0:
                document.select1.style.visibility = 'visible';
                break;
            case 1:
                document.select2.style.visibility = 'visible';
                break;
            // ... etc ...
        }
    }
    Tieni però bene a mente alcune cose: la prima anzitutto è che il codice che ti ho proposto è una bozza. Ci dovrai lavorare sopra per renderlo di fatto utilizzabile sul tuo documento. É importante, quando lo svilupperai, che tieni a mente un caso particolare: se una voce è già stata cliccata (e quindi resa visibile) devi renderla nuovamente invisibile (riportando il parametro "visibility" su "hidden") prima di rendere visibile una nuova select.

    Ma la cosa più importante: non sono un esperto, quindi se vuoi andare sul sicuro aspetta il parere di chi sa più di me. Quello che ti ho proposto è quello che proverei a fare io se mi trovassi di fronte ad un problema analogo al tuo.


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •