Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: problema query

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    38

    problema query

    ciao a tutti, ho problemi con la seguente query;

    $sql7="SELECT * FROM nuke_users WHERE user_id = (SELECT Max(user_id) FROM nuke_users)";
    $result7=mysql_db_query($dbname,$sql7,$db)or die ("Errore nella esecuzione della query");
    $row7=mysql_fetch_array($result7);
    echo " &ultimo= ".rawurldecode($row7[username]);

    Questa funge perfettamente in locale (win 2000 con easyphp) mentre non funge in remoto su server linux.

    Cosa sbaglio?

  2. #2
    Forse la versione di mysql che non supporta le sub-queries


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    38

    non credo

    ciao ho provato anche a fare questa query ma nulla, mentre in locale funge.;

    $sql7="SELECT Max(user_id) FROM nuke_users";
    $result7=mysql_db_query($dbname,$sql7,$d
    b)or die ("Errore nella esecuzione della query");
    $row7=mysql_fetch_array($result7);
    echo " &ultimo= ".rawurldecode($row7[username]);

  4. #4
    Ma hai un errore oppure nulla???

    aggiungi la segnalazione di errore di php alla tua stringa nel DIE()

    mysql_error()

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    L'ultima query e' naturale non renda nulla. Sbagli a prelevare il dato estratto. ti rende solo il max id e dovresti metterci l'alias oppure il numero del campo.

    e poi l'uso di mysql_db_query e' deprecato da almeno un paio di anni.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    38

    ok

    non mi da nessun errore, in pratica io richiamo il file php e non mi estrapola il valore che io cerco.
    La connessione al db avviene senza errori infatti nel file ci sono altre connessioni allo stesso db e vanno bene.
    allego il file intero.

    riesco a recuperare tutti i valori tranne l'ultimo.



    $host="121.232.12.1";
    $user="we3we3";
    $pass="";
    $dbname="prova";

    $anno = date(Y);
    $mese = date(n);
    $giorno = date(j);
    $ora =date(G);

    $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database");

    // Connessioni giorno corrente
    $sql1="SELECT * FROM nuke_stats_date WHERE year = $anno and month = $mese and date = $giorno";
    $result1=mysql_db_query($dbname,$sql1,$db)or die ("Errore nella esecuzione della query");
    $row1=mysql_fetch_array($result1);
    echo "&Oggi= ".rawurldecode($row1["hits"]);

    // Connessioni ieri
    $sql2="SELECT * FROM nuke_stats_date WHERE year = $anno and month = $mese and date = ($giorno-1)";
    $result2=mysql_db_query($dbname,$sql2,$db)or die ("Errore nella esecuzione della query");
    $row2=mysql_fetch_array($result2);
    echo " &ieri= ".rawurldecode($row2["hits"]);

    // Connessioni mese corrente
    $sql3="SELECT * FROM nuke_stats_month WHERE year = $anno and month = $mese";
    $result3=mysql_db_query($dbname,$sql3,$db)or die ("Errore nella esecuzione della query");
    $row3=mysql_fetch_array($result3);
    echo " &Mesecorrente= ".rawurldecode($row3["hits"]);

    // Connessioni mese corrente
    $sql4="SELECT * FROM nuke_stats_month WHERE year = $anno and month = $mese-1";
    $result4=mysql_db_query($dbname,$sql4,$db)or die ("Errore nella esecuzione della query");
    $row4=mysql_fetch_array($result4);
    echo " &Mesepassato= ".rawurldecode($row4["hits"]);

    // Connessioni anno in corso
    $sql5="SELECT * FROM nuke_stats_year WHERE year = $anno ";
    $result5=mysql_db_query($dbname,$sql5,$db)or die ("Errore nella esecuzione della query");
    $row5=mysql_fetch_array($result5);
    echo " &Annoincorso= ".rawurldecode($row5["hits"]);

    // Connessioni ora corrente
    $sql6="SELECT * FROM nuke_stats_hour WHERE year = $anno and month = $mese and date = $giorno and hour =$ora";
    $result6=mysql_db_query($dbname,$sql6,$db)or die ("Errore nella esecuzione della query");
    $row6=mysql_fetch_array($result6);
    echo " &Oracorrente= ".rawurldecode($row6["hits"]);

    // Ultimo iscritto

    $sql7="SELECT * FROM nuke_users WHERE user_id = (SELECT Max(user_id) FROM nuke_users)";
    $result7=mysql_db_query($dbname,$sql7,$db)or die ("Errore nella esecuzione della query");
    $row7=mysql_fetch_array($result7);
    echo " &ultimo= ".rawurldecode($row7[username]);



    mysql_close();
    ?>

  7. #7
    si torna al discorso di prima. qual'e' la versione del mysql sul tuo pc e quale su linux... ???

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    38

    non lo so

    Ciao e grazie per la tua disponibilita', non so che versione ho io so solamente che ho installato easyphp 1.8

    Inoltre ho notato che mentre la seguente query non va

    $sql7="SELECT Max(user_id) FROM nuke_users";
    $result7=mysql_db_query($dbname,$sql7,$d

    b)or die ("Errore nella esecuzione della query");
    $row7=mysql_fetch_array($result7);
    echo " &ultimo= ".rawurldecode($row7[username]);


    Questa invece va benissimo

    $sql7="SELECT user_id FROM nuke_users";
    $result7=mysql_db_query($dbname,$sql7,$d

    b)or die ("Errore nella esecuzione della query");
    $row7=mysql_fetch_array($result7);
    echo " &ultimo= ".rawurldecode($row7[username]);


    in pratica l'unica differenza sta nella parola max.

    Approfitto della tua gentilezza per esporti il mio problema che forse essendo poco pratico di php e mysql lo sto affrontando nel modo sbagliato.

    Io dovrei estrarre dalla tabella nuke_user il nome dell'ultimo utente iscritto contenuto nella colonna user_id e per fare questo (in locale) prima estraevo in locale dalla tabella user_id il massimo numero (ecco perche' la parola max) e poi tramite questo valore estraevo il nome dell'utente.

    Esiste un modo piu' elegante?

    Ciao

  9. #9
    Per essere elegante lo e'. Non lo e' mysql_db_query come gia' detto.

    mi meraviglia come possa funzionare una cosa del genere:

    codice:
    $sql7 = "SELECT user_id FROM nuke_users"; 
    
    $result7 = mysql_db_query($dbname, $sql7,$db)
               or die ("Errore nella esecuzione della query"); 
    
    $row7 = mysql_fetch_array($result7); 
    
    echo " &ultimo = ".rawurldecode($row7[username]); 
    perche' usi rawurldecode() NON lo voglio sapere. Ma ti rendi conto che estrai "user_id" e stampi "username" ??? ma anche qui non voglio sapere il perche'.

    Se vuoi estrarre l'ultimo iscritto puoi fare la query seguente:
    codice:
    $sql7 = "SELECT username FROM nuke_users
             order by user_id DESC
             LIMIT 1 ";
    Se usi MAX(user_id) devi attribuire un alias.
    codice:
    $sql7 = "SELECT MAX(user_id) as ultimo 
             FROM nuke_users
             ";
    ma questo ti estrae il numerello id, non il nome.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    38

    grazie

    grazie per la risposta, provero' subito, grazie ancora.

    Ciao

    ps. Gentilissimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.