Modifica Cancella Record tramite Form PHP Mysql

ciao
ok.

ricordati di decommentare i ritorni automatici
echo "<meta http-equiv='Refresh' ........
e commetare o togliere i vari var_dump e gli echo di prova
 
Ciao,

rinnovo i ringraziamenti per avermi fatto raggiungere il mio obiettivo!

Vorrei fare dei piccoli aggiusti al mio codice, in particolare alla pagina che verrà stampata sul sito:

pagina_eventi.php :

Codice:
<?php
include ("config.php"); 
include ("connect.php"); 

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM eventi ORDER BY CAST(data AS DATE)") 
or die(mysql_error());  

echo "<table border='1'>";
echo "<tr> <th>Data</th> <th>   Evento   </th> <th>Luogo</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
	// Print out the contents of each row into a table
	echo "<tr><td>"; 
	echo $row['data'];
	echo "</td><td>"; 
	echo $row['evento'];
	echo "</td><td>"; 
	echo $row['luogo'];
	
	echo "</td></tr>"; 
} 

echo "</table>";
?>


Questa pagina mi stampa un'unica tabella con tutti gli eventi presenti nel DB,

ma io vorrei che ogni evento venisse stampato in una tabella propria tipo così:

pagina_eventi.jpg

e soprattutto, vorrei creare un menu a tendina dal quale posso visualizzare gli eventi in base all'anno.

Ancora grazie per tutto!
 
ciao
due cose:
per fare come nell'immagine puoi provare a mettere
echo "<table border='1'>";
e
echo "</table>";
dentro il while
per l'altro: un problema => un post

p.s.
poi non usare il tag code per il php, ma il suo
 
Perdonami per il tag PHP ...

Ho risolto!

posto il codice per chi ne avesse bisogno!

PHP:
<?php
include ("config.php"); 
include ("connect.php"); 

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM eventi ORDER BY CAST(data AS DATE)") 
or die(mysql_error());  


//echo "<tr> <th>Data</th> <th>   Evento   </th> <th>Luogo</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
	// Print out the contents of each row into a table
		
	echo "<table  width='100%' border='1'>";
  echo"<tr>";
    echo "<th width='10%'>Data</th>";
    echo"<td>";
	echo $row['data'];
	echo"</td>";
  echo"</tr>";
  echo"<tr>";
    echo"<th width='10%'>Luogo</th>";
    echo"<td>";
	echo $row['luogo'];
	echo"</td>";
  echo"</tr>";
  echo"<tr>";
    echo"<th width='10%'>Evento</th>";
    echo"<td>";
	echo $row['evento'];
	echo"</td>";
  echo"</tr>";
echo"</table>";

echo"<br/><br/>";
	
	
} 


?>


Ancora Grazie per l'aiuto!!!
 
Ciao,

mi sono accorto che se voglio modificare un evento, ma lascio vuota la data, oppure metto una data inesistente come ad esempio 2012-54-41, nel database viene scritto 0000-00-00.

A questo punto è possibile integrare dei controlli sulla data? (che deve essere reale ed obbligatoria)

ecco il codice :
PHP:
<?php   
include_once ("config.php");  
include_once ("connect.php");  
if(isset($_POST['mod'])){//se hai premuto il submit del form mod  
    $id=$_POST['id'];  
    $data=$_POST['data'];  
    $evento=$_POST['evento'];  
    $luogo=$_POST['luogo'];  
    $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";  
    $ris=mysql_query($q);  
    echo "Il record $id e' stato modificato con successo!";  
    //qui il ritorno automatico alla pag stampa_eventi.php 
    echo "<meta http-equiv='Refresh' content='3; URL=stampa_eventi.php'>";  
}  
//***********  
if(isset($_GET['mod'])){//hai cliccato su mod  
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get 
    $q="SELECT * FROM eventi  WHERE ID='$id'";  
    $ris=mysql_query($q);  
    $riga=mysql_fetch_array($ris);  
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp   
    $evento=$riga['evento'];   
    $luogo=$riga['luogo'];  
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)  
    //nei campi di input si visualizza il valore originale  
