Evitare la ridondanza

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
Ciao a tutti:)
ho un inserimento a 5 valori da 5 moduli drop down menu
di quest 5 , i primi quattro identificano un
giorno, mese, anno, orario treno
l'altro è il ritardo.
da una pagina web, l'utente il cui treno è in ritardo puo' collegarsi
e dai 5 menu a tendina selezionare i valori e inviare al db mysql
i dati che li stamperà su un'altra pagina web (archivio..)
quindi in pratica, ogni singolo treno in una giornata vorrei che venisse
stampato una sola volta.
per es.
giorno 1
mese 10
anno 2008
ritardo 5 minuti
un utente inserisce qusti dati e si registra il valore nel db
ma io vorrei che venisse stampato solo la prima volta dal primo utente il treno oggetto di ritardo. Se un altro utente si connete e ha avuto los tesso problema, reinserisce gli stessi valori (giorno mese anno orario) ma il ritardo puo' variare
In poche parole, vorrei che giorno,mese ,anno e orario treno si stampassero solo unavolta nel web, mentre per i ritardi inseriti venisse fatta una media .
qualcuno ha qualche idea?
per ora
$sql = "SELECT * FROM treni_soppressione ORDER BY giorno,mese,anno,orario";
$result = mysql_query ($sql);
echo "<span style='font-size: 13px; font-weight:bold;'>Giorno Orario Direzione Annunciata</span><br/>";
while ($row = mysql_fetch_row($result))

{

print $row[1] . "&nbsp;". $row[2]."&nbsp;". $row[3] .$row[4]. $row[5].$row[6]. "</span><br>\n";

}
}

?>

Funziona bene ma chi si connette e inserisce ritardi stesso treno, me lo stampa due volte, o 3, o a seconda di quanti inseriscono dati
Insomma, è chiaro. vorrei non fare ristampare lo stesso treno piu di una volta
Vi ringrazio in anticipo
paolo:)
 

narc0x

Utente Attivo
10 Ott 2008
128
2
18
se cortesemente posti una parte di codice diciamo "più estesa" ti potrei aiutare. Comunque (tirandola sul dubbio) non è che invece di un UPDATE hai usato un INSERT quando un utente aggiorna l'orario ?
 
Ultima modifica:

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
ecco tutti i file grazie

ciao, ti invio tutti i file del progetto.


ecco qua. il primo inserisci.php dove ci sono i drop down menu
In poche parole ho creato una tabellas su mysql che ha gli stessi
valori dei campi dei drop down menu giorno, mese, anno, orario, direzione, annunciata

Come ti scrivevo sopra, vorrei che php riconoscesse i record con i
primi 5 campi uguali e non aggiungesse record ulteriori ma andasse ad aumentare solo il numero di segnalazioni sullo stesso treno (si incredmenta solo la colonna annunciata)
se ovviamente un treno (record di 5 campi o value o colonne nella tab) non è ancora stato segnalato, ovviamente, deve essere fatta l'INSERT aumentando la tabella di una riga.
Ci vuole pero' appunto il controllo di cui sopra
grazie ancora per la tua disponibilità
Non ho capito bene pero' il discorso update, o insert. scusa veramente
sto imparando. perdonami:confused:

ciao
:)

1)

:)
<?php
// SETTO I DATI PER LA CONFIGURAZIONE DELLA CONNESSIONE CREANDO LE RELATIVE VARIABILI
$host = "............";
$user = "............";
$password = "...............";
$dbname = ".............";
//CREO LA VARIABILE CHE CONNETTE IL SERVER AL DATABASE
$cxn = mysql_connect($host,$user,$password);
mysql_select_db($dbname);
//CONTROLLO CONNESSIONE SE è OK
if (!$cxn)
{
echo 'Errore durante la connessione al server MySQL';

exit();

}
else {

echo '';
}
echo "<span style='font-family:arial'/>Inserisci i dati del treno in RITARDO in questione</span>";
echo "<p style='font-family:arial'>
<span style='text-align: right'><a href='http://digilander.libero.it/segratrain/'>torna all'home page</a></span>
<form action='form2.php' method='POST'>
<select name='giorno'>
<option value='01'>1</option>
<option value='02'>2</option>
<option value='03'>3</option>
<option value='04'>4</option>
<option value='05'>5</option>
<option value='06'>6</option>
<option value='07'>7</option>
<option value='08'>8</option>
<option value='09'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>";

echo "Giorno
<select name='mese'>
<option value='ottobre'>ottobre</option>
<option value='novembre'>novembre</option>
<option value='dicembre'>dicembre</option>
</select>";

echo "Mese
<select name='anno'>
<option value='2008'>2008</option>

</select>";

echo "anno <br /><br />
<select name='direzione'>
<option value='Pioltello'>Pioltello</option>
<option value='Varese'>Varese</option>

