- Home
- Categorie
- Coding e Sistemistica
- PHP
- Attuali e trasferiti
-
Attuali e trasferiti
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>";[/PHP]
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>";
?>[/PHP]
Grazie!
-
Resto basito...perchè mai i due script si dovrebbero comportare in maniera differente??? Solo perchè hai cambiato nome ad alcune variabili!?!?!?!?! Sono perplesso.
-
Scusami ma come dovrei farlo allora? Non sono di certo un esperto di php...mi limito a diventare un easyphp
Grazie in ogni caso
-
Immagino che tu abbia una tabella clienti nella quale vi sia una colonna che discrimina l'attualità o meno di un cliente. A questo punto i clienti attuali sono quelli che hanno quella colonna valorizzata con un particolare valore, mentre i clienti totali sono tutti quelli contenuti nella tabella clienti.
Comunque ti consiglio di leggerti un buon manuale in cui vengano descritte le basi concettuali prima ancora delle funzioni e delle istruzioni PHP e MySQL.
-
Grazie, sì sì la tabella ce l'ho...ma quindi ho compilato male?
-
@Fabrizio23 said:
Grazie, sì sì la tabella ce l'ho...ma quindi ho compilato male?
??? che significa "ho compilato male" ???
-
L'ho scritto male lo script? Ragazzi per favore c'è qualcuno che può farmi capire l'errore?
Grazie!
-
Ciao Fabrizio23,
hai 2 pagine che dovrebbero restituire dati diversi - perchè hanno scopi diversi - ma che hai creato alla stessa maniera.Se la clienti totali esegue la stessa Query (istruzione SQL) dell'altra pagina
è ovvio che otterrai lo stesso risultato.Sicuramente in quella tabella ci sarà un campo che discrimina lo stato di un cliente, ed è proprio giocando su quel campo che otterrai risultati diversi con query diverse.
Devi trovare il modo di utilizzare il campo discriminatorio in modo da utilizzare quella tabella per scopi diversi.
[php]
NOME RUOLO ETA
mirko attacco 34
luca difesa 33Giocatori totali : select * from tabella_giocatori
Attaccanti: select * from tabella_giocatori where ruolo='attacco'
[/php]Vedi,
la tabella è sempre la stessa, ma 'giocando' sulle condizioni dei campi riesco ad utilizzare la stessa tabella per scopi diversi: trovo solo gli attaccanti o i difensori ecc...Spero ti sia più chiaro
Ciao
-
Grazie per la risposta...ma questo anche se ho due tabelle?
Le ho modificate così...con due query...ma non và...stò cercando di capire...il tuo esempio sarebbe valido se avessi solo una tabella giusto?
Ti posto lo script modificato:
Pagina clienti_totali.php
[php]
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_cliente 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 clientiecho "<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>";
?>[/php]
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'"); [/php]
Grazie per la pazienza!!!
-
Mi dà questo:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\pazienti_totali.php on line 38
Notice: Undefined variable: inserimento_dati_pazienti in c:\programmi\easyphp1-8\www\pazienti_totali.php on line 39
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\pazienti_totali.php on line 45
-
Ciao Fabrizio23,
hai scelto di avere due tabelle con la replica dei dati?Può essere una soluzione,
a mio parere a questo livello non è conveniente.Comunque,
fino a che $query3 non le dai un significato (così non serve ad una mazza )
non potranno avere un gran significato le descrizioni degli errori .Completa il codice e poi ne riparliamo.
Ciao
-
Non pensavo ad UNION, io avevo provato con AND...
[php]$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");[/php]
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_clienti 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 45Grazie!
-
Ciao,
per quanto riguarda gli errori e warning che ti segnala,
solitamente in compilatore PHP da riferimenti corretti alla linea dell'errore.Se a te sembra che in quelle righe di codice non ci siano errori,
allora probabilmente l'errore è dovuto a oggetti o variabili che utilizzi in quel punto.Risali la catena fino a che non trovi la causa dell'errore.
Ciao
Buon Lavoro
-
Sì sò che l'errore è nella variabile clienti_totali...ma non sò risolverlo.
Tu puoi darmi una mano per favore?
-
Prova a postare il codice riassuntivo di come inizializzi, usi, modifichi la variabile, provo a darci un'occhiata.
Prima però hai provato le query singolarmente?
Almeno possiamo dare per scontato che i problemi siano solo all'interno del codice PHP.A dopo,
ciao
-
Grazie per la risposta! Gli unici due codici sono postati più sù...è la variabile clienti_totali che sò che è sbagliata ma non sò come fare...non ho altri codici...giuro che stò sfogliando, cercando, pensando fino a tarda notte come puoi vedere ma non riesco...sigh!
-
Ciao,
dunque se questo codice è ancora valido:
[php]
$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>";
}
[/php]Direi che $clienti_totali è un valore numerico (somma delle righe di 2 tabelle) ma nel ciclo while poi lo utilizzi come fosse un recordSet, cioè lo utilizzi per estrarre i campi del record in canna.Forse nel ciclo dovresti utilizzare $totali?
Ciao
-
Ciao Mirko!
Ho provato...ma nulla mi dà sempre 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
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
-
[...]
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
alla funzione mysql_num_rows() è stato passato un argomento non valido!!! Essa si aspetta il resultset di una query, ma evidentemente non gli è stato passato ciò.
Ciò significa che le variabili $query1 e $query2 non sono resultset validi per cui l'unica spiegazione è che le query non sono andate a buon fine.Capisco le richieste di aiuto, ma almeno metteteci un po' del vostro, basta leggere a volte per capire il problema.