Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    4

    Problema query Mysql 'valore variabile'

    Salve a tutti.
    Mi servirebbe una mano, prima di perdere definitivamente tutti i capelli

    Devo estrarre da diverse tabelle i dati che abbiano un "idvisita" maggiore di quello contenutto nella tabella controllo.

    il problema è che non riesco a passare il valire preso da 'controllo' alla query successiva.

    in pratica:
    codice:
    $visita= "select idvisita from controllo" ; 
    $controllovisita = mysql_query($visita); 
    $test = mysql_fetch_array($controllovisita); 
    $controllo_visita= $test['0']; 
    settype($controllo_visita, "int") ;
    trovato questo fantomatico numero e convertito in INT,
    dovrei usarlo per una select:
    codice:
    $query = mysql_query("select * from $table where idvisita > $controllo_visita");
    dove $table è il nome della tabella (dinamico, cambia di volta in volta) e $controllo_visita è il mio valore 'minimo' da prendere in considerazione.

    Il problema è proprio in quel valore,non riesco a farlo riconoscere dalla query.
    Ho provato apici singoli e doppi, parentesi, preghiere, imprecazioni, e prima dei sacrifici umani, umilmente, chiedo il vostro aiuto
    La cosa divertente è che la variabile è correttamente valorizzata, se la stampo a video mi da il valore giusto, ma la select non vuole saperne.
    Sto imparando php e mysql,li uso da circa un mesetto, ma una cosa così non mi era ancora capitata.
    Qualche idea?

  2. #2
    non so come sono strutturate le tabelle ma mi pare di capire che tu possa fare cosi

    select * from $table where idvisita > (select idvisita from controllo);

    è importante che la query tra parentesi ti torni un solo valore sennò ottieni un errore

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    4
    Ciao ilc0rv0, e grazie per la risposta.
    in effetti la soluzione da te proposta è ottimale,come ho fatto a non pensarci??
    resta comunque la curiosità....dov'era l'errore nell'usare una variabile?
    sto sviluppando una piccola applicazione, e di query simili ne ho usate parecchie,
    nessuna a dato mai problemi

    in ogni caso,
    Problema risolto

    Ti ringrazio tantissimo.

    Dade

  4. #4
    mah sinceramente non lo so

    $visita= "select idvisita from controllo" ;
    $controllovisita = mysql_query($visita);
    $test = mysql_fetch_array($controllovisita);
    $controllo_visita= $test['0'];
    settype($controllo_visita, "int") ;

    oltre al fatto che settype non serve (ma non penso possa dipendere da quello) a meno che non resetti la variabile tra l'ultima istruzione che ho reincollato io e la query non so proprio da cosa possa dipendere

    cmq prego :-)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Ahem... una condizione del tipo > select qualcosa richiede necessariamente che "select qualcosa" ritorni sempre e comunque UNA riga.

    Questo dipende dalla presenza di eventuali condizioni WHERE che ritornino "di sicuro" una singola riga, oppure bisogna usare limitazioni del genere MAX, MIN, oppure ORDER BY con LIMIT , > ANY e quant'altro etc.

  6. #6
    beh ovvio, per questo ho scritto:

    non so come sono strutturate le tabelle ma mi pare di capire che tu possa fare cosi
    ma visto che Dade31 aveva scritto che usava $controllo_visita, avevo dato per scontato che fosse univoco

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 © 2026 vBulletin Solutions, Inc. All rights reserved.