?>  
<!-- form modifica -->  
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="mod">  
  <p>  
    <input name="id" type="hidden" id="id" value="<?php echo $id;?>">  
    <br>  
    <input name="data" type="text" id="data" value="<?php echo $data;?>">  
    <br>  
    <input name="evento" type="text" id="evento" value="<?php echo $evento;?>">  
    <br>  
    <input name="luogo" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="stampa_eventi.php" onclick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[esci]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    var_dump($_GET['del']);//**** primo var_dump 
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    var_dump($q);//**** secondo var_dump 
    $ris=mysql_query($q); 
     var_dump($ris);//**** terzo var_dump 
    echo "Il record $id e' stato cancellato con successo!";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='3; URL=stampa_eventi.php'>";   
}
?>

Sempre grazie!
 
Ragazzi penso di aver combinato un casino!

per inserire la data di un evento avevo inserito nella pagina uno script javascript per visualizzare un piccolo calendario da cui prendere la data.

Nell'inserimento di un nuovo evento ... tutto apposto!

Nella modifica di un evento... c'è un problema!
Non me lo modifica l'evento, bensì ne inserisce uno nuovo con le modifiche apportate, quindi il vecchio evento non viene sovrascritto e quindi rimane.

ecco il file php originale (funziona bene) senza calendario:

PHP:
<?php   
include_once ("config.php");  
include_once ("connect.php");  
if(isset($_POST['mod'])){//se hai premuto il submit del form mod  
    $id=$_POST['id'];  
    $data=$_POST['data'];  
    $evento=$_POST['evento'];  
    $luogo=$_POST['luogo'];  
    $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";  
    $ris=mysql_query($q);  
    echo "aggiornato il record $id";  
    //qui il ritorno automatico alla pag stampa_eventi.php 
    echo "<meta http-equiv='Refresh' content='3; URL=stampa_eventi.php'>";  
}  
//***********  
if(isset($_GET['mod'])){//hai cliccato su mod  
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get 
    $q="SELECT * FROM eventi  WHERE ID='$id'";  
    $ris=mysql_query($q);  
    $riga=mysql_fetch_array($ris);  
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp   
    $evento=$riga['evento'];   
    $luogo=$riga['luogo'];  
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)  
    //nei campi di input si visualizza il valore originale  
?>  
<!-- form modifica -->  
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="mod">  
  <p>  
    <input name="id" type="hidden" id="id" value="<?php echo $id;?>">  
    <br>  
    <input name="data" type="text" id="data" value="<?php echo $data;?>">  
    <br>  
    <input name="evento" type="text" id="evento" value="<?php echo $evento;?>">  
    <br>  
    <input name="luogo" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="stampa_eventi.php" onclick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[esci]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    var_dump($_GET['del']);//**** primo var_dump 
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    var_dump($q);//**** secondo var_dump 
    $ris=mysql_query($q); 
     var_dump($ris);//**** terzo var_dump 
    echo "eliminato il record $id";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='3; URL=stampa_eventi.php'>";   
}else{ 
    echo "i get non funzionano";//**** avviso che i get non vengole trasmessi o letti 
    //se accedi direttamente a questa pagina viene riportato subito alla stampa_eventi.php  
    //echo "<meta http-equiv='Refresh' content='0; URL=stampa_eventi.php'>";   
}  
?>


e questo è il codice incriminato!

