Totali e attuali

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao! Dove sbaglio?

Ho la pagina clienti_attuali che funziona perfettamente

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati ORDER BY cognome");

$inserimento_dati=mysql_num_rows($query);
$clienti_trasferiti=mysql_num_rows($query);
$clienti_attuali=mysql_num_rows($query);
$clienti_attuali=$inserimento_dati-$clienti_trasferiti;

echo "<table>";

while($attuali=mysql_fetch_array($query)){
$cognome=$clienti_attuali['cognome'];
$nome=$clienti_attuali['nome'];
$data_di_nascita=$clienti_attuali['data_di_nascita'];
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>";
}
echo "</table>";

E la pagina clienti_totali che non si aggiorna...si comporta come i clienti_attuali

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati ORDER BY cognome");

$inserimento_dati=mysql_num_rows($query);
$clienti_trasferiti=mysql_num_rows($query);
$clienti_totali=mysql_num_rows($query);
$clienti_totali=$inserimento_dati+$clienti_trasferiti;



echo "<table>";

while($totali=mysql_fetch_array($query)){
$cognome=$clienti_totali['cognome'];
$nome=$clienti_totali['nome'];
$data_di_nascita=$clienti_totali['data_di_nascita'];
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>";
}
echo "</table>";
?>

Grazie!
 
Ultima modifica:

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
La seconda pagina dovrebbe comportarsi differentemente solo perchè hai cambiato il nome alle variabili??? Interessante.
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
La seconda pagina dovrebbe comportarsi differentemente solo perchè hai cambiato il nome alle variabili??? Interessante.
E' stato cambiato anche il valore assegnato a $clienti_totali rispetto a $clienti_attuali (un + anziché un -).

Ho alcuni osservazioni da fare per farti risolvere il problema.
PHP:
$inserimento_dati=mysql_num_rows($query); 
$clienti_trasferiti=mysql_num_rows($query); 
$clienti_totali=mysql_num_rows($query); 
$clienti_totali=$inserimento_dati+$clienti_trasferiti;
Lanci la query (riga 1)(la stessa di prima), quindi otterrai lo stesso numero di record in $clienti_trasferiti (riga 2). Riesegui la query per sapere di nuovo quanti record hai e sarà lo stesso valore che ora assegni a $clienti_totali (riga 3). Poi sommi questi due valori e lo metti nella variabile $clienti_totali (riga 4), quindi cancelli il valore di prima e ora hai il doppio di record ottenuti.

Nell'altro caso il valore che otterresti è 0.
Forse è meglio che ci spieghi che cosa vuoi ottenere così ti diamo le due query e le giuste assegnazioni di variabili.
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Grazie programmatore!

Ho una lista clienti...questi clienti vengono trasferiti...

Quando vengono trasferiti mi ritrovo con la lista clienti - la i clienti trasferiti.

Allora ho messo quelle query con (lista clienti+trasferiti) in modo tale da farmi dare tutti i clienti che in ogni modo sono passati da me.

Spero di essermi spiegato...

Grazie!

