• User

    Come posso definire in MySQL un contatore?


  • ModSenior

    Devi mettere il campo come autoincrement e chiave primaria.


  • User

    Guarda non prende l'autoincrement...


  • ModSenior

    Che query usi per modificare la tabella?


  • User

    Ho cancellato la precendente... La sto ricreando...

    E' questa:

    CREATE TABLE strumenti
    (Matricola auto_increment Not null,
    Fornitore char(50) Not null,
    Assistenza char(50) Not null,
    Utilizzatore char(8) Not null,
    Strumento char(50) Not null,
    Marca char(50) Not null,
    Modello char(50),
    Descrizione longtext Not null,
    Venduto_Dismesso char(3),
    Data_acquisizione timestamp,
    PRIMARY KEY(Matricola));


  • User

    Ho sistemato! XD Falso allarme! XD


  • ModSenior

    Hai dimenticato di inserire il tipo int(11)


  • User

    Si, piccolo errore... 😄


  • ModSenior

    Ok allora se il nome è Matricola, cosi dovrebbe andare:
    [php]
    <?php
    session_start();
    $conn = mysql_connect("localhost","root","") or die('Connessione mancata con il root. Errore: ' . mysql_error());
    $select = mysql_select_db("sabicom",$conn) or die("Errore nella connessione con il database. Errore: " . mysql_error());
    ?>
    <html lang="en">
    <head>
    <title>Cancellazione strumenti</title>
    </head>
    <body>
    <marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
    <?php
    if(isset($_POST['utiliz']))
    $utiliz = trim($_POST['utiliz']);
    else
    die('Input mancante');

    if(isset($_POST['strum']))
    $strum = trim($_POST['strum']);
    else
    die('Input mancante');

    $sql = "SELECT * FROM strumenti WHERE Utilizzatore = '".mysql_real_escape_string($utiliz)."' AND Strumento = '".mysql_real_escape_string($strum)."'";
    $result = mysql_query($sql, $conn);
    if(!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    $num=mysql_numrows($result);
    mysql_close();
    ?>
    <form method="post" action="confirm-cancel.php">
    <table border="1" align="center" bordercolor="lightblue">
    <tr>
    <td align="center">Fornitore</td>
    <td align="center">Assistenza</td>
    <td align="center">Utilizzatore</td>
    <td align="center">Strumento</td>
    <td align="center">Marca</td>
    <td align="center">Modello</td>
    <td align="center">Descrizione</td>
    <td align="center">Venduto / Dismesso</td>
    <td align="center">Data di acquisizione</td>
    </tr>
    <?php
    $i=0;
    while ($i < $num) {
    $Matricola = mysql_result($result,$i,"Matricola");
    $fornitore=mysql_result($result,$i,"Fornitore");
    $assistenza=mysql_result($result,$i,"Assistenza");
    $utilizzatore=mysql_result($result,$i,"Utilizzator e");
    $strumento=mysql_result($result,$i,"Strumento");
    $marca=mysql_result($result,$i,"Marca");
    $modello=mysql_result($result,$i,"Modello");
    $descrizione=mysql_result($result,$i,"Descrizione" );
    $vend_dism=mysql_result($result,$i,"Venduto_Dismes so");
    $data_acquis=mysql_result($result,$i,"Data_acquisi zione");
    ?>
    <tr>
    <td align="center"><?php echo $fornitore ?></td>
    <td align="center"><?php echo $assistenza ?></td>
    <td align="center"><?php echo $utilizzatore ?></td>
    <td align="center"><?php echo $strumento ?></td>
    <td align="center"><?php echo $marca ?></td>
    <td align="center"><?php echo $modello ?></td>
    <td align="center"><?php echo $descrizione ?></td>
    <td align="center"><?php echo $vend_dism ?></td>
    <td align="center"><?php echo $data_acquis ?></td>
    <td align="center"><input type="checkbox" name="identificatore[]" value="<?php echo $Matricola; ?>" /></td>
    </tr>
    <?php
    $i++;
    }
    ?>
    </table>
    <input type="submit" value="Elimina selezionati" />
    </form>
    <br />
    <br />
    <form method="post" action="index.html">
    <div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
    </form>
    </body>
    </html>
    [/php]
    [php]
    <?php
    session_start();
    $conn = mysql_connect("localhost","root","") or die('Connessione mancata con il root. Errore: ' . mysql_error());
    $select = mysql_select_db("sabicom", $conn) or die("Errore nella connessione con il database. Errore: " . mysql_error());
    ?>
    <!DOCTYPE html>
    <head>
    <title>Conferma cancellazione</title>
    </head>
    <body>
    <marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
    <?php
    if(isset($_POST['identificatore']))
    $identificatore = $_POST['identificatore'];
    else
    die('Input mancante');

    foreach($identificatore AS $tmp)
    if(!is_numeric($tmp))
    die('Input manomessi');

    if(isset($_POST['conferma']))
    {
    $identificatori = implode(',', $identificatore);
    mysql_query("DELETE FROM strumenti WHERE Matricola IN '".mysql_real_escape_string($identificatori)."'");
    die('Eliminato/i correttamente');
    }
    ?>
    <form method="post" action="">
    <input type="submit" name="conferma" value="Conferma eliminazione" />
    </form>
    <br />
    <br />
    <form method="post" action="index.html">
    <div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
    </form>
    </body>
    </html>
    [/php]Vedi se funziona perchè l'ho scritto velocemente.


  • User

    All'ultima pagina mi dice "Input mancante".. Da dove viene?


  • ModSenior

    Hai selezionato qualche checkbox?


  • User

    Si, è proprio questo che mi chiedo... Nonostante abbia selezionato il checkbox mi da' problemi!


  • User

    Chiunque possa aiutarmi lo faccia, per cortesia... E' urgentissimo!


  • ModSenior

    Devi avere un pò di pazienza, non possiamo risponderti in 2 ore.
    Ho provato in locale e non ho problemi, il campo della tabella lo hai chiamato Matricola o hai cambiato nome?


  • User

    Il campo è Matricola, ho appena controllato...


  • User

    Ma tu che programma usi per gestire il DB?


  • ModSenior

    Uso phpMyAdmin, quell'errore mi sembra impossibile da avere in quanto nel form c'è quell'input correttamente.
    Al posto di:
    [php]
    if(isset($_POST['identificatore']))
    $identificatore = $_POST['identificatore'];
    else
    die('Input mancante');
    [/php]
    Metti:
    [php]
    var_dump($_POST);
    if(isset($_POST['identificatore']))
    $identificatore = $_POST['identificatore'];
    else
    die('Input mancante');
    [/php]
    E incollami qui cosa mostra.


  • User

    Questo è quello che mi fa' vedere:

    array(1) { ["identificatore"]=> array(1) { [0]=> string(1) "2" } }
    Cos'è?


  • User

    Ah! Poi mi esce anche questo!

    array(1) { ["conferma"]=> string(21) "Conferma eliminazione"


  • User

    Io ora ho provato a mettere i codici in questo modo:

    if(isset($_POST['identificatore']))
    {
    $identificatore = $_POST['identificatore'];
    $identificatori = implode(',', $identificatore);
    $sql = mysql_query("DELETE FROM strumenti WHERE Matricola IN '".mysql_real_escape_string($identificatori)."'");
    if(!$sql)
    echo 'Richiesta di cancellazione respinta';
    else
    echo 'Record eliminati correttamente!';
    }
    else
    {
    echo 'Errore. Selezione dei record da eliminare non effettuata.';
    ?>
    <br />
    <br />
    <form method="post" action="cancel.html">
    <input type="submit" value="Vai alla pagina precedente" />
    </form>
    <br />
    <br />
    <form method="post" action="index.html">
    <div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
    </form>
    <?php
    exit();
    }
    foreach($identificatore AS $tmp)
    if(!is_numeric($tmp))
    die('Input manomessi');

    E ora mi da' questo errore:

    Richiesta di cancellazione respinta

    Non è che c'è qualcosa che fa' interferenza? Io utilizzo come gestore generale di Apache, Filezilla, phpMyAdmin, Mercury e TomCat l'applicativo Xampp... Può darsi che sia quello il problema?