PHP:
<?php   
include_once ("config.php");  
include_once ("connect.php");  
if(isset($_POST['mod'])){//se hai premuto il submit del form mod  
    $id=$_POST['id'];  
    $data=$_POST['data'];  
    $evento=$_POST['evento'];  
    $luogo=$_POST['luogo'];  
    $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";  
    $ris=mysql_query($q);  
    echo "Il record $id e' stato modificato con successo!";  
    //qui il ritorno automatico alla pag stampa_eventi.php 
    echo "<meta http-equiv='Refresh' content='2; URL=stampa_eventi.php'>";  
}  
//***********  
if(isset($_GET['mod'])){//hai cliccato su mod  
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get 
    $q="SELECT * FROM eventi  WHERE ID='$id'";  
    $ris=mysql_query($q);  
    $riga=mysql_fetch_array($ris);  
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp   
    $evento=$riga['evento'];   
    $luogo=$riga['luogo'];  
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)  
    //nei campi di input si visualizza il valore originale  
?>  

<tr>
<link rel="stylesheet" type="text/css" media="all" href="skins/aqua/theme.css" title="Aqua" />
<script type="text/javascript" src="calendar.js"></script>
<script type="text/javascript" src="calendar-it.js"></script>

<script type="text/javascript">

var oldLink = null;
function setActiveStyleSheet(link, title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  if (oldLink) oldLink.style.fontWeight = 'normal';
  oldLink = link;
  link.style.fontWeight = 'bold';
  return false;
}

// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
    cal.callCloseHandler();
}

function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  _dynarch_popupCalendar = null;
}

function showCalendar(id, format, showsTime, showsOtherMonths) {
  var el = document.getElementById(id);
  if (_dynarch_popupCalendar != null) {
    // we already have some calendar created
    _dynarch_popupCalendar.hide();                 // so we hide it first.
  } else {
    // first-time call, create the calendar.
    var cal = new Calendar(1, null, selected, closeHandler);
    // uncomment the following line to hide the week numbers
    // cal.weekNumbers = false;
    if (typeof showsTime == "string") {
      cal.showsTime = true;
      cal.time24 = (showsTime == "24");
    }
    if (showsOtherMonths) {
      cal.showsOtherMonths = true;
    }
    _dynarch_popupCalendar = cal;                  // remember it in the global var
    cal.setRange(1900, 2070);        // min/max year allowed.
    cal.create();
  }
  _dynarch_popupCalendar.setDateFormat(format);    // set the specified date format
  _dynarch_popupCalendar.parseDate(el.value);      // try to parse the text in field
  _dynarch_popupCalendar.sel = el;                 // inform it what input field we use

  _dynarch_popupCalendar.showAtElement(el.nextSibling, "Br");        // show the calendar

  return false;
}

var MINUTE = 60 * 1000;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;
var WEEK = 7 * DAY;

function isDisabled(date) {
  var today = new Date();
  return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
}

function flatSelected(cal, date) {
  var el = document.getElementById("preview");
  el.innerHTML = date;
}

function showFlatCalendar() {
  var parent = document.getElementById("display");

  var cal = new Calendar(0, null, flatSelected);

  cal.weekNumbers = false;

  cal.setDisabledHandler(isDisabled);
  cal.setDateFormat("%A, %B %e");

  cal.create(parent);

  cal.show();
}
</script>


</head>



<body >
<br /><br />
<div align="center">


<form method="POST" name="test" enctype="multipart/form-data"  action="inserisci_evento.php">
                  


Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');"> 



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="100" type="text" id="evento" value="<?php echo $evento;?>" maxlength="50">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="100" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="stampa_eventi.php" onClick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[ESCI senza salvare le modifiche]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    ($_GET['del']);//**** primo  
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    ($q);//**** secondo  
    $ris=mysql_query($q); 
     ($ris);//**** terzo  
    echo "Il record $id e' stato cancellato con successo!";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='2; URL=stampa_eventi.php'>";   
}
?>

Ringrazio Anticipatamente!
 
L'action del form richiama la pagina inserisci_evento

PHP:
<form method="POST" name="test" enctype="multipart/form-data"  action="inserisci_evento.php">
 
ho corretto il codice ... e continua a non andare.