Ciao!
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
La cosa la risolvi in due possibili modi:
- hai 2 tabelle (una con i clienti attuali e l'altra con i clienti trasferiti). In questo caso nella seconda query devi usare l'altra tabella (se hanno formato abbastanza simile ti basterebbe cambiare il nome della tabella). Non credo sia questo il caso perché altrimenti il primo elenco sarebbe parziale e invece mi sembra di capire che vada bene;
- hai solo 1 tabella (in questo caso devi avere un campo che ti permetta di distinguere le 2 tipologie di clienti). Qui si tratta di cambiare la seconda query (dato che la prima è di tutti i clienti).
dovresti quindi aggiungere prima dell'ORDER BY la condizione che ti fa capire quali sono i clienti trasferiti, es.
WHERE trasferito=1
oppure
WHERE condizione='traseferito'
o roba simile. Dipende chiaramente da come si chiama il campo e cosa viene scritto al suo interno.
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
La cosa la risolvi in due possibili modi:
- hai 2 tabelle (una con i clienti attuali e l'altra con i clienti trasferiti). In questo caso nella seconda query devi usare l'altra tabella (se hanno formato abbastanza simile ti basterebbe cambiare il nome della tabella). Non credo sia questo il caso perché altrimenti il primo elenco sarebbe parziale e invece mi sembra di capire che vada bene;
- hai solo 1 tabella (in questo caso devi avere un campo che ti permetta di distinguere le 2 tipologie di clienti). Qui si tratta di cambiare la seconda query (dato che la prima è di tutti i clienti).
dovresti quindi aggiungere prima dell'ORDER BY la condizione che ti fa capire quali sono i clienti trasferiti, es.
WHERE trasferito=1
oppure
WHERE condizione='traseferito'
o roba simile. Dipende chiaramente da come si chiama il campo e cosa viene scritto al suo interno.
Ciao! Scusa se ti rompo...
Ho due tabelle nel db: INSERIMENTO DATI CLIENTI (dove vanno tutti i clienti fissi, ma diventano mobili dal momento in cui li trasferisco...e il trasferimento funziona) e TRASFERIMENTO (dove vanno i clienti trasferiti).

Ho provato a seguire quello che mi hai detto ma non ci sono riuscito...:hammer:

Che ho combinato?

Pagina clienti_totali.php
PHP:
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_clienti ORDER BY cognome");//mi dà i dati della tabella clienti fissi(mobili per il trasferimento)
$query2=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");//mi dà i dati della tabella dove vanno i clienti trasferiti
$query3=mysql_query("");//la devo fare, che ci devo mettere?


$inserimento_dati_clienti=mysql_num_rows($query1);
$trasferimento=mysql_num_rows($query2);
$clienti_totali=mysql_num_rows($query3);
$clienti_totali=$inserimento_dati_clienti+$trasferimento;//sommo i clienti fissi(mobili per il trasferimento) con i clienti trasferiti, in modo tale che io abbia un elenco totale dei clienti





echo "<table>";

while($clienti_totali=mysql_fetch_array($query3)){
$cognome=$clienti_totali['cognome'];
$nome=$clienti_totali['nome'];
$data_di_nascita=$clienti_totali['data_di_nascita'];
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>";
}
echo "</table>";
?>

Pagina trasferimento.php (che funziona)

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");
$trasferimento=mysql_num_rows($query);

$id_cl=$trasferimento['id_cl'];
$cognome=$trasferimento['cognome'];
$nome=$trasferimento['nome'];
$data_di_nascita=$trasferimento['data_di_nascita'];


$id_cl=htmlspecialchars($_GET['id_cl']); 
$query1=mysql_query("SELECT * FROM inserimento_dati_clienti WHERE id_cl='$id_cl'");
$inserimento_dati=mysql_fetch_array($query1);

$cognome=$inserimento_dati_clienti['cognome']; 
$nome=$inserimento_dati_clienti['nome']; 
$data_di_nascita=$inserimento_dati_clienti['data_di_nascita']; 

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')"; 
$inserisci_in_ball=mysql_query($query2); 

$query3=mysql_query("DELETE FROM inserimento_dati_clienti WHERE id_cl='$id_cl'");

Grazie per la pazienza!!!

Notte vado a nanna! :dormo:
 
Ultima modifica:

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ahhhh con UNION veroooooooo ed io che pensavo ad AND :hammer::hammer::hammer: Grazie programmatore gentilissimo!!!

Solo che mi dà questi warning

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 38

Notice: Undefined variable: inserimento_dati_cliente in c:\programmi\easyphp1-8\www\clienti_totali.php on line 39

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 45


Grazie! :fonzie:
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, potrei sbagliarmi ma il tutto mi sembra un poco ridondante
con la
$inserimento_dati_clienti=mysql_num_rows($query1);
ottieni il numero di record della tabella "inserimento_dati_clienti"

con
$trasferimento=mysql_num_rows($query2);
ottinei il numero di record della tabella "trasferimento"

con la somma
$clienti_totali=$inserimento_dati_clienti+$trasferimento;
ottieni il numero di record totali

p.s.
dato che le selec ti servono per avere il numero di record penso che ORDER BY cognome non dovrebbe servire

con
$query3=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_clienti ORDER BY cognome UNION SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");
e
$clienti_totali=mysql_num_rows($query3);
ottieni il numero di record totali

quindi o non ti sevre la somma o non ti serve la query3
 
Ultima modifica:

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao borgo!

Ho provato così, togliendo la somma e lasciando la query..solo che nel ciclo while che variabile devo metterci?

PHP:
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_clienti");//mi dà i dati della tabella clienti fissi(mobili per il trasferimento)
$query2=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento");//mi dà i dati della tabella dove vanno i clienti trasferiti
$query3=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_clienti UNION SELECT cognome, nome, data_di_nascita FROM trasferimento");


$inserimento_dati_clienti=mysql_num_rows($query1);
$trasferimento=mysql_num_rows($query2);





echo "<table>";

while($clienti_totali=mysql_fetch_array($query3)){
$cognome=$clienti_totali['cognome'];
$nome=$clienti_totali['nome'];
$data_di_nascita=$clienti_totali['data_di_nascita'];
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>";
}
echo "</table>";
?>

Mi dà:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 45


Qui invece ho tolto la terza query e ho lasciato la somma:

PHP:
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_cliente");//mi dà i dati della tabella clienti fissi(mobili per il trasferimento)
$query2=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento");//mi dà i dati della tabella dove vanno i clienti trasferiti



$inserimento_dati_cliente=mysql_num_rows($query1);
$trasferimento=mysql_num_rows($query2);
$pazienti_totali=$inserimento_dati_cliente+$trasferimento;//sommo i clienti fissi(mobili per il trasferimento) con i clienti trasferiti, in modo tale che io abbia un elenco totale dei clienti



echo "<table>";

while($clienti_totali=mysql_fetch_array($query)){
$cognome=$clienti_totali['cognome'];
$nome=$clienti_totali['nome'];
$data_di_nascita=$clienti_totali['data_di_nascita'];
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>";
}
echo "</table>";

Ma mi dà:

Notice: Undefined variable: query in c:\programmi\easyphp1-8\www\pazienti_totali.php on line 44

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 44

Sò che l'errore(almeno credo) è nella variabile $clienti_totali...ma non sò come fare...:hammer:

Grazie!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
1° script
nel
while($clienti_totali=mysql_fetch_array(????)){
devi mettere o $query1, se vuoi l'elenco dei record della tabella "inserimento_dati_clienti", o $query2, se vuoi l'elenco dei record della tabella "trasferimento"

2° script
tu fai due query la $query1 e la $query2, ma nel
while($clienti_totali=mysql_fetch_array($query)){
scrivi $query che non esiste, devi mettere o $query1 o $query2 (per come sopra)
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Grazie Borgo!
Nel primo script (quello dove ho 3 query) se metto ($query1) cioè inserimento_dati_cliente.php mi dà i clienti totali ma quelli trasferiti no (cioè clienti tutti i clienti eccetto quelli trasferiti) non considerando così la terza query (sommando cioè la tabella inserimento_dati_cliente.php con la tabella trasferimento.php).

Se metto ($query3) mi dà questo:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 38

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\clienti_totali.php on line 45


Se metto ($query2) mi dà solo i clienti trasferiti ovviamente...
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
La stessa cosa col secondo script, lancio una query sono in realtà non ho i clienti totali ma quelli attuali, perchè quelli del trasferimento non vengono richiamati.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per vedere l'elenco sia dei fisi che dei trasferiti (e numeri)

PHP:
//....................
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_cliente");//mi dà i dati della tabella clienti fissi(mobili per il trasferimento) 
$query2=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento");//mi dà i dati della tabella dove vanno i clienti trasferiti 

$inserimento_dati_cliente=mysql_num_rows($query1); //clienti fissi
$trasferimento=mysql_num_rows($query2); //clienti trasferiti
$pazienti_totali=$inserimento_dati_cliente+$trasferimento;//sommo i clienti fissi(mobili per il trasferimento) con i clienti trasferiti, in modo tale che io abbia un elenco totale dei clienti 

echo "<table>"; 
echo "<tr><td>ELENCO CLENTI</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
echo "<tr><td>n° clienti fissi</td><td>$inserimento_dati_cliente</td><td>&nbsp;</td></tr>";
echo "<tr><td>n° clienti trasferiti</td><td>$trasferimento</td><td>&nbsp;</td></tr>";
echo "<tr><td>n° clienti totali</td><td>$pazienti_totali</td><td>&nbsp;</td></tr>";
echo "<tr><td><b>clienti fissi</b></td><td>trasf</td><td>&nbsp;</td></tr>";
//scrivo l'elenco dei clienti fissi da query1
while($clienti_totali=mysql_fetch_array($query1)){ 
$cognome=$clienti_totali['cognome']; 
$nome=$clienti_totali['nome']; 
$data_di_nascita=$clienti_totali['data_di_nascita']; 
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>"; 
}
echo "<tr><td><b>clienti trasferiti</b></td><td>trasf</td><td>&nbsp;</td></tr>";
//e in coda i trasferiti da query2
while($clienti_totali=mysql_fetch_array($query2)){ 
$cognome=$clienti_totali['cognome']; 
$nome=$clienti_totali['nome']; 
$data_di_nascita=$clienti_totali['data_di_nascita']; 
echo "<tr><td>$cognome</td><td>$nome</td><td>$data_di_nascita</td></tr>"; 
}
echo "</table>";  
//..........................
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Grazie Borgo sei un grande :fonzie: :beer:

Ho letto bene il codice, però a titolo informativo, se io volessi fare una pagina e stampare la somma di tutti (sia fissi che trasferiti) si può fare?
Ho provato di tutto ma la somma non mi esce.

Tu hai suddiviso e se li volessi tutti insieme?

Intanto io provo a sperimentare con questo nuovo codice da te gentilmente suggerito.

Grazie ancora borgo, grazie di cuore!!! :fonzie:
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Perchè se scrivo echo "$clienti_totali" mi esce il numero totale dei clienti ma senza nominativo...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Perchè se scrivo echo "$clienti_totali" mi esce il numero totale dei clienti ma senza nominativo...
:confused: cosa intendi?
se scrivi
echo "$clienti_totali";
ti stampa quello che è contenuto in $clienti_totali

poi, perche continui a cambiare nome alle variabili?
qui mi dici "$clienti_totali" poi nello script trovo $pazienti_totali

Tu hai suddiviso e se li volessi tutti insieme? a che ti serve??? o sono di qua o sono di la, comunque eventualmente elimini un pezzo di tabella

dimenticavo, guarda che la somma del numero dei clienti totali c'è
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao! Intendo dire...noi abbiamo fatto così:

ELENCO CLIENTI
n° clienti fissi 5
n° clienti trasferiti 10
n° clienti totali 15

clienti fissi
Caprattoli Aldo
Malanno Geltrude
Maialino Cicciolo
Fonzie Aldo 24-7-21
Caprone Fabio 10-6-1970

clienti trasferiti
Bertolazzi Adelia
Panzone Aldo
Porcheddu Walter
Quadro Danilo
Quadro Danilo
Pillola Emilio
Quadro Danilo
Quadretti Aldo
Pillola Emilio
Pillola Emilio

Se io volessi:

ELENCO CLIENTI
n° clienti totali 15

clienti fissi+clienti trasferiti?

Basta eliminare un pezzo di codice? si penso proprio di sì...provo...
 

Discussioni simili