Dreamweaver CS4: inserisci record

Di: mornord | 26/09/2020 17:09:52
Chiedo scusa per le troppe domande rivolte a Gian Paolo, e lo ringrazio ancora per l'aiuto che mi ha dato.
sperando di non aver invaso ancora le regole del forum, formulo solo questa domanda:
nella pagina 'inserisci record' ogni volta che inserisco un nuovo record resta sempre tutto il contenuto dell'ultima operazione e devo prima cancellarlo a mano prima di inserirne altro, ho provato a rifarlo più volte ma il risultato è sempre lo stesso

Risposte



Intendi dire che i dati del modulo rimangono ancorati nei campi anche dopo avere effettuato l’operazione di "inserimento record"? Sicuramente è andato storto qualcosa nel procedimento. Vai su "inserisci record" dal pannello Applicazione > Comportamenti server e accertati che non ci sia un punto esclamativo rosso. In tal caso, apri la scheda con un doppio clic e controlli la mappatura: se il campo "ID" non lo utilizzi (come presumo) nei valori del menu a tendina ci deve essere "nessuno". Con gli altri campi, "Titolo" ad esempio, deve esserci il valore 'Titolo' Gets Value From 'FORM.Titolo' as 'Testo' e così via. Fammi sapere...

Di: Gian Paolo | 26/09/2020 17:09:52


Allora l'ho rifatto tutto da capo, il punto esclamativo rosso non c'era, ho associato tutti i campi tranne l'id dove ho lasciato 'nessuno', ma quando apro la pagina dal browser c'è sempre tutto il contenuto del primo campo del database, ho provato anche la soluzione grezza di mettere un pulsante 'ripristina modulo' ma non funziona.
ho provato a farlo anche con al procedura automatica , ho associato tutti i campi, tranne l'id, una volta creato il modulo automatico, senza toccare nulla, c' è comunque tutto il contenuto del primo campo di database.
Non è che si dovrebbe mettere anche l'id con qualche filtro come mi hai detto di fare nella pagina delle schede?

Di: mornord | 26/09/2020 17:10:52


No perché l'ID si autoincrementa da solo nel database, quando usi la funzione di inserimento... Nella modifica e l'eliminazione va messo come campo nascosto... È strano, non dovrebbe accadere... Potresti fare una prova con una nuova pagina, seguendo la procedura di "inserimento automatico"... lasci che DW generi il codice standard. Dalla scheda Applicazioni quella posta nella parte alta del programma, c'è un comando, un pulsante a forma di cilindro con una freccetta a spirale intorno, che si chiama Inserisci record: Procedura guidata Modulo inserimento record. Si apre una scheda molto semplice, in cui inserire la connessione, la tabella ecc. Il campo Dopo l inserimento, vai a lo lasci vuoto, togli l'ID dal campi modulo e Valori predefiniti lo lasci vuoto. Con la pagina pulita non dovrebbe darti problemi. In caso contrario darei un'occhiata alla tabella del DB... vedendolo ieri, non mi è sembrato convincente... Tuttavia al momento non mi viene in mente altro. Se non dovesse cambiare niente, fai una copia del codice e lo metti in una pagina HTML online e posti il link... vediamo di cosa si tratta.

Di: Gian Paolo | 26/09/2020 17:10:52


nel database il campo id è così - ID int 11 not null auto_increment primary key
comunque ho creato una completamente nuova , ho fatto la procedura modulo inserimento record guidata, e aprendola prende visualizza sempre il contenuto dell'ultimo inserimento.
ho provato anche a utilizzare la tua query del database e il risultato è sempre lo stesso, probabilmente c'è qualcosa che non va nell'impostazione di dreamweaver.
http://www.mornord.altervista.org/pelletteria/prova.php

Di: mornord | 26/09/2020 17:10:52


Non dovrebbe funzionare così, i campi devono essere sgombri dopo la funzione di inserimento... comunque, come ti ho detto, vai nel codice, copialo tutto e inseriscilo in una pagina e mettilo online... appena torno darò un'occhiata...

Di: Gian Paolo | 26/09/2020 17:10:52


