Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 13-07-11, 12:15   #1 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
Comando "Modifica"

Salve a tutti,
ho creato un pannello admin dove ogni utente tramite la compilazione di una ventina di campi, ha la possibilità di visualizzarli in una pagina visualizza.php
In questa pagina è possibile tramite il tasto "Cancella" eliminare la stringa di dati inserita.
Volevo sapere come fare per creare il comando "Modifica" in modo tale da non cancellare tutta la stringa se si volesse modificare solo un campo.
Vi posto il codice della pagina admin.php in cui si trova lo script della funzione "Cancella".

Premessa:
il pannello in questione sfrutta un file di testo utenti.txt per memorizzare i dati inviati dal form, non utilizza un database con tabelle.


admin.php

<?php
$azione=$_GET["action"];
$riga=$_GET["row"];
if ($azione=='cancella') {


$textfile = fopen("utenti.txt", "r");
$textfile_new = fopen("utenti_new.txt", "a");

while ($rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
$idriga = $campiriga[0];

if ($idriga <> $riga)
{
fwrite($textfile_new, $rigafile);
}
}

fclose($textfile);
fclose($textfile_new);

unlink("utenti.txt");
rename("utenti_new.txt","utenti.txt");

echo "Cancellazione eseguita con successo<br>";

$text_file = fopen("utenti2.txt", "r");
$text_file_new = fopen("utenti_new2.txt", "a");

while ($riga_file = fgets($text_file,1024)) {
$campi_riga = explode("~:~", $riga_file);
$id_riga = $campi_riga[0];

if ($id_riga <> $riga)
{
fwrite($text_file_new, $riga_file);
}
}

fclose($text_file);
fclose($text_file_new);

unlink("utenti2.txt");
rename("utenti_new2.txt","utenti2.txt");

echo "<a href=pannello.php>Torna al pannello</a>";
}


if ($azione=='modifica'){

// codice per modificare... AIUTATEMI!!

}

?>

Grazie a tutti!!
Bum Bum #11 non in linea   Rispondi citando
Vecchio 15-07-11, 11:26   #2 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
Avresti bisogno di un database per concretizzare e valorizzare meglio il lavoro.
mikslap non in linea   Rispondi citando
Vecchio 15-07-11, 11:36   #3 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
E ma non saprei come fare....non son buono con i db.....
Bum Bum #11 non in linea   Rispondi citando
Vecchio 20-07-11, 14:31   #4 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
Ok sono riuscito a realizzare il tutto con un database mysql.

Questo è il codice che utilizzo per il comando cancella:

<?php


$IDS = $_GET["id"];