mi dice :


( ! ) Notice: Undefined index: id in C:\wamp\www\pannello_pqs\modifica_cancella.php on line 178
Call Stack
# Time Memory Function Location
1 0.0094 700752 {main}( ) ..\modifica_cancella.php:0
null
string 'UPDATE eventi SET data='2014-02-08', evento='prova10', luogo='prova10' WHERE ID=''' (length=82)
Il record e' stato modificato con successo!

vi posto l'errore :
Immagine.png

ecco il codice aggiornato che provoca questo errore:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
    <!--
        
    -->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Elenco Eventi</title>



    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" href="style.ie6.css" type="text/css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" href="style.ie7.css" type="text/css" media="screen" /><![endif]-->

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="script.js"></script>
   <style type="text/css">
.art-post .layout-item-0 { padding-right: 10px;padding-left: 10px; }
   .ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }
   .ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }
   </style>
   
   <tr>
<link rel="stylesheet" type="text/css" media="all" href="skins/aqua/theme.css" title="Aqua" />
<script type="text/javascript" src="calendar.js"></script>
<script type="text/javascript" src="calendar-it.js"></script>

<script type="text/javascript">

var oldLink = null;
function setActiveStyleSheet(link, title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  if (oldLink) oldLink.style.fontWeight = 'normal';
  oldLink = link;
  link.style.fontWeight = 'bold';
  return false;
}

// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
    cal.callCloseHandler();
}

function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  _dynarch_popupCalendar = null;
}

function showCalendar(id, format, showsTime, showsOtherMonths) {
  var el = document.getElementById(id);
  if (_dynarch_popupCalendar != null) {
    // we already have some calendar created
    _dynarch_popupCalendar.hide();                 // so we hide it first.
  } else {
    // first-time call, create the calendar.
    var cal = new Calendar(1, null, selected, closeHandler);
    // uncomment the following line to hide the week numbers
    // cal.weekNumbers = false;
    if (typeof showsTime == "string") {
      cal.showsTime = true;
      cal.time24 = (showsTime == "24");
    }
    if (showsOtherMonths) {
      cal.showsOtherMonths = true;
    }
    _dynarch_popupCalendar = cal;                  // remember it in the global var
    cal.setRange(1900, 2070);        // min/max year allowed.
    cal.create();
  }
  _dynarch_popupCalendar.setDateFormat(format);    // set the specified date format
  _dynarch_popupCalendar.parseDate(el.value);      // try to parse the text in field
  _dynarch_popupCalendar.sel = el;                 // inform it what input field we use

  _dynarch_popupCalendar.showAtElement(el.nextSibling, "Br");        // show the calendar

  return false;
}

var MINUTE = 60 * 1000;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;
var WEEK = 7 * DAY;

function isDisabled(date) {
  var today = new Date();
  return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
}

function flatSelected(cal, date) {
  var el = document.getElementById("preview");
  el.innerHTML = date;
}

function showFlatCalendar() {
  var parent = document.getElementById("display");

  var cal = new Calendar(0, null, flatSelected);

  cal.weekNumbers = false;

  cal.setDisabledHandler(isDisabled);
  cal.setDateFormat("%A, %B %e");

  cal.create(parent);

  cal.show();
}
</script>




</head>
<body>
<div id="art-page-background-glare-wrapper">
    <div id="art-page-background-glare"></div>
</div>
<div id="art-main">
    <div class="cleared reset-box"></div>
    <div class="art-box art-sheet">
        <div class="art-box-body art-sheet-body">
            <div class="art-header">
                
                
            </div>
            <div class="cleared reset-box"></div>
<div class="art-bar art-nav">
<div class="art-nav-outer">
	<ul class="art-hmenu">
		<li>
			<a href="./index.php" class="active">Elenco Eventi</a>
		</li>	
		<li>
			<a href="./form_inserisci.php">Inserisci Evento</a>
		</li>	
        <li>
			<a href="./anteprima.php">Anteprima eventi</a>
		</li>
        <li>
			<a href="http://forum.mrwebmaster.it/index.php">Torna alla HomePage</a>
		</li>
	</ul>