ok incollo quello della pagina della pagina con solo l'inserimento record
<?php require_once('Connections/conn.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO borse (ID, Descrizione, Testo, Foto, Scheda) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['ID'], "int"),
GetSQLValueString($_POST['Descrizione'], "text"),
GetSQLValueString($_POST['Testo'], "text"),
GetSQLValueString($_POST['Foto'], "text"),
GetSQLValueString($_POST['Scheda'], "text"));
mysql_select_db($database_conn, $conn);
$Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());
}
mysql_select_db($database_conn, $conn);
$query_rs_inserisci = "SELECT * FROM borse";
$rs_inserisci = mysql_query($query_rs_inserisci, $conn) or die(mysql_error());
$row_rs_inserisci = mysql_fetch_assoc($rs_inserisci);
$totalRows_rs_inserisci = mysql_num_rows($rs_inserisci);
?>
<!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/xhtm">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right">Descrizione:</td>
<td><input type="text" name="Descrizione" value="<?php echo $row_rs_inserisci['Descrizione']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Testo:</td>
<td><input type="text" name="Testo" value="<?php echo $row_rs_inserisci['Testo']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Foto:</td>
<td><input type="text" name="Foto" value="<?php echo $row_rs_inserisci['Foto']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Scheda:</td>
<td><input type="text" name="Scheda" value="<?php echo $row_rs_inserisci['Scheda']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"> </td>
<td><input type="submit" value="Inserisci record" /></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
</body>
</html>
<?php
mysql_free_result($rs_inserisci);
?>

Di: mornord | 26/09/2020 17:10:52


ho risolto, come al solito avevo sbagliato qualcosa, praticamente non dovevo mettere le associazioni ai campi con il lampo! ora mi faccio due minuti dietro l'angolo

Di: mornord | 26/09/2020 17:10:52


Ecco il misfatto, è ovvio che non dovevi trascinare i campi nel modulo "Insert record"... sono contento che ragionando hai trovato il problema...
Non resta altro che farti un sentito in bocca al lupo

Di: Gian Paolo | 26/09/2020 17:10:52


[USER]Gian Paolo[/USER]

Ecco il misfatto, è ovvio che non dovevi trascinare i campi nel modulo "Insert record"... sono contento che ragionando hai trovato il problema...
Non resta altro che farti un sentito in bocca al lupo

si infatti ho dovuto spremere le meringi per carpirlo
crepi il lupo, e a me non resta altro che dirti ancora una volta grazie!

Di: mornord | 26/09/2020 17:10:52


Le meningi, non le meringi

Di: Gian Paolo | 26/09/2020 17:10:52


[USER]Gian Paolo[/USER]

Le meningi, non le meringi

hahahha vero non me ne va buona una , ho scritto anche carpirlo

Di: mornord | 26/09/2020 17:11:52


Ho riscontrato un problema strano, davvero strano, visto che ho lavorato usando firefox e usando poco safari e ixplorer, dove inserisco la foto, che tra l'altro dovrebbe salvarmi soltanto il path perchè poi la foto la carico in secondo momento con uno script di un altra pagina, con safari mi da errore dicendo 'Foto' column cannot be null, e nel database ho not null! e poi iexplorer 6 (che odio) mi salva tutto il percorso locale. funziona solo con firefox e iexplorer 8 e non funziona con safari 3.2.3 e safari 4.0.5.

Di: mornord | 26/09/2020 17:11:52


