Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54

    Modifica campo tabella. Problema

    Ciao a tutti, sono nuovo sia di programmazione che del forum.
    Vengo subito al problema che sto incontrando.
    I miei genitore hanno un piccolo negozietto di autoricambi e volevo creare un db con mysql e php dove tener presente tutti i clienti e le loro auto.
    Ho provato a creare due tabelle relazionate, ma ho desistito per una serie di ragioni.
    Quindi avevo pensato di creare un'unica tabella dove inserire prima i dati del cliente e successivamente modificare/aggiungere dati nei campi prescelti.
    Vi posto le pagine php.
    inserisci.php
    <?php
    session_start();
    isset($_SESSION['check']) ? $check = $_SESSION['check'] : $check = '';
    $caso = microtime();
    $str = <<<FORM
    <html><body>
    <form method = "POST" action = "$_SERVER[PHP_SELF]">

    <input type="text" name="cognome" id="cognome" placeholder="'Cognome'" style="width: 500px;"/>
    <input type="text" name="nome" id="nome" placeholder="'Nome'" style="width: 500px;"/>
    <input type="text" name="telefono" id="telefono" placeholder="'Telefono'" style="width: 500px;"/>
    <input type="text" name="operatore" id="operatore" placeholder="'Operatore'" style="width: 500px;"/>
    <input type="submit" value="Aggiungi">
    CERCA
    tabella
    </body></html>
    FORM;
    if(isset($_POST['cognome'], $_POST['nome']) AND $_POST['cognome']!='' AND $_POST['nome']!='')
    {
    if($check === MD5(serialize($_POST)) ) {
    echo "
    Dati gia immessi - ciao ciao";
    echo $str;
    exit;
    } else {


    $cognome = trim($_POST['cognome']);
    $nome = trim($_POST['nome']);
    $telefono = trim($_POST['telefono']);
    $operatore = trim($_POST['operatore']);

    $tipologia= strtoupper ($tipologia);
    $cognome = strtoupper($_POST['cognome']);
    $nome = strtoupper($_POST['nome']);
    $telefono = strtoupper($_POST['telefono']);
    $operatore = strtoupper($_POST['operatore']);

    require "conn.php";
    mysql_select_db('prova');

    mysql_query("INSERT INTO interventi (cognome,nome,telefono,operatore)
    VALUES ( NOW(), '$cognome','$nome','$telefono','$operatore')");
    $num = mysql_affected_rows();

    if($num == 1) {
    echo "
    Dati inseriti
    ";
    $_SESSION['check'] = MD5(serialize($_POST));
    echo $str;
    exit;
    }
    else {
    echo "
    Dati NON inseriti - Riprova";
    echo $str;
    exit;
    }
    }

    }
    else {
    echo $str;
    }
    ?>

    stampo tutto a video trmaite tabella.php
    <html>

    <head>
    <title>Test</title>
    <link rel="stylesheet" type="text/css" href="tabella.css">
    </head>

    <body bgcolor="white">
    <?php
    include 'conn.php';


    echo '

    ';
    echo "<span style=\"color: black; allign: center; font-size: 36pt\">SCHEDE IN ATTO</span>";
    $sql = "SELECT * FROM clienti order by id";
    $res = mysql_query($sql) or die(mysql_error());

    echo '
    <table border="0" cellpadding="10" cellspacing="0">
    <tr>
    <td>id</td>
    <td>cognome</td>
    <td>nome</td>
    <td>telefono</td>
    <td>operatore</td>
    <td>auto</td>
    <td>targa</td>
    <td></td>
    <td></td>
    </tr>

    ';

    while ($row = mysql_fetch_array($res))
    {
    echo '
    <tr>
    <td>' . $row['id'] . '</td>
    <td>' . $row['cognome'] . '</td>
    <td>' . $row['nome'] . '</td>
    <td>' . $row['telefono'] . '</td>
    <td>' . $row['operatore'] . '</td>
    <td>' . $row['auto'] . '</td>
    <td>' . $row['targa'] . '</td>
    <td>[Aggiungi Auto]</td>
    <td>[Chiudi]</td>
    </tr>

    ';
    }

    echo '</table>

    ';
    ?>
    </body>

    </html>
    Come vedete ci sono due campi in più (Auto e targa) che vorrei inserire successivamente
    Vorrei modificare tutto tramite la pagina auto.php
    <html>
    <body>
    <form action="tabella1.php" method="POST">
    Auto:<input size='16' name ='auto' style="width: 250px;"/>
    Targa:<input size='16' name ='targa' style="width: 250px;"/>
    <input type="submit">
    </form>
    </body>
    </html>
    <?
    $con=mysqli_connect("localhost", "root", "", "prova");
    if (mysqli_connect_errno())
    {
    echo "connessione fallita".mysqli_connect_errno();
    }
    $id="$_GET[id]";
    $auto = strtoupper($_POST['auto']);
    $targa = strtoupper($_POST['targa']);
    $sql="SELECT id FROM clienti";
    $sqlins = " UPDATE clienti SET auto = '$auto', targa=$targa' where id='" . $_GET["id"] . "'";
    if (!mysqli_query($con,$sql))
    {
    die ('Errore: '.mysqli_error($sql));
    }
    echo "Connesso";
    mysqli_close($con);
    ?>
    Il mio problema è che le prime due pagine lavorano egregiamente mente auto.php non mi modifica i campi auto e targa.
    Dove sbaglio???
    Grazie

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Non si capisce un granche. Comunque usi $_GET ma non vedo alcun parametro sull'action del tag form.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54
    Scusa in pratica dovrei leggere l'id dall'url( che viene recuperato dalla pagina tabella.php) e modificare i campi (auto e targa) tramite l'ultima pagina.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Non capisco cosa vuoi fare. Se sai registrare i dati della prima pagina sai anche aggiungere gli altri 2 campi.

    Codice PHP:
    <input type="text" name="cognome" id="cognome" placeholder="'Cognome'" style="width: 500px;"/>
    <
    input type="text" name="nome" id="nome" placeholder="'Nome'" style="width: 500px;"/>
    <
    input type="text" name="telefono" id="telefono" placeholder="'Telefono'" style="width: 500px;"/>
    <
    input type="text" name="operatore" id="operatore" placeholder="'Operatore'" style="width: 500px;"/>
    ... 
    qui aggiungi auto e targa
    <input type="submit" value="Aggiungi">
    [
    url="http://192.168.0.9/cerca.php"]CERCA[/url]
    [
    url="http://192.168.0.9/tabella1.php"]tabella[/url

    Codice PHP:
    [url="http://192.168.0.9/tabella1.php"]tabella[/url
    Questo non serve a nulla in quanto non trasmetti l'id alla pagina tabella1.php. E nel contesto è normale visto che il record non esiste ancora.

    Comunque se fossi in te. Spartirei i dati.
    Una tabella per i clienti (nome cognome ecc), un'altra per le macchine (marchio modello targa ecc) legata alla prima con l'id del cliente ed una terza per gli interventi legata all'id della macchina. Se parti con una struttura inadeguata non riuscirai mai a cavartela facilmente.

    Se vuoi comunque utilizzare tabella1.php devi avere una prima pagina che lista i record della tua tabella e li potrai mettere il link a tabella1.php provisto del parametro id.

    In sostanza.

    Pagina 1
    - lista dei record + link a tabella.php con id ricavato dalla tabella.
    - aggiungi un link (o un pulsante) alla Pagina 2 con id=0 per creazione.

    Pagina 2
    - immissione / modifica dei dati. Se l'id=0 allora sei in modalità inserimento altrimenti leggi i dati con l'id e popoli gli input con i valori ricavati dalla tabella. E cosi quando fai il submit puoi sia creare un nuovo record (id=0 all'arrivo sulla pagina) sia modificarlo (id<>0 all'arrivo sulla pagina).
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2024 vBulletin Solutions, Inc. All rights reserved.