</select>";
echo "Direzione <br /><br />
<select name='orario'>
<option value='0614'>6.14</option>
<option value='0644'>6.44</option>
<option value='0714'>7.14</option>
<option value='0744'>7.44</option>
<option value='0814'>8.14</option>
<option value='0844'>8.44</option>
<option value='0914'>9.14</option>
<option value='0944'>9.44</option>
<option value='1014'>10.14</option>
<option value='1044'>10.44</option>
<option value='1114'>11.14</option>
<option value='1144'>11.44</option>
<option value='1214'>12.14</option>
<option value='1244'>12.44</option>
<option value='1314'>13.14</option>
<option value='1344'>13.44</option>
<option value='1414'>14.14</option>
<option value='1444'>14.44</option>
<option value='1514'>15.14</option>
<option value='1544'>15.44</option>
<option value='1614'>16.14</option>
<option value='1644'>16.44</option>
<option value='1714'>17.14</option>
<option value='1744'>17.44</option>
<option value='1814'>18.14</option>
<option value='1844'>18.44</option>
<option value='1914'>19.14</option>
<option value='1944'>19.44</option>
<option value='2014'>20.14</option>
<option value='2044'>20.44</option>
<option value='2114'>21.14</option>
<option value='2144'>21.44</option>
<option value='2214'>22.14</option>
<option value='2244'>22.44</option>
<option value='2314'>23.14</option>

<option value='2344'>23.44</option>
<option value='0014'>.00.14</option>

</select>";
echo "Orario *<br/ >
<br />

<select name='annunciata'>
<option value='si'>Si</option>
<option value='no'>No</option>

</select>";
echo "Annunciata<br />
<br />
<input name='submit' type='submit' value='invia' />

<input type='hidden' name='submitted' value='yes' />
</form>";




2) file form2.php quello che agisce e prende i values , collegato al form

require ('config.php');

$giorno = $_POST['giorno'];
$mese = $_POST['mese'];
$anno = $_POST['anno'];
$orario = $_POST['orario'];
$direzione = $_POST['direzione'];
$annunciata = $_POST ['annunciata'];


$sql = "INSERT INTO treni_soppressione (giorno,mese,anno,orario,direzione,annunciata) VALUES ('$giorno','$mese','$anno','$orario','$direzione','$annunciata')";
$result = mysql_query($sql);



3) listasoppressioni.php

if (!$cxn)
{
echo 'Errore durante la connessione al server MySQL';

exit();

}
else {


/*RECUPERO I DATI DAL DB MYSQL ORDINATI ALFABETICAMENTE*/

$sql = "SELECT * FROM treni_soppressione ORDER BY giorno,mese,anno,orario,direzione";

$result = mysql_query ($sql);
echo "<span style='font-size: 13px; font-weight:bold;'>Giorno &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Orario &nbsp;&nbsp;&nbsp;&nbsp; Direzione &nbsp;&nbsp;&nbsp; Annunciata</span><br/>";
while ($row = mysql_fetch_row($result))

{

print $row[1] . "&nbsp;". $row[2]."&nbsp;". $row[3]. "&nbsp;&nbsp;&nbsp;&nbsp;" .$row[4]. "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;". $row[5]."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" .$row[6]. "</span><br>\n";

}
}

?>
 

narc0x

Utente Attivo
10 Ott 2008
128
2
18
Credo di aver capito. L'unica cosa che devi fare è innanzitutto creare un ulteriore colonna sul database con un identificativo del treno in questione e un altra con il numero di segnalazioni e, quando l'utente andrà ad inserire i dati del form dovresti controllare se il treno da lui specificato è già esistente. Quindi ricapitolando dovresti fare:

1) Crei una colonna con l'identificativo del treno.
2) Crei una colonna con il numero delle segnalazioni
3) Creare un nuovo <input> che servirà per scrivere il numero identificativo del treno che servirà per effettuare il controllo se il numero è già esistente sul database (puoi anche usare gli option come vuoi tu).
3) Prendi il valore del numero delle segnalazioni tramite mysql_Query();
4) Lo incrementi $valore++
5) Aggiorni la cella con mysql_query("UPDATE cella SET segnalazioni=$valore");

Ti faccio un esempio in codice:

HTML:
<input type="text" name="numtreno"> <!-- QUESTO SARA L'IDENTIFICATIVO DEL TRENO CHE LUI VUOLE AGGIORNARE -->

Poi dall'altra parte avrai il file php che riceve i dati

PHP:
$numerotreno = $_POST['numtreno'];

if (mysql_query("SELECT * FROM tabella WHERE numerotreno=$numerotreno") != FALSE) {
    $dbg = mysql_query("SELECT numsegnalazioni FROM tabella WHERE numerotreno =$numerotreno");
    $dbg2 = mysql_fetch_row($dbg); // QUI AVRAI IL NUMERO DELLE SEGNALAZIONI
    $dbg2++; // INCREMENTI IL NUMERO DELLE SEGNALAZIONI DI 1
    mysql_Query("UPDATE tabella SET numsegnalazioni=$dbg2 WHERE numerotreno=$numerotreno"); // QUI AGGIONI LA TABELLA NUMSEGNALAZIONI PER AVERE IL CONTEGGIO DELLE SEGNALAZIONI EFFETTUATE SULLO STESSO TRENO
}
else {
   mysql_query("INSERT INTO treni_soppressione (giorno,mese,anno,orario,direzione,annunciata) VALUES ('$giorno','$mese','$anno','$orario','$direzione', '$annunciata')"; // IL TUO CODICE
}

Spero di essere stato abbastanza chiaro... fammi sapere ;)
 
