Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema con update campo mysql

    Ciao a tutti, ho un problema con l'update di un campo di mysql.

    Praticamente io ho questo file


    <?php

    include 'config.php';
    include 'connect.php';

    ?>

    <?php


    $sql = "SELECT * FROM articoli1 WHERE '$id' = '$id' ORDER BY `id` DESC";
    $result = mysql_query($sql,$conn) or die ("Errore: ".mysql_error());

    while($assoc = mysql_fetch_assoc($result)){



    echo '
    <table cellpadding="7px">


    <tr>
    <td>[img]'.$assoc['img'].'[/img] </td>
    <td>'.$assoc['messaggio'].'</td>
    </tr>
    <tr><td>
    <form action="edit.php" method="post">
    <input type="hidden" value="'.$assoc['Id'].'" name="chiave" />

    <input type="submit" value="edit" name="modifica">

    </form> <tr><td>
    </table>';

    }



    ?>


    che invia ad una pagina il valore hidden '.$assoc['Id'].'

    Il problema è che in questa pagina se controllo con echo se il valore è giusto tutto sembra andare ma nel comando update non mi interpreta la variabile.

    Questo è l'altro file:


    <?php

    $chiave = $_POST['chiave'];
    echo $chiave;



    ?>

    <?php

    if(!isset($_POST['submit'])){
    echo '


    Per poter effettuare una modificaca devi essere un sviluppatore </p>




    <form method="post" action="#">
    Username: <input type="text" name="Username">

    Password: <input type="password" name="Password">

    <input type="submit" value="login" name="submit">
    </form>';
    } else {
    include 'config.php';
    include 'connect.php';

    $user = mysql_real_escape_string($_POST['Username']);
    $pass = mysql_real_escape_string($_POST['Password']);

    $sql ="SELECT * FROM utenti WHERE Username= '{$user}' AND Password = '{$pass}'";

    $result = mysql_query($sql,$conn) or die("Errore: ".mysql_error());
    $row = mysql_num_rows($result);
    if ($row == "1"){

    echo'

    <form method="post" action="ciao.php" enctype="multipart/form-data">
    <table>
    <tr> <td> <textarea rows="10" cols="30" name="messaggio"></textarea> </td> </tr>

    <tr> <td> <input type="file" name="upload_file"> </td> </tr>
    <tr> <td> <input type="submit" value="Pubblica" name="submit"> </td> </tr>
    </table>
    </form>';}

    include 'connect.php';



    move_uploaded_file($HTTP_POST_FILES['upload_file']['tmp_name'],"uploads/".$HTTP_POST_FILES['upload_file']['name']);
    $nome = $HTTP_POST_FILES['upload_file']['name'];

    $img = "uploads/".$nome;
    $messaggio = mysql_real_escape_string($_POST['messaggio']);


    $sql = "UPDATE articoli1 SET messaggio='".$messaggio."', img='".$img."' WHERE Id='".$chiave."'";
    $result = mysql_query($sql,$conn) or die ("Errore nella query: " .mysql_error);


    }

    ?>



    Non so se sono riuscito a spiegarmi perchè era veramente difficile farsi capire. Spero in un vostro aiuto. Grazie ciao



    IN BLUE SONO EVIDENZIATI I PUNTI CRUCIALI CHE A MIO PARE SBAGLIO

  2. #2
    $sql = "UPDATE articoli1 SET messaggio='".$messaggio."', img='".$img."' WHERE Id='".$chiave."'";

    se il nome corretto della cella è id (i minuscolo) come hai indicato alla prima riga del tuo codice allora anche nella update va minuscolo.

  3. #3
    Grazie per la risposta tempestiva ma non è quello il problema. Il fatto è che se ad esempio assegno un numero alla variabile il tutto funziona mentre se utilizzo $_POST non funziona.


    ad esempio se nella seconda pagina invece di scrivere

    $chiave = $_POST['chiave'];

    scrivo

    $chiave = 14;

    funziona.


    Non riesco a capire perchè, qualcuno mi aiuti. grazie ciao

  4. #4
    L'array $_POST viene popolato solo se vi è una transazione di informazioni da modulo (quindi se si preme un pulsante di invio modulo) oppure con ajax se si passano argomenti con metodo post...

    In questa pagina dove hai scritto $chiave = $_POST['chiave']; prova a scrivere

    Codice PHP:
    print_r($_POST); 
    e vediamo cosa contiene l'array...

  5. #5
    Col comando che mi hai scritto mi stampa schermo questo:

    Array ( [chiave] => 15 [modifica] => edit )

    mentre se uso echo mi stampa a schermo:

    15 (che è quello che mi serve)

  6. #6
    Ce l'ho fatta!!! evvai!!!

    al posto di consegnare il valore con un form, l'ho consegnato attraverso un link


    edit


    e poi lo prelevato tramite un get e il tutto funziona!!

    Grazie comunque ciao

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.