- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Sql]Relazioni tra Tabelle
-
[Sql]Relazioni tra Tabelle
Salve a tutti, dopo tanto tempo di inattività in questo settore ho deciso di dare una ripassata alle mie conoscenze in SQL/PHP e con mio rammarico, mi sono accorto che ricordo molto meno di quanto pensassi
Quindi qual buon metodo per rinfrescarsi la memoria se non quello di mettersi subito al lavoro?
Seguendo un esigenza quotidiana ho deciso di realizzare una piccola applicazioni in PHP per la gestioni delle entrate e delle uscite monetarie mensili.Ma veniamo al dunque, l'applicazione finita sarà strutturata nella seguente maniera:
- 1 Pagina che mi consentirà di scegliere il tipo di operazione da fare (Inserimento_Accrediti,Inserimento_Spese,Riepilogo_Conto)
- 1 Pagina per l'inserimento degli accrediti (che possono essere 1 o più al mese)
- 1 Pagina per l'inserimento delle spese (acquisti o cose da pagare)
- 1 Pagina che mi mostrerà il saldo attuale e la lista degli accrediti e delle spese di ogni mese (Ma questa la vedrò con più calma dopo).
Ed ecco il mio primo problema:
Le tabelle
Ho pensato di sviluppare tutto su 2 tabelle:
La prima chiamata accrediti con le seguenti voci
id_accredito tipo_accredito data_accredito accredito mese(bho)
Id_uscita
data_spesa
oggetto_spesa
importo_spesa
mese(bho)Come metto in relazione le 2 tabelle? Ed inoltre è il caso di creare una terza tabella ? Grazie anticipatamente per l'aiuto e mi scuso se ho sbagliato sezione :)
-
Ciao wizard_86.
Beh, se non ho capito male non esiste una reale relazione tra le due tabelle, ovvero non c'è un campo della prima che sia richiamato nella seconda.
Puoi usare il comando UNION per ottenere tutte le righe di entrambe le tabelle:
SELECT * FROM tabella1 WHERE <condizione> UNION SELECT * FROM tabella2 WHERE <condizione> ```Una volta che ottieni questa risorse puoi sbizzarrirti come vuoi per ottenere saldo, progressivo, etc etc. ;) Facci sapere se risolvi. ;) EDIT: dimenticavo, i campi data li chiamerei semplicemente data in entrambe le tabelle ;)
-
Esatto non esiste una relazione reale tra le 2 tabelle ma solo perché non riesco ad individuare una possibile relazione.
Comunque accetto qualsiasi suggerimenti o soluzione alternativa.
-
La soluzione immagino sia quella che ti ho postato prima, utilizza UNION.
-
Ah ok, allora procederò in questo modo!
Se il topic resta aperto magari più avanti posto qualche bozza di lavoro da commentare e migliorare insieme!p.s. scusa per l'abbreviazione in stile sms
-
Il thread resterà aperto, se trovi la soluzione postala pure.....gioverà di certo anche ad altri utenti.
-
Se non riesci a trovare una relazione è perchè probabilmente non c'è...
Comunque io farei una tabella sola (si tratta di movimenti di denaro, ecco la relazione) e aggiungerei un campo 'tipo' con valore 'in' o 'out' - a quel punto puoi fare quello che vuoi con le varie somme, parziali etc.
HTH, ciao!
-
Salve a tutti, rieccomi!
In questi giorni sono stato molto impegnato e non ho dedicato molto tempo al mio progetto.
Ad oggi non ho ancora creato il database ma in compenso mi sono dedicato alla costruzione dei form di entrata e uscita.
Ecco qui il link del lavoro svolto fino ad ora:
[..]
-
Perchè mi è stato censurato il link?
Non era attivo e puntava su un dominio che utilizzo esclusivamente per le prove
Dove ho sbagliato?
-
Ciao wizard_86.
Il link è stato tolto perché come previsto dal regolamento non sono permessi link, anche inattivi, a propri siti, che tu lo usi per prove o altro non fa differenza, la regola va rispettata da tutti.
In alcuni casi lo si permette perché risulta essere l'unico modo per comprendere al meglio la problematica esposta dall'utente, la struttura nasce per aiutare chi ha un problema e studiarlo tutti insieme ;), ma solitamente si chiede approvazione al Mod di sezione o altri membri dello staff prima di proporre l'url, comunque inattiva.
In questo caso il link non era decisamente un elemento utile a capire la problematica, chiara nella sua esposizione e che credo si risolva con la soluzione che ti ho suggerito prima.
Immagino che comprenderai.
-
Ok, ma quindi come posso far vedere il mio lavoro ?
-
Quando avrai completato potrai postare il codice, se vorrai condividerlo con gli altri, nella sezione apposita Scripting e Risorse utili.
Magari puoi fare qualche screen da hostare per esempio su imageshack e mettere il link, inattivo, all'immagine.
-
Ho deciso di fare alcune modifiche al progetto (aggiungere altri campi per aumentare il dettaglio delle informazioni) ma adesso mi sono perso dietro un errore che non riesco a vedere/trovare
[php]
<?php
// recupero il valore da verificare dalla get
$tipoperazione = $_GET["operazione"];// richiamo l'array contenente i valori delle select require ("option.php"); require ("opt.php"); // controllo l'esito if (!$tipoperazione) { echo ("<br /><fieldset>"); echo ("<legend>Inserimento Accredito</legend>\n"); echo ("<h3>Errore di sistema</h3> ,".mysql_error()); echo ("Riprova...<br />\n"); echo ("</fieldset>"); } else {
?>
<script src="css/ajax.js" type="text/javascript"></script>
<fieldset>
<legend>Inserimento Accrediti</legend>
<form name="accredito" action="inserimento.php" method="post">
<table align="center">
<tr>
<td colspan="2" align="left">
Accredito: <input type="text" id="acc" name="acc" size="20" onBlur="VerificaAccredito()" /> €
</td><td><div id="vfc"> </div></td>
</tr>
<tr>
<td colspan="2"> </td><td> </td>
</tr>
<tr>
<td align="left">Data di Accredito:<br /></td><td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"> </td><td> </td>
</tr>
<tr>
<td colspan="2" align="left">
Giorno <select name="<?=$name?>giorno">
<?
for ($a=1;$a<=31;$a++){
if($a<10){$zero="0";}else{$zero="";}
?>
<option value="<? echo $zero.$a ?>"
<?if($giorno==$zero.$a){echo "selected";}?>>
<? echo $zero.$a ?>
</option>
<?
}
?>
</select>
Mese <select name="<?=$name?>mese">
<?
for ($indice=0;$indice<count($option);$indice++) {
echo ("<option value="$indice">$option[$indice]</option>\n");
}
echo ("</select>\n");
?>
Anno <select name="<?=$name?>anno">
<?
for ($a=2008;$a<=2020;$a++){
?>
<option value="<? echo $a ?>"
<?if($anno==$a){echo "selected";}?>>
<? echo $a ?>
</option>
<?
}
?>
</select><br />
</td><td> </td>
</tr>
<tr>
<td colspan="2" align="left">
Tipo Accredito: <select name="<?=$name?>tipoacc">
<?
for ($i=0;$indice<count($opt);$i++) {
echo ("<option value="$i">$opt*</option>\n");
}
echo ("</select>\n");
?>
</td><td> </td>
</tr>
<tr>
<td colspan="2" align="right"> </td>
<td>
<div class="buttons">
<button type="submit" class="positive">
<img src="/images/tick.png" alt=""/> Salva</button>
</div>
</td>
</tr>
</table>
</form>
</fieldset>
<?php
}
?>
[/php]In pratica non mi carica l'ultima select, guardando il codice su dw mi dice che ci sono dei tag sovrapposti ma non riesco a individuarli
-
suggerimenti?
-
Ciao wizard_86.
Prova a postare il risultato html della pagina, magari diventa tutto più chiaro.
-
Questo è il link al lavoro, per visualizzare il tipo di problema basta cliccare su accrediti
.....
-
Ciao Wizard_86.
Forse mi son spiegato male, ci riprovo:- apri da browser la pagina del tuo sito dove è presente quello script;
- visualizza il sorgente pagina (ovvero il risultato dello script)
- copia ed incolla all'interno dei tag [html ] [/html] il pezzo di codice interessato all'errore così possiamo provare ad esserti d'aiuto.