</div>
</div>
<div class="cleared reset-box"></div>
<div class="art-layout-wrapper">
                <div class="art-content-layout">
                    <div class="art-content-layout-row">
                        <div class="art-layout-cell art-content">
<div class="art-box art-post">
    <div class="art-box-body art-post-body">
<div class="art-post-inner art-article">
                                <h2 class="art-postheader">Modifica - Cancella eventi
                                </h2>
                                
      
                                                <div class="art-postcontent">
<div class="art-content-layout">
    <div class="art-content-layout-row">
    <div class="class="centrato" style="width: 100%;">
        <p><span style="font-size: 6px;">
        
<?php    
include_once("config.php");   
include_once("connect.php");   
if(isset($_POST['mod'])){//se hai premuto il submit del form mod   
     var_dump($id=$_POST['id']);   
              $data=$_POST['data'];   
              $evento=$_POST['evento'];   
              $luogo=$_POST['luogo'];   
     var_dump($q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'");   
             $ris=mysql_query($q);   
             echo "<h4>Il record $id e' stato modificato con successo!</h4>";   
             //qui il ritorno automatico alla pag stampa_eventi.php  
             echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";   
}   
//***********   
if(isset($_GET['mod'])){//hai cliccato su mod   
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get  
    $q="SELECT * FROM eventi  WHERE ID='$id'";   
    $ris=mysql_query($q);   
    $riga=mysql_fetch_array($ris);   
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp    
    $evento=$riga['evento'];    
    $luogo=$riga['luogo'];   
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)   
    //nei campi di input si visualizza il valore originale   
?>   


<body >
<br /><br />
<div align="center">


<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">
                  


Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="100" type="text" id="evento" value="<?php echo $evento;?>" maxlength="50">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="100" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="./index.php" onClick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[ESCI senza salvare le modifiche]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    ($_GET['del']);//**** primo  
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    ($q);//**** secondo  
    $ris=mysql_query($q); 
     ($ris);//**** terzo  
    echo "<h4>Il record $id e' stato cancellato con successo!</h4>";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='2; URL=./index.php'>";   
}
?>
 
ho corretto il codice ... e continua a non andare.

mi dice :


( ! ) Notice: Undefined index: id in C:\wamp\www\pannello_pqs\modifica_cancella.php on line 178
Call Stack
# Time Memory Function Location
1 0.0094 700752 {main}( ) ..\modifica_cancella.php:0
null
string 'UPDATE eventi SET data='2014-02-08', evento='prova10', luogo='prova10' WHERE ID=''' (length=82)
Il record e' stato modificato con successo!

vi posto l'errore :
Vedi l'allegato 1104

ecco il codice aggiornato che provoca questo errore:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
    <!--
        
    -->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Elenco Eventi</title>



    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" href="style.ie6.css" type="text/css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" href="style.ie7.css" type="text/css" media="screen" /><![endif]-->

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="script.js"></script>
   <style type="text/css">
.art-post .layout-item-0 { padding-right: 10px;padding-left: 10px; }
   .ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }
   .ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }
   </style>
   
   <tr>
<link rel="stylesheet" type="text/css" media="all" href="skins/aqua/theme.css" title="Aqua" />
<script type="text/javascript" src="calendar.js"></script>
<script type="text/javascript" src="calendar-it.js"></script>

<script type="text/javascript">

var oldLink = null;
function setActiveStyleSheet(link, title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  if (oldLink) oldLink.style.fontWeight = 'normal';
  oldLink = link;
  link.style.fontWeight = 'bold';
  return false;
}

// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
    cal.callCloseHandler();
}

function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  _dynarch_popupCalendar = null;
}

