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

    form method=post...action...imput...delete...

    A parte i vari tag che funzionano, mentre qui li potrei aver ridotti
    stoa girando sempre nel medesimo errore che non riesco a trovare e mi
    ostino sempre sullo stesso.
    Devo cancellare un record completo da una tabella di MySql .
    Lo trovo, cerco di cancellarlo, ma quando riprovo con lo stesso numero
    lo trovo ancora presente e quindi è ovvio che non l’ho cancellato.
    Dove dimentico o sbaglio qualche istruzione ?

    Primo file iniziodele.php - prima pagina WEB (invio a mezzo <form method=post…..>
    <?php
    $nome_file_inc = "include/altopagine.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    echo "<div align=\"center\">\n";
    echo " <table width=\"100%\" border=\"0\" bgcolor=\"#808080\" cellspacing=\"0\" cellpadding=\"0\" height=\"135\">\n";
    echo " <tr><td width=\"100%\" height=\"7\" align=\"center\" bgcolor=\"#9BCBE8\" colspan=\"3\">\n";
    echo " <font face=\"Verdana\" size=\"3\" color=\"#FF0000\">Cancellazione</font>\n";
    echo " </td></tr>\n";
    echo "<form method=post action=trova.php >\n";
    echo " <tr><td width=\"34%\" height=\"1\" align=\"center\" bgcolor=\"#FFCC33\">\n";
    echo " <font face=\"Verdana\" size=\"3\">Inserire il numero</font>\n";
    echo "
    <font color=\"#000000\" face=\"Verdana\" size=\"2\">\n";
    echo " <input type=\"text\" size=\"15\" name=\"Tipox \">\n";
    echo " </font>\n";
    echo " </td></tr>\n";
    echo " <tr><td width=\"100%\" height=\"1\" align=\"center\" bgcolor=\"#D4D4D4\" colspan=\"3\">\n";
    echo " <input type=\"submit\" name=\"submit\" value=\"Invio\">;
    echo " </td></tr>\n";
    echo "</form>\n";
    echo " </table>\n";
    echo "</div>\n";
    echo “</html>”;
    ?>

    Secondo file trova.php -seconda pagina WEB
    visualizza il dato esatto come da istruzione precedente
    <form method=post action=trova.php>
    …<input type=\"text\" size=\"15\" name=\"Tipox\">
    <?php
    $elimina = $_POST['Tipox ' ];
    $num = $_GET['id'];

    $nome_file_inc = "include/altopagine.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $nome_file_inc = "include/accessodatabase.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }

    $sql = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.num)="'.$elimina .'"';
    //print $sql;
    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOME "] = $ris["NOME "];
    $res[$nresult]["NUM "] = trim ($ris["NUM "]);
    if ($res[$nresult]["NUM"]) {
    $nresult++;
    }
    }
    //print "////".$nresult;
    //var_dump($res);
    echo "<div align=\"center\"><table border=\"0\" width=\"100%\" height=\"1\" bgcolor=\"#808080\" cellspacing=\"0\" cellpadding=\"0\">\n";
    echo " <tr><td width=\"100%\" align=\"center\" hight=\"14\" bgcolor=\"#9BCBE8\">\n";
    echo " <font face=\"Verdana\" size=\"3\" color=\"#000000\">\n";
    echo " Cancellazione del numero\n";
    echo " </font>
    \n";
    echo " </td></tr></table></div>\n";
    echo "<div align=\"center\">\n";
    echo " <table width=\"100%\" border=\"0\" height=\"9\" bgcolor=\"#000000\" cellspacing=\"1\">\n";
    echo " <tr><td align=\"center\" bgcolor=\"#33CC33\" width=\"100%\">\n";
    echo " Il numero trovato &#232; il seguente\n";
    echo " </td></tr>\n";
    echo " <tr>\n";

    //print "////".$nresult;
    for ($i=0; $i<$nresult; $i++) {
    //print $i."///";

    echo " <tr>\n";
    echo " <tr><td align=\"center\" width=\"57%\" bgcolor=\"#DFDFDF\" height=\"15\">\n";
    echo " <font face=\"Verdana\" color=\"#000000\" size=\"4\">\n";
    echo " <a href=\"finedele.php?id=".$res[$i][NUM ]."\" Style=\"color:".$coloreI.";\" onMouseOver=\"this.style.color='#FF0000'\" onMouseOut=\"this.style.color='".$coloreI."'\">".u tf8_encode (trim ($res[$i]["NOME "]))."</a>\n";
    echo " </font>
    \n";
    echo " </td><\tr>\n";
    }
    echo " </table>\n";
    echo "</div>\n";
    echo “</html>”;
    ?>

    Terzo ed ultimo file elimina.php -terza pagina WEB
    Dovrebbe procedere a cancellare l’intero record della tabella
    per tornare poi alla pagina iniziale iniziodele.php
    <?php
    $num = $_GET['id'] ;
    $nome_file_inc = "include/altopagine.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $nome_file_inc = "include/accessodatabase.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }

    $query = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.NUM)="'.$num. '"';
    $result = mysql_query($query);
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOME"] = $ris["NOME"];
    $res[$nresult]["NUM"] = trim ($ris["NUM"]);
    if ($res[$nresult]["NUM"]) {
    $nresult++;
    }
    }
    $query = 'DELETE FROM tabella WHERE tabella.NUM"'.$num .'"';
    //print "////".$nresult;
    //var_dump($res);

    echo "<div align=\"center\">\n";
    echo " <table border=\"0\" width=\"100%\" height=\"1\" bgcolor=\"#808080\" cellspacing=\"0\" cellpadding=\"0\">\n";
    echo " <tr>\n";
    echo " <td width=\"100%\" align=\"center\" hight=\"14\" bgcolor=\"#9BCBE8\">\n";
    echo " <font face=\"Verdana\" size=\"3\" color=\"#000000\">\n";
    echo " <a href=\"http://www.../iniziodele.php\" Style=\"color:#FF0000;\" onMouseOver=\"this.style.color='#0000FF'\" onMouseOut=\"this.style.color='#FF0000'\">";
    echo " Cancellazione effettuata\n";
    echo " </a>\n";
    echo " </font>
    \n";
    echo " </td></tr></table></div>\n";
    echo “</html>”;
    ?>

  2. #2
    le query andrebbero anche eseguite.


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

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non vedo da nessuna parte il link a elimina.php ...

  4. #4
    E' vero che non c'è il link ad elimina.php ho sbagliato a scrivere il nome del terzo file
    che è finedele.php
    Ho spostato quanto segue nella seconda pagina,
    ma non mi va ancora
    .
    Quale è la procedura di invio della query DELETE e dove va messa ?
    Ho dimenticato di dire che trim(tabella.num )="'.$elimina .'"
    è chiave primaria .

    $sql = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.num)="'.$elimina .'"';
    //print $sql;

    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOME"] = $ris["NOME"];
    $res[$nresult]["NUM"] = trim ($ris["NUM"]);
    if ($res[$nresult]["NUM"]) {
    $nresult++;
    }
    }

    $query = 'DELETE FROM tabella WHERE tabella.NUM"'.$elimina .'"';

    $dbResult = mysql_query ($query, $global_db);
    $Affectedrows = mysql_affected_rows ($global_db);

    echo $query."
    ";
    print "////".$nresult."
    ";
    var_dump($res);
    if($Affectedrows ==0)
    {
    echo "Non esistono numeri selezionati";
    }
    else
    {
    echo "Il numero &#232; stato eliminato";
    }

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Nella query di DELETE manca l'uguale (=) nella WHERE.
    In ogni caso abituati ad eseguire SEMPRE le funzioni su database con il controllo degli errori.

    Codice PHP:
    mysql_query($query) or die(mysql_error()); 

  6. #6
    Originariamente inviato da luca200
    Nella query di DELETE manca l'uguale (=) nella WHERE.
    In ogni caso abituati ad eseguire SEMPRE le funzioni su database con il controllo degli errori.

    Codice PHP:
    mysql_query($query) or die(mysql_error()); 
    Vero mancava = come da te rilevato
    Ora è cosí ma nel database il record c'è sempre e non lo cancello:

    $sql = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.num)="'.$elimina . '"';
    //print $sql;
    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOME"] = $ris["NOME"];
    $res[$nresult]["NUM"] = trim ($ris["NUM"]);
    if ($res[$nresult]["NUM"]) {
    $nresult++;
    }
    }
    $query = 'DELETE FROM tabella WHERE tabella.NUM= "'.$elimina .'"';
    mysql_query($query, $global_db) or die(mysql_error());
    $dbResult = mysql_query ($query, $global_db);
    $Affectedrows = mysql_affected_rows ($global_db);
    echo $query."
    ";
    print "////".$nresult."
    ";
    var_dump($res);
    if($Affectedrows ==0)
    {
    echo "Non esistono numeri selezionati";
    }
    else
    {
    echo "Il numero è stato eliminato";
    }

  7. #7
    Sembra funzioni con le ultime modifiche.
    Grazie per l'aiuto.

    Ho eliminato il terzo file elimina.php e rifatto il secondo file trova.php come segue :

    <?php
    $elimina = $_POST['Tipox'];
    $num = $_GET['id'];
    $nome_file_inc = "include/altopaginefreeplus.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $nome_file_inc = "include/accessodatabase.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $sql = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';
    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOME"] = $ris["NOME"];
    $res[$nresult]["NUM"] = trim ($ris["NUM"]);
    if ($res[$nresult]["NUM"]) {
    $nresult++;
    }
    }
    echo "<div align=\"center\">\n";
    echo " <table border=\"0\" width=\"100%\" height=\"1\" bgcolor=\"#808080\" cellspacing=\"0\" cellpadding=\"0\">\n";
    echo " <tr><td width=\"100%\" align=\"center\" hight=\"14\" bgcolor=\"#9BCBE8\">\n";
    echo "
    \n";
    echo " <font face=\"Verdana\" size=\"3\" color=\"#000000\">Cancellazione di un numero da una tabella di MySql</font>\n";
    echo "

    \n";
    echo " </td></tr>\n";
    echo " </table>\n";
    echo "</div>\n";
    echo "<div align=\"center\">\n";
    echo " <table width=\"100%\" border=\"0\" height=\"9\" bgcolor=\"#000000\" cellspacing=\"1\">\n";
    echo " <tr>\n";
    for ($i=0; $i<$nresult; $i++) {
    echo " <tr>\n";
    echo " <tr>\n";
    echo " <td align=\"center\" width=\"57%\" bgcolor=\"#DFDFDF\" height=\"15\">\n";
    echo "
    \n";
    echo " \n";
    echo " <font face=\"Verdana\" color=\"#000000\" size=\"4\">".utf8_encode (trim ($res[$i]["NAME"]))."\n";
    //echo " <font face=\"Verdana\" color=\"#000000\" size=\"4\">".$res[$i][NUM]."=".utf8_encode (trim ($res[$i]["NOME"]))."\n";
    echo " </font>\n";
    echo "
    \n";
    echo "

    \n";
    echo " </td>\n";
    echo " </tr>\n";
    }
    echo " </table>\n";
    echo "</div>\n";
    $query = 'DELETE FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';
    mysql_query($query, $global_db) or die(mysql_error());
    $dbResult = mysql_query ($query, $global_db);
    $Affectedrows = mysql_affected_rows ($global_db);
    if($Affectedrows ==0)
    {
    $esistesino="Il numero selezionato &#232; stato eliminato con DELETE";
    }
    else
    {
    $esistesino="Il numero selezionato c&#039;&#232; ancora per il non funzionamento del DELETE";
    }
    /*
    echo "variabile inserita=query ".$query."
    \n";
    echo "variabile inserita=nresult ".$nresult."
    \n";
    echo "variabile inserita=dbResult ".$dbResult."
    \n";
    echo "variabile inserita=Affectedrows &nbsp".$Affectedrows."
    \n";
    echo "variabile inserita=Affectedrows &nbsp".$esistesino."
    \n";
    var_dump($res);
    */
    echo "<div align=\"center\">\n";
    echo " <table width=\"100%\" border=\"0\" height=\"9\" bgcolor=\"#000000\" cellspacing=\"1\">\n";
    echo " <tr><td align=\"center\" bgcolor=\"#FFFFFF\" width=\"100%\">\n";
    echo " <font face=\"Verdana\" size=\"2\" color=\"#000000\">".$esistesino."</font>\n";
    echo " <font face=\"Verdana\" size=\"2\" color=\"#000000\">\n";
    echo " <a href=\"iniziodele.php\" Style=\"color:#FF0000;\" onMouseOver=\"this.style.color='#0000FF'\" onMouseOut=\"this.style.color='#FF0000'\">\n";
    echo " cliccare qui\n";
    echo " </a>\n";
    echo " </font>\n";
    echo " </td></tr>\n";
    echo " </table>\n";
    echo "</div>\n";
    $nome_file_inc = "include/bassopaginefreeplus.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    ?>

  8. #8
    Contento tu .... ma mi spieghi questa sequenza ????

    codice:
    $query = 'DELETE FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';
    mysql_query($query, $global_db) or die(mysql_error());
    $dbResult = mysql_query ($query, $global_db);
    $Affectedrows = mysql_affected_rows ($global_db);
    if($Affectedrows ==0)
    {
    $esistesino="Il numero selezionato è stato eliminato con DELETE";
    }
    else
    {
    $esistesino="Il numero selezionato c'è ancora per il non funzionamento del DELETE";
    }

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

  9. #9
    Originariamente inviato da piero.mac
    Contento tu .... ma mi spieghi questa sequenza ????

    codice:
    $query = 'DELETE FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';
    mysql_query($query, $global_db) or die(mysql_error());
    $dbResult = mysql_query ($query, $global_db);
    $Affectedrows = mysql_affected_rows ($global_db);
    if($Affectedrows ==0)
    {
    $esistesino="Il numero selezionato è stato eliminato con DELETE";
    }
    else
    {
    $esistesino="Il numero selezionato c'è ancora per il non funzionamento del DELETE";
    }
    Provo a spiegare.
    Il mio presupposto sta nel fatto che non ho molta esperienza in pura programmazione
    e cerco di adattare delle procedure ad un lavoro che opera ancora in DOS per arrivare
    a mettere in linea dei dati ad uso database a mezzo di MySql ed in programmazione php.
    Dai risultati ottenuti fino ad ora vedo che tutto funziona regolarmente con un po’
    di passaggi (forse ferruginosi, ma pratici), ma sto imparando con calma.
    Vengo alla spiegazione:
    1) La tabella contiene piú di campi(field) trai quali il campo ‘num’ del tipo varchar(15)
    2) Il campo ‘num’ è anche la chiave primaria che collega tutte le altre tabelle
    in pratica funge da ID
    e quando lo devo cercare devo fare il trim(tabella.num)=…
    E' di 15 caratteri perchè le persone al mondo, nel caso specifico, utilizzano questo tipo di
    numerazione dove un pedigree australiano per esempio è composto di 11 caratteri
    ed essendoci al mondo piú numerazioni ho dovuto mettere a disposizione altri 4 caratteri
    per la sigla della nazione che diversifica cosí i vari esemplari. Un numero quindi potrebbe
    essere per esempio 99999999999URSS.
    3) Il file iniziodele.php mi permette inizialmente di inserire
    il valore di ‘num’(numero di pedigree) e con
    <form method=post action=trova.php >
    <input type=\"text\" size=\"15\" name=\"Tipox \">

    di trovarlo a mezzo del file trova.php dove c'è la variabile $elimina = $_POST['Tipox ']
    ed il relativo SELECT
    $sql = 'SELECT tabella.NOME,tabella.NUM FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';


    4) Se la procedura elimina il record dalla tabella perchè l'ha trovato oppure fu cancellato
    in precedenza viene visualizzata la variabile $esistesino
    (Il numero selezionato è stato eliminato con DELETE)
    $Affectedrows = mysql_affected_rows ($global_db);
    if($Affectedrows ==0)
    {
    $esistesino="Il numero selezionato è stato eliminato con DELETE";
    }
    e con un clic
    come da istruzione
    echo "<a href=\"iniziodele.php\" Style=\"color:#FF0000;\" onMouseOver=\"this.style.color='#0000FF'\" onMouseOut=\"this.style.color='#FF0000'\">\n";
    echo " cliccare qui\n";
    echo " </a>\n";
    si torna alla prima pagina per cancellare un altro record.

    Mi vien da pensare che forse non serve
    else
    {
    $esistesino="Il numero selezionato c'è ancora per il non funzionamento del DELETE";
    }

    Non so se mi sono spiegato a sufficienza, peró funziona.
    Se hai altri suggerimenti (non complicati) o non sono stato esauriente attendo altre comunicazioni.

  10. #10
    mi sono perso nella tua descrizione.

    ti chiedevo quello perche' esegui due volte la stessa query DELETE. Se la prima cancella il record la seconda dara' affected_rows = zero di sicuro, ma avrebbe potuto anche esserlo nella prima query e quindi non avrebbe cancellato proprio nulla....
    codice:
    $query = 'DELETE FROM tabella WHERE trim(tabella.NUM)="'.$elimina.'"';
    mysql_query ($query, $global_db) or die(mysql_error());
    $dbResult = mysql_query ($query, $global_db);
    come puoi vedere la query l'esegui due volte.

    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.