Nel DB se hai not null significa che il campo non può essere nullo, quindi va inserito, semmai Null significa che è facoltativo... poi per convenzione, i nomi nei campi del database è consigliabile metterli minuscoli, id, titolo, scheda e non ID Scheda ecc... ho fatto le prove di inserimento con i browser IE6 e Safari e funziona alla perfezione, puoi vedere nell'applicazioncina che ho messo online nel post precedente... Ho provato invece ad usare il tuo codice e ho notato, (a parte il valore nei campi che abbiamo chiarito) che c'è una stringa di codice che non capisco da dove sia venuta fuori:
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
inoltre non c'era un campo "Titolo"? Io ho visto un campo "Testo"
Comunque, in fase di inserimento dati, è inutile aggiungere anche il recordset anche se non influisce sul funzionamento... è solo codice che si può risparmiare.
Inoltre, quando si fa un progetto, piccolo o grande che sia, va studiato e pianificato in modo razionale. Anche nelle costruzioni informatiche vale il principio che si parte dalle fondamenta: nel database hai messo prima la "Descizione" poi il "titolo" la "foto"...
Non è più logico seguire in modo ordinato le varie grandezze?
id
titolo
foto
scheda
descrizione
Secondo me devi rifarlo e accertarti che il codice corrisponda a quanto vedi:
http://starweb.starnet.it/gianpaolo/inserimento_dati.pdf
Sul file PDF pare ci sia un problema di scaricamento, l'ho messo in una pagina HTML:
http://starweb.starnet.it/gianpaolo/ins_dati.html
Sistema anche il db nell'ordine che ti ho detto, assegnando i seguenti valori, lascia perdere i "varchar" per il momento, sarai tu a stabilire dai campi quanti caratteri fare assegnare all'utente:
`id` int(11) NOT NULL auto_increment,
`titolo` text NOT NULL,
`foto` text,
`scheda` text NOT NULL,
`descrizione` longtext NOT NULL,
PRIMARY KEY (`id`)

Di: Gian Paolo | 26/09/2020 17:11:52


Si in realtà dovrei cominciare da capo, però diciamo che queste sono solo prove per capire i passaggi e il funzionamento, cioè non è realmente un progetto che devo fare, almeno per ora. non ho idea nemmeno di quali campi possa volere l'utente per un sito del genere.
Cmq cercherò di seguire tutti i tuoi preziosi consigli partendo dal fatto di creare tutti i campi in minuscolo ecc...
Una domanda, spero di non andare off topic, ma dopo che ho creato tutte le pagine, intendo quelle di inserimento, di aggiornamento e di eliminazione,
se ho più tabelle identiche ad esempio una giacche e una borse, dovrei avere aggiorna_borse.php e aggiorna_giacche.php devo averne una per ogni sezione oppure la pagina e sempre la stessa e vanno fatti altri passaggi.

Di: mornord | 26/09/2020 17:11:52


Normalmente si appicano dei filtri, se hai una tabella prodotti con oggetti in pelle, giacche, cappotti giubotti etc. e oggetti in cuoio, borse cinture ecc. crei un id_prodotti e un id_categoria... ma non se non sei ancora pronto per questo... procedi per gradi.
Ragazzi questo è un forum dove si risponde a domande sulle funzionalità di DW... per il resto bisogna affidarsi ai manuali e alle guide
Per farti un esempio (a parte l'obbrobrio grafico impostoci dal committente) sulla sinistra vedi un menu dinamico... nel senso che l'utente stesso decide quali voci di menu inserire, attraverso un pannello di controllo in cui è possibile aggiungere anche i prodotti associati... http://www.bottegabossa.com/

Di: Gian Paolo | 26/09/2020 17:11:52


Ok cercherò di andare un pò alla volta, altrimenti rischio di dimenticare anche i passaggi fatti in precedenza e non combino nulla, alcune cose sono riuscito leggendo appunto il manuale in linea di dreamweaver, ma sto cercando in rete qualche libro che spiega le funzionalità avanzate, ma quelli che ho trovato sono tutti della versione mx , un pò vecchiotta.

Di: mornord | 26/09/2020 17:11:52


Attenzione, però, non tutto troverai sui manuali di DW... se sei paziente, dovrai non dico diventare un esperto tuttologo, ma dovrai saperne di PHP, MySql, javascript ecc... i risultati si ottengono con la pazienza e l'esperienza... Altrimenti, se non sei alimentato dal tarlo della conoscenza, rischierai di mollare tutto. Con calma si raggiungono obiettivi sempre più alti.

Di: Gian Paolo | 26/09/2020 17:11:52


Beh si la pazienza è la prima cosa che ci vuole in questo campo, diciamo che non sono uno che molla facilmente ma so anche però quali sono i miei limiti, diciamo che non sarò mai programmatore, anche perchè ho sempre lavorato più per la stampa, è da poco mi affaccio sul web, escludendo i siti in flash, ma l'obbiettivo è quello di riuscire a creare oltre al semplice sito anche qualcosa di dinamico, specialmente per le sezioni prodotti, che l'utente di solito non ha mai nulla,nè foto nè testi e il lavoro resta fermo, invece così se lo piange lui

Di: mornord | 26/09/2020 17:12:52