Ultima modifica:

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
problema

Ciao Narcox
innanzitutto ti ringrazio per la tua pazienza e la tua disponobilità
posso chiederti un'alternativa all'idea dell'id del treno?
non è facile per un utente ricordarselo e inserirlo su internet.
La nostra è una semplice fermata priva di display e personale, solo una linea condue binari .E' proprio questa mancanza di strutture e questa situaizone disgraziata che mi ha fatto venire voglia di fare un sito xché la gente non ne puo' piu.
Per ora ho creato una query che funziona: ovvero, le stesse combinazioni con 5 valori di seguito uguali (identificativo treno) non li reinserisce
E se usassi l'id creato in automaitico come chiave primaria da mysql?
ciao;)
 

narc0x

Utente Attivo
10 Ott 2008
128
2
18
uhm però ho visto che nel tuo form ci sono le direzioni (varese ed un altro non ricordo bene 0:) ) potresti usare quelle per fare ciò che ti ho detto poc'anzi...oppure potresti confrontarli in base alla data ? nel senso che se data giorno e anno coincidono con il result già esistente sul database fa un UPDATE del campo invece di fare un INSERT (con il codice che ti ho postato prima, apportando qualche modifica). Sinceramente non mi viene in mente nient'altro sai ?
 

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
grazie

...un po' in base alle tue indicazioni e unendo qualche sforzo di mio dovrei farcela- ti faccio sapere cosa viene fuori piu avanti
ciao :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
W Evitare ridondanza dei dati Classic ASP 3
D evitare di inserirre duplicati in mysql PHP 4
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
U Posizionamento Rack nel locale tecnico ed eventuali accortezze per evitare incendi Reti LAN e Wireless 1
D consiglio evitare truffe Annunci servizi di Social Media Marketing 11
andreas88 Evitare che la mia idea venga rubata Leggi, Normative e Fisco 5
C [PHP] Ricerca multipla, evitare if PHP 4
elpirata [PHP] Evitare la visualizzazione del carattere di nuova linea \r\n PHP 5
A [Javascript] [CSS] elenco affiancato per evitare scorrimento pagina Javascript 4
michele357 TAG HTML: Come evitare che venga riprodotto un file .mp3 senza cancellarlo HTML e CSS 1
M Evitare la compilazione automatica NomeUtente e Password con Chrome PHP 2
M Evitare rischio assunzione programmatori per nuove aziende? Leggi, Normative e Fisco 3
Antonio_Cantaro Cookie rendirizamento per evitare la loro scrittura Javascript 1
A Evitare estrazione record doppioni PHP 2
felino Scambio link: consigliato o meglio evitare? SEO e Posizionamento 0
xone Evitare Meta Tag duplicati su paginazione php PHP 2
A [risolto] evitare refresh index dopo recaptcha sbagliato PHP 7
J Evitare al refresh della pagina la ritrasmissione di un form PHP 1
G come evitare l'a capo del testo nelle tabelle HTML e CSS 4
M Evitare SQL Injection senza deformare testo PHP 3
M Confrontare data, ora e aula per evitare sovrapposizioni PHP 8
L Paginazione file evitare di inserire questi \ o altro nella get PHP 1
Shyson Evitare che la pagina si ricarichi jQuery 7
Z evitare il download diretto di file PHP 2
asevenx evitare inserimento dati già presenti in DataBase PHP 20
zerobit Evitare records duplicati nel database PHP 6
S urgentissimo necessità di script per evitare di far visualizzare immagini "rubate" Javascript 12
L invio multiplo e refresh pagina come evitare? PHP 3
A Evitare che una pagina sia accessibile digitando l'url PHP 2
R Evitare SPAM nelle tabelle DI MYSQL MySQL 6
T Evitare refresh pagina Javascript 7
riminese77 Evitare doppio click nelle pagine ASP.NET 5
alessandro1997 Evitare che span finisca sopra i bordi HTML e CSS 9
I Evitare inserimento dati in database con refresh PHP 5
max_400 Evitare lo scatto di fine foto e aumentare la velocità Flash 2
P [checkbox e className] evitare di richiamare più volte la stessa funzione Javascript 0
M Evitare i frames HTML e CSS 6
minatore evitare doppioni PHP 9
I Come evitare che il preload compaia 2 volte? Flash 1
G Come evitare in Excel messaggio per apertura pdf? Windows e Software 2
G Stampante canon: evitare il taglio nel caricare? Hardware 0
T come evitare file ldb Database 4
I Menu in flash è da evitare? SEO e Posizionamento 2
E modifica js per evitare il blank Javascript 0
P Help filtraggio input...Evitare caratteri Javascript 0
B Evitare i motori di ricerca HTML e CSS 2
B Evitare che explorer blocchi pulsanti flash Flash 3
A Controllo per evitare inserimenti di spazi Javascript 1
M Evitare blocco pop-up Classic ASP 0
P evitare la scrittura in un campo Javascript 5

Discussioni simili