function showCalendar(id, format, showsTime, showsOtherMonths) {
  var el = document.getElementById(id);
  if (_dynarch_popupCalendar != null) {
    // we already have some calendar created
    _dynarch_popupCalendar.hide();                 // so we hide it first.
  } else {
    // first-time call, create the calendar.
    var cal = new Calendar(1, null, selected, closeHandler);
    // uncomment the following line to hide the week numbers
    // cal.weekNumbers = false;
    if (typeof showsTime == "string") {
      cal.showsTime = true;
      cal.time24 = (showsTime == "24");
    }
    if (showsOtherMonths) {
      cal.showsOtherMonths = true;
    }
    _dynarch_popupCalendar = cal;                  // remember it in the global var
    cal.setRange(1900, 2070);        // min/max year allowed.
    cal.create();
  }
  _dynarch_popupCalendar.setDateFormat(format);    // set the specified date format
  _dynarch_popupCalendar.parseDate(el.value);      // try to parse the text in field
  _dynarch_popupCalendar.sel = el;                 // inform it what input field we use

  _dynarch_popupCalendar.showAtElement(el.nextSibling, "Br");        // show the calendar

  return false;
}

var MINUTE = 60 * 1000;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;
var WEEK = 7 * DAY;

function isDisabled(date) {
  var today = new Date();
  return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
}

function flatSelected(cal, date) {
  var el = document.getElementById("preview");
  el.innerHTML = date;
}

function showFlatCalendar() {
  var parent = document.getElementById("display");

  var cal = new Calendar(0, null, flatSelected);

  cal.weekNumbers = false;

  cal.setDisabledHandler(isDisabled);
  cal.setDateFormat("%A, %B %e");

  cal.create(parent);

  cal.show();
}
</script>




</head>
<body>
<div id="art-page-background-glare-wrapper">
    <div id="art-page-background-glare"></div>
</div>
<div id="art-main">
    <div class="cleared reset-box"></div>
    <div class="art-box art-sheet">
        <div class="art-box-body art-sheet-body">
            <div class="art-header">
                
                
            </div>
            <div class="cleared reset-box"></div>
<div class="art-bar art-nav">
<div class="art-nav-outer">
	<ul class="art-hmenu">
		<li>
			<a href="./index.php" class="active">Elenco Eventi</a>
		</li>	
		<li>
			<a href="./form_inserisci.php">Inserisci Evento</a>
		</li>	
        <li>
			<a href="./anteprima.php">Anteprima eventi</a>
		</li>
        <li>
			<a href="../index.php">Torna alla HomePage</a>
		</li>
	</ul>
</div>
</div>
<div class="cleared reset-box"></div>
<div class="art-layout-wrapper">
                <div class="art-content-layout">
                    <div class="art-content-layout-row">
                        <div class="art-layout-cell art-content">
<div class="art-box art-post">
    <div class="art-box-body art-post-body">
<div class="art-post-inner art-article">
                                <h2 class="art-postheader">Modifica - Cancella eventi
                                </h2>
                                
      
                                                <div class="art-postcontent">
<div class="art-content-layout">
    <div class="art-content-layout-row">
    <div class="class="centrato" style="width: 100%;">
        <p><span style="font-size: 6px;">
        
