Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Errore Update

  1. #1
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    328

    Errore Update

    Salve!
    ho questo codice, e dovrei fare in modo che quando clicco sul pulsante invia inserisca il messaggio nella relativa cella della tabella se è spuntato la casella attiva, ma non funziona. mi attiva il messaggio, ma non inserisce la risposta.

    Codice PHP:
    if (isset($_POST['submit'])) {
        if (@
    is_array($_POST['attiva'])) {
            if (
    is_array($_POST['cancella'])) {
                    foreach (
    $_POST['attiva'] as $k=> $v) {
                    if (
    in_array($v$_POST['cancella'])) {
                        unset (
    $_POST['attivo'][$k]);
                    }
                }
                
    $ids implode(','$_POST['attiva']);
            } else {
                
    $ids implode(','$_POST['attiva']);
            }
            if (
    strlen($ids) != 0) {
                
    $query "UPDATE barman SET attivo ='Y' WHERE id IN ($ids)";
                
    $query mysql_query($query) or die(mysql_error());
                
    //è questo punto che si blocca, cioè  non inserisce il messaggio, ma lo attiva solo.
            
    $query "INSERT INTO barman(risposta) VALUES ('$risposta')"
            
    $query mysql_query($query) or die(mysql_error()); 

            }
        }
        if (@
    is_array($_POST['cancella'])) {
            
    $idc implode(','$_POST['cancella']);
            
    $query "DELETE FROM barman WHERE id IN ($idc)";
            
    $query mysql_query($query) or die(mysql_error());
        }


    grazie!

  2. #2
    Capito niente di quello che fai...

    Se hai fatto copia incolla hai un errore:
    codice:
                    foreach ($_POST['attiva'] as $k=> $v) {
                    if (in_array($v, $_POST['cancella'])) {
                        unset ($_POST['attivo'][$k]);
                    }
                }
                $ids = implode(',', $_POST['attiva']);
    perche' $_POST['attivo'] ????


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

  3. #3
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    328
    no, questo codice non l'ho fatto io... (e va bè che non sono capace ma non mi prendo tutte le colpe..... )

    non lo so cosa serva, e probabilmente c'è un error.

    a me servia un codice che mi permetesse di attivare o cancella re un messaggio. ho quindi due cek box (uno attiva e uno cancella) l'attiva mi attiva il messagigio (cambiando da N a Y il campo "attivo" mentre cancella mi cancellava la riga. inoltre quando l'opzione selezionata era attiva inserendo il messaggio in una textarea mi inservia nel campo risposta il messaggio scrito.

    quseto quello che mi serviva.

    per funzionare il codce funziona, anche se ammetto ogni tanto fa lo scemo.

  4. #4
    Saro' piu'' esplicito....

    $_POST['attivo']

    e' tutto un'altra cosa da:

    $_POST['attiva']

    quindi UNSET proprio nulla....


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

  5. #5
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    328
    ha, o....ora ho capito, ma ti ripeto non lìho fattoio e sinceramente ho provato a studiarlo un po a non ne ho capito molto.

    secondo te esiste un modo più semplice per fare una cosa del genere o anche questa può andar bene?

    comunque per quel fatto li di attivo/a non mi dava nessun errore. l'atttivazione e la cancellazione avviene corretatmente (e se dici che attivo e attiva sono due cose diverse, non so come faccia a funzionare!!!!!!!!).

    il problema è che non mi insersce il messaggio. o è forse per quell'errore li che non inserisce il messaggio?

    la risopsta è no, perchè ho provato a modficare ma non va ugualmente....

  6. #6
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    328
    questo èp tutto il codice php della pagina... io non ho trovato nulla di significativo.....

    Codice PHP:
    <?
    $query 
    "SELECT * FROM barman WHERE attivo = 'N' ORDER BY data DESC, user ASC";
    $result mysql_query($query) or die(mysql_error());
    echo 
    "<form name='AttivaCancellaMessaggio' method='POST' action=''>";
    while (
    $row mysql_fetch_array($result)){
        
    $ID=$row['ID'];
        
    $titolo=$row['oggetto'];
        
    $user=$row['user'];
        
    $domanda=nl2br($row['domanda']);
        
    $attivo=$row['attivo'];
        
    $risposta=$row['risposta'];
        
    $data=$row['data'];
        echo 
    "<table width='70%' border='0' class='Tabella' cellspacing='2' cellpadding='0'>
            <tr><td colspan='2' class='TabellaBottom TestoSezioniCocktails'>
    $titolo</td></tr>
            <tr><td class='TabellaBottom2' width='10%' valign='top'>
            <table width='100%' border='0' cellspacing='0' cellpadding='0'>
            <tr><td class='TabellaBottom2 TestoSezioni'>
    $user</td></tr>
            <tr><td class='TestoCorsivo'>
    $data</td></tr></table>
            </td><td valign='top'>
            <table width='100%' border='0' cellspacing='0' cellpadding='0'>
            <tr><td valign='top' class='Testo'>
    $domanda</td></tr></table></tr>
            <tr><td colspan='2' align='right' class='Testo'>
            [b]Spunta per: Attivare[/b]<input type='checkbox' name='attiva[]' value='
    $ID'>
            [b]Cancellare[/b]<input type='checkbox' name='cancella[]' value='
    $ID'></td></tr>
            <tr><td class='TestoSezioni'>[b]Risopndi[/b]</td></tr><tr><td colspan='2'>
            <textarea name='risposta' value='
    $risposta' cols='40' rows='5'></textarea>
            </table>
    "
    ;
    }

    //mysql_select_db("barman");

    if (isset($_POST['submit'])) {
        if (
    is_array($_POST['attiva'])) {
            if (
    is_array($_POST['cancella'])) {
                    foreach (
    $_POST['attiva'] as $k=> $v) {
                    if (
    in_array($v$_POST['cancella'])) {
                        unset (
    $_POST['attiva'][$k]);
                    }
                }
                
    $ids implode(','$_POST['attiva']);
            } else {
                
    $ids implode(','$_POST['attiva']);
            }
            if (
    strlen($ids) != 0) {
                
    $query "UPDATE barman SET attivo ='Y' WHERE id IN ($ids)";
                
    $query mysql_query($query) or die(mysql_error());
                
    $query "INSERT INTO barman(risposta) VALUES ('$risposta')"
                
    $query mysql_query($query) or die(mysql_error()); 
            }
        }
        if (
    is_array($_POST['cancella'])) {
            
    $idc implode(','$_POST['cancella']);
            
    $query "DELETE FROM barman WHERE id IN ($idc)";
            
    $query mysql_query($query) or die(mysql_error());
        }
    }

    echo 
    "<table border='0' align='center' cellpadding='2' cellspacing='0'>
        <tr><td colspan='2' class='TestoSezioni'><input type=submit name=submit value=OK></form></td></tr></table>"
    ;
    ?>

  7. #7
    Mi sa che lo hai preso con una ricetta mutualistica sto script....


    E' assolutamente impostato male. tra le varie cose esegui le azioni sul db all'interno del form.

    Per avere i dati in $_POST devi inviare il form. Tra l'altro action = '' che vuole dire? La struttura della pagine dovrebbe essere come sequenza....

    1) Verifica se $_POST e settato.

    2) Se lo e' esegui le operazioni previste, quelle che tu fai nella seconda parte e termini lo script.

    3) Se $_POST NON e' settato, ALLORA vai all'else e presenti il form estraendo i dati come fai ora all'inizio del corrente script.

    4) Lo user compila il form ed invia con submit alla stessa pagina. Attualmente hai action= ''.

    Ora, al rientro nella pagina trovi settato $_POST ed eseguirai la prima parte (punto 2).

    Chiaro che non fa nulla se $_POST non esiste ancora.... e non trova errori. Salta direttamente tutto.

    Forza e coraggio che la morte e' una costante della vita.



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

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.