• User Attivo

    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!


  • User

    Resto basito...perchè mai i due script si dovrebbero comportare in maniera differente??? Solo perchè hai cambiato nome ad alcune variabili!?!?!?!?! Sono perplesso.


  • User Attivo

    Scusami ma come dovrei farlo allora? Non sono di certo un esperto di php...mi limito a diventare un easyphp 😄

    Grazie in ogni caso 😉


  • User

    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.


  • User Attivo

    Grazie, sì sì la tabella ce l'ho...ma quindi ho compilato male?


  • User

    @Fabrizio23 said:

    Grazie, sì sì la tabella ce l'ho...ma quindi ho compilato male?

    ??? che significa "ho compilato male" ???


  • User Attivo

    L'ho scritto male lo script? Ragazzi per favore c'è qualcuno che può farmi capire l'errore?

    Grazie! 🙂


  • User Attivo

    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 33

    Giocatori 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


  • User Attivo

    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 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>";
    ?>[/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!!!


  • User Attivo

    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


  • User Attivo

    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 :lipssealed:)
    non potranno avere un gran significato le descrizioni degli errori .

    Completa il codice e poi ne riparliamo.

    Ciao


  • User Attivo

    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 45

    Grazie!


  • User Attivo

    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


  • User Attivo

    Sì sò che l'errore è nella variabile clienti_totali...ma non sò risolverlo.
    Tu puoi darmi una mano per favore?


  • User Attivo

    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


  • User Attivo

    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!


  • User Attivo

    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


  • User Attivo

    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


  • User

    [...]

    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.