<?php    
include_once("config.php");   
include_once("connect.php");   
if(isset($_POST['mod'])){//se hai premuto il submit del form mod   
     var_dump($id=$_POST['id']);   
              $data=$_POST['data'];   
              $evento=$_POST['evento'];   
              $luogo=$_POST['luogo'];   
     var_dump($q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'");   
             $ris=mysql_query($q);   
             echo "<h4>Il record $id e' stato modificato con successo!</h4>";   
             //qui il ritorno automatico alla pag stampa_eventi.php  
             echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";   
}   
//***********   
if(isset($_GET['mod'])){//hai cliccato su mod   
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get  
    $q="SELECT * FROM eventi  WHERE ID='$id'";   
    $ris=mysql_query($q);   
    $riga=mysql_fetch_array($ris);   
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp    
    $evento=$riga['evento'];    
    $luogo=$riga['luogo'];   
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)   
    //nei campi di input si visualizza il valore originale   
?>   


<body >
<br /><br />
<div align="center">


<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">
                  


Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="100" type="text" id="evento" value="<?php echo $evento;?>" maxlength="50">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="100" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="./index.php" onClick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[ESCI senza salvare le modifiche]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    ($_GET['del']);//**** primo  
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    ($q);//**** secondo  
    $ris=mysql_query($q); 
     ($ris);//**** terzo  
    echo "<h4>Il record $id e' stato cancellato con successo!</h4>";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='2; URL=./index.php'>";   
}
?>
 
qui c'è un errore

Codice:
<div class="class="centrato" style="width: 100%;">


e nel form manca l'id

quindi non lo invii e la query va in errore


aggiungi al form

Codice:
<input type='hidden' name='id' value='$id'/>


prova
 
qui c'è un errore

Codice:
<div class="class="centrato" style="width: 100%;">


e nel form manca l'id

quindi non lo invii e la query va in errore


aggiungi al form

Codice:
<input type='hidden' name='id' value='$id'/>


prova

ho eliminato :
Codice:
<div class="class="centrato" style="width: 100%;">

ho modificato il form in questo modo:

Codice:
<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">
                  
<input type='hidden' name='id' value='$id'/>

Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="100" type="text" id="evento" value="<?php echo $evento;?>" maxlength="50">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="100" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form>

anche se non ne capisco molto... penso che l'errore sia qui:

Codice:
string 'UPDATE eventi SET data='2014-02-08', evento='prova10', luogo='prova10' WHERE ID=''' (length=82)
Il record e' stato modificato con successo!

perchè l'ID è vuoto. e non riesce a capire dove inserire i nuovi dati... e non li inserisce proprio :crying:


PS : nel vecchio codice modifica_cancella.php che ho postato precedentemente non c'era:
Codice:
<input type='hidden' name='id' value='$id'/>

e funzionava lo stesso bene... mannaggiaaaaa!!!!
 
PS : nel vecchio codice modifica_cancella.php che ho postato precedentemente non c'era:

PHP:
<input type='hidden' name='id' value='$id'/>

e funzionava lo stesso bene... mannaggiaaaaa!!!!


si che c'era

Codice:
<!-- form modifica -->  
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="mod">  
  <p>  
    <input name="id" type="hidden" id="id" value="<?php echo $id;?>">  
    <br>  
    <input name="data" type="text" id="data" value="<?php echo $data;?>">  
    <br>  
    <input name="evento" type="text" id="evento" value="<?php echo $evento;?>">  
    <br>  
    <input name="luogo" type="text" id="luogo" value="<?php echo $luogo;?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form>
 
Chiedo UMILMENTE perdono e scusa se ti ho fatto perdere tempo!

Errore mio!

Questi maledetti "copia/incolla" !!!


GRAZIE 1000
 
Ciao a tutti!

dopo un anno riapro questa discussione perchè è sorto un problema che non riesco a risolvere.

___________________________________________________________

Inserisco un evento e/o un luogo.

Se il testo contiene : pinco pallino è andato a scuola.

e dopo vado a modificarlo con l'apposita funzione "modifica_cancella.php" , nel campo da modificare compare : pinco pallino è andato a scuola.

Fin qui tutto OK !

Se invece il testo contiente : pinco pallino è andato a scuola chiamata "E. De Amicis"

e dopo vado a modificarlo con l'apposita funzione "modifica_cancella.php" , nel campo da modificare compare : pinco pallino è andato a scuola chiamata.

Nel form di modifica scompare tutto il testo che viene dopo le virgolette " .

___________________________________________________________
Allego le foto della pagina :