$con = mysql_connect("localhost","db_user","db_pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("db_name", $con);
mysql_query("SET NAMES 'utf8'");


mysql_query("DELETE FROM appuntamenti where id = $IDS ");


mysql_close($con);
?>

Appuntamento cancellato con successo <? echo $IDS ?></td>

Per il comando Modifica come devo fare???
Grazie
Bum Bum #11 non in linea   Rispondi citando
Vecchio 21-07-11, 08:46   #5 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
Non devi fare altro che prendere la pagina del form di inserimento dei dati, es.: insert.php, copiarla rinominandola modifica.php.
Nella pagina in cui cancelli gli appuntamenti (immagino sia un elenco in cui ogni riga ha un link cancella) creare un link modifica per passare la variabile, usata per cancellare, alla pagina modifica.php.
Dopo aver passato la variabile estrapoli il record dal database ed il gioco è fatto.

Spero sia stato chiaro altrimenti fatti risentire.
Ciao.
mikslap non in linea   Rispondi citando
Vecchio 21-07-11, 11:19   #6 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
Innanzitutto grazie per la risposta!
Credo di aver capito la logica comunque, il problema è che non so come fare il codice del comando "edita.php"
Qualcosa ho fatto ma non mi funziona.
Questo è il mio codice:

cancella.php (che funziona perfettamente)
<?php
$IDS = $_GET["id"];
$con = mysql_connect("localhost","db_user","db_pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db_name", $con);
mysql_query("SET NAMES 'utf8'");
mysql_query("DELETE FROM appuntamenti where id = $IDS ");
mysql_close($con);
?>
Appuntamento cancellato con successo <? echo $IDS ?></td>



Nella pagina archivio.php ho la lista dei dati che ci sono nel database e per ogni stringa ho il link al comando cancella come descritto da te qui sopra.

Ma il codice del comando edita non so come si faccia...
Bum Bum #11 non in linea   Rispondi citando
Vecchio 21-07-11, 17:29   #7 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
Per il momento sono riuscito a mettere insieme questo:

edita.php

<?php

session_start();

$db = mysql_connect("localhost","db_user","db_pass");

mysql_select_db("db_name",$db);

$ora = $_POST["ora"];

$sql = "SELECT * FROM appuntamenti WHERE ora = '$ora'";
$controllo = mysql_query($sql);
if (!$controllo){

echo "Errore!";
}
else {

$dati = mysql_fetch_object ($controllo);

$_SESSION["id"] = $dati->id;

echo "<html>";
echo "<body>";
echo "<form method = \"POST\" action = \"edita2.php\">";
echo "<h1>Inserisci ID da modificare</h1><br />";
//echo "ID: <input type = \"text\" name = id>".$dati->ID."><br />";
echo "Ora: <input type = \"text\" name = ora>".$dati->ora."><br />";
echo "Data: <input type = \"text\" name = data>".$dati->data."><br />";
echo "Ragione: <input type = \"text\" name = ragione>".$dati->ragione."><br />";
echo "<button type = \"submit\">Aggiorna</button>";
}

?>


edita2.php
<?php

session_start();

$db = mysql_connect("localhost","db_user","db_pass");

mysql_select_db("db_name",$db);

//$id = $_POST["id"];
$ora = $_POST["ora"];
$data = $_POST["data"];
$ragione = $_POST["ragione"];

$id = $_SESSION["id"];

echo $id;

echo $ora."<br>".$data."<br>".$ragione;

$query = "UPDATE appuntamenti SET ora = '$ora', data = '$data', ragione = '$ragione' WHERE id = '$id'";

echo $query;

$result = mysql_query($query,$db);

?>

Solo che al posto di aggiornarmi i dati, rimangono identici a prima.

Ultima modifica di Bum Bum #11 : 21-07-11 17:58.
Bum Bum #11 non in linea   Rispondi citando
Vecchio 21-07-11, 18:23   #8 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
1) Innnanzitutto edita un file, di solito nominato config.php,in cui scrivere il collegamento al database nonchè la connessione. In seguito questo file lo includerai in tutte le pagine in cui serve.
Es.: <?php
include("config.php");
?>

2) La sessione $_SESSION["id"] = $dati->id; da dove si recupera?
Secondo me manca un ciclo while per recuperare i dati racchiusi nella query. Possono essere molteplici.

3) manca la chiusura del form, body e html.

Ultima modifica di mikslap : 21-07-11 18:26.
mikslap non in linea   Rispondi citando
Vecchio 21-07-11, 18:39   #9 (permalink)
User
 
Data di registrazione: Apr 2011
Ubicazione: Torino
Messaggi: 14
Quote:
mikslap Visualizza il messaggio
1) Innnanzitutto edita un file, di solito nominato config.php,in cui scrivere il collegamento al database nonchè la connessione. In seguito questo file lo includerai in tutte le pagine in cui serve.
Es.: <?php
include("config.php");
?>

2) La sessione $_SESSION["id"] = $dati->id; da dove si recupera?
Secondo me manca un ciclo while per recuperare i dati racchiusi nella query. Possono essere molteplici.

3) manca la chiusura del form, body e html.
Ma facendo il processo di connessione al database senza per forza fare un include non è la stessa cosa?? (scusa l'ignoranza)
2) è poprio il punto 2 il problema perchè non so come completare.
Quando clicco aggiorna mi restituisce:
UPDATE agenda SET ora = 'Prova1', data = 'Prova2', ragione = 'Prova3' WHERE id = ''
Bum Bum #11 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:34.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.