- Home
- Categorie
- Coding e Sistemistica
- PHP
- Inserire link che cancella un dato
-
Inserire link che cancella un dato
Ciao a tutti.
Ho questo script che mi prende la data del giorno e tutti i dati secondo quella data e me li stampa
[php]$giorno = getdate();
$giornog = $giorno['year'] . "-" . $giorno['mon'] . "-" . $giorno['mday'];//query di insert
$insertSQL = sprintf("INSERT INTO company_news (data, luogo, notizia) VALUES (%s, %s, %s)",
GetSQLValueString($HTTP_POST_VARS['data'], "text"),
GetSQLValueString($HTTP_POST_VARS['luogo'], "text"),
GetSQLValueString($HTTP_POST_VARS['notizia'], "text"));$Result1 = $company->Execute($insertSQL) or die($company->ErrorMsg());
//begin recordset
$query_video_hits = "SELECT * FROM company_news WHERE data='" . $giornog ."' ";
$company_news = $company->SelectLimit($query_video_hits) or die($company->ErrorMsg());
$totalRows_video_hits = $company_news->RecordCount();
//end recordset$query_delete = "DELETE * FROM company_news WHERE id_news = $id_news";
$company_news = $company->SelectLimit($query_video_hits) or die($company->ErrorMsg());while (!$company_news->EOF) {
echo ("id_news". $company_news->Fields('id_news') ."<br>data". $company_news->Fields('data') ."<br>luogo". $company_news->Fields('luogo') ."<br>notizia". $company_news->Fields('notizia')."<br><a href="$query_delete">cancella</a><br><br>"
);$company_news->MoveNext();
}[/php]Io vorrei aggiungere un pulsante cancella che mi cancella la riga selezionata dal database.... come posso fare ?
-
Ciao pettedemon.
Puoi mettere un form a fine di ogni riga dove come hidden data ti riporti l'id del record. Con la pagina che punterai dal form, anche la stessa pagina, procedi con un semplicissimo:
DELETE FROM tabella WHERE id='$id'
-
Ciao!
Allora io sto facendo cosi:[php]echo ("<br>data : ". $company_news->Fields('data') ."<br>luogo : ". $company_news->Fields('luogo') ."<br>notizia : ". $company_news->Fields('notizia')."<br><br>
<form id=\"form1\" name=\"form1\" method=\"post\" action=\"delete.php\">
<input type="hidden" name="djname" id="djname" value="". $company_news->Fields('id_news') ."">
<label>
<input type="submit" name="cancella" id="cancella" value="cancella" />
</label>
</form>");[/php]
Poi ho fatto la pagina delete.php[php]$query_video_hits = "DELETE * FROM company_news WHERE id_news='" .$id_news ."' ";
$company_news = $company->SelectLimit($query_video_hits) or die($company->ErrorMsg());
$totalRows_video_hits = $company_news->RecordCount();$company_news->Close();
$company->Close();[/php]E mi da erroreNotice: Undefined variable: id_news in /htdocs/xxxxxxxxxxx/insert/delete.php on line 11 ERROR: syntax error at or near "*" LINE 1: DELETE * FROM company_news WHERE id_news='' ^
Suggerimenti ?
-
Hai chiamato la varibail del form con djname non con id_news quindi il codice dovrebbe essere così:
[php]$id_news=(int)$_POST['djname'];
$query_video_hits = "DELETE * FROM company_news WHERE id_news='" .$id_news."' ";
$company_news = $company->SelectLimit($query_video_hits) or die($company->ErrorMsg());
$totalRows_video_hits = $company_news->RecordCount(); [/php]
-
Secondo me, in questo caso, è meglio usare un link passando l'id della news, che riprende la stessa pagina.
Non so se è chiaro
-
Sicuramente è meglio come proponi te, ma intanto è importante che capisca come far funzionare il tutto poi magari lo migliora con calma.
-
La query per la cancellazione dei dati è completamente sbagliata.
Fai così nel ciclo come noterai ho inserito l'id della news nel link dove tu avevi inserito la variabile per cancellare la news.
Questo link restituisce a se stesso, tramite GET, l'id della news.while (!$company_news->EOF) {
echo ("id_news". $company_news->Fields('id_news') ."<br>data". $company_news->Fields('data') ."<br>luogo". $company_news->Fields('luogo') ."<br>notizia". $company_news->Fields('notizia')."<br><a href='" . $_SERVER['PHP_SELF'] . "?delete=" . $company_news->Fields('id_news') . "'>cancella</a><br><br>"
);Adesso manca qualcosa la quale dovrebbe cancellare la news scelta. Allora in alto alla pagina metteremo il controllo.
Es.:
<?php
if (is_numeric($_GET['delete']))
{
$query_delete = "DELETE * FROM company_news WHERE id_news='" . $_GET['delete'] . "'";
$company_news = $company->SelectLimit($query_video_hits) or die($company->ErrorMsg());}
?>
Dovrebbe funzionare
Fammi sapere a presto
-
Ma ti riferisici a quella che ho scritto io? Non mi sembra sbagliata, poi magari non mi accorgo di qualcosa.