Elenco degli eventi :

evento.jpg

___________________________________________________________


Poi vado a modificare l'evento... e tutto il testo dopo le virgolette scompare :

evento_modifica_cancella.jpg


___________________________________________________________

Lo script della pagina "modifica_cancella.php" è questo:
PHP:
<?php    
include_once("config.php");   
include_once("connect.php");   
if(isset($_POST['mod'])){//se hai premuto il submit del form mod   
     		  $id=$_POST['id'];   
              $data=$_POST['data'];   
              $evento=$_POST['evento'];   
              $luogo=$_POST['luogo'];   
              $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";   
              $ris=mysql_query($q);   
             echo "<h4>Il record $id e' stato modificato con successo!</h4>";   
             //qui il ritorno automatico alla pag stampa_eventi.php  
             echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";   
}   
//***********   
if(isset($_GET['mod'])){//hai cliccato su mod   
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get  
    $q="SELECT * FROM eventi  WHERE ID='$id'";   
    $ris=mysql_query($q);   
    $riga=mysql_fetch_array($ris);   
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp    
    $evento=$riga['evento'];    
    $luogo=$riga['luogo'];   
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)   
    //nei campi di input si visualizza il valore originale   
?>   


<body >
<br /><br />
<div align="center">


<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">
                  
<input name="id" type="hidden" id="id" value="<?php echo $id;?>">

Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="200" type="text" id="evento" value="<?php echo $evento;?>" maxlength="300">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="200" type="text" id="luogo" value="<?php echo $luogo;?>" maxlength="300">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="./index.php" onClick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[ESCI senza salvare le modifiche]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    ($_GET['del']);//**** primo  
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    ($q);//**** secondo  
    $ris=mysql_query($q); 
     ($ris);//**** terzo  
    echo "<h4>Il record $id e' stato cancellato con successo!</h4>";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='2; URL=./index.php'>";   
}
?>

Come posso correggere questo BUG ?

Ringrazio anticipatamente!
 
ciao
prova ad aggiungere nella parte di modifica addslashes e dove leggi per il form stripslashes
PHP:
<?php
//.....
if(isset($_POST['mod'])){//se hai premuto il submit del form mod   
               $id=$_POST['id'];   
              $data=$_POST['data'];   
              $evento=addslashes($_POST['evento']); // qui  
              $luogo=addslashes($_POST['luogo']);  // qui  
              $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";   
              $ris=mysql_query($q);   
             echo "<h4>Il record $id e' stato modificato con successo!</h4>";   
             //qui il ritorno automatico alla pag stampa_eventi.php  
             echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";   
}   
//***********   
if(isset($_GET['mod'])){//hai cliccato su mod   
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get  
    $q="SELECT * FROM eventi  WHERE ID='$id'";   
    $ris=mysql_query($q);   
    $riga=mysql_fetch_array($ris);   
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp    
    $evento=stripslashes($riga['evento']);  // qui   
    $luogo=stripslashes($riga['luogo']);  // qui  
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)   
    //nei campi di input si visualizza il valore originale   
?>
 
ciao
prova a mettere un var_dump
PHP:
<?php
//.......
              $evento=addslashes($_POST['evento']); // qui  
              $luogo=addslashes($_POST['luogo']);  // qui  
              $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";   
              var_dump($q);
              $ris=mysql_query($q);
//......
?>
metti un evento e luogo con l'apostrofo e riporta cosa da il var_dump
dovrebbe aggiungere davanti all'apostrofo lo slash
......viva l\'amore...
 
fatto come hai suggerito tu.

modificato il codice...

inserito un evento e luogo : Evento di prova "eee"




e questo è il risultato:

string(125) "UPDATE eventi SET data='2000-03-23', evento='Evento di prova \\\"eee\\\"', luogo='Evento di prova \\\"eee\\\"' WHERE ID='498'"
 

Discussioni simili