Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    TIMEDIFF problema esperssione

    Buongiorno a tutti vengo subito al dunque
    codice:
    <?
    $resultt = @mysql_query(" SELECT * FROM opmissiond WHERE pilota='$callsign'")
    or die('Query di inserimento fallita !');
    while ($row = mysql_fetch_array($resultt)) {
    
    	$timea  = $row["timea"];
    $timed  = $row["timed"];
    }
    $sql="SELECT TIMEDIFF ('$timea', '$timed') FROM opmissiond WHERE pilota='$callsign'";
    $result=mysql_db_query("Sql48725_5",$sql,$db);
    while ($row=mysql_fetch_array($result)) { 
    print("<A >".$row["0"]."</A>
    ");
    }
    ?>
    Sto usando questo codice per ottenere delle ore di volo trammite la differenza dell'ora di decollo a quella di arrivo, il problema sorge nell while....esattamente come supplied argument is not a valid MYSQL ....qualcuno saprebbe aiutarmi pper fare andare questa espressione GRAZIE
    Non COMMERCIAL only POTENTIAL

  2. #2
    Dovresti farne una sola di query. Passi delle variabili nella seconda query cercando dei dati nella tabella, quando questi dati gia' li hai.

    codice:
    $resultt = @mysql_query(" 
               SELECT TIMEDIFF(timea, timed)  
               FROM opmissiond 
               WHERE pilota='$callsign'")
    mysql_db_query e' deprecato. dovresti modificare in mysql_select_db() e mysql_query().

    Il while non serve perche' si presume un solo risultato nella tua seconda query.

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

  3. #3
    Scusa Piero.....ti ringrazio del tuo sempre cordiale aiuto..ho provato a fare quello che mi scrivi ma non riesco a ricavarne il risultato potresti darmi una stringa completa grazie mille
    Non COMMERCIAL only POTENTIAL

  4. #4
    Originariamente inviato da shakeland
    Scusa Piero.....ti ringrazio del tuo sempre cordiale aiuto..ho provato a fare quello che mi scrivi ma non riesco a ricavarne il risultato potresti darmi una stringa completa grazie mille
    si presume tu abbia mysql 4.1.x o > ....
    Per il risultato usa un campo alias per semplificare.
    codice:
    $$resultt = mysql_query(" 
                  SELECT TIMEDIFF(timea, timed)  as diff
                  FROM opmissiond 
                  WHERE pilota='$callsign'
    e poi il solito:
    codice:
    if(mysql_num_rows >= 1 ) {
    
    while ($row = mysql_fetch_assoc($resultt)) {
       echo "$row[diff] 
    ";
    }
    } else {  echo "Nessun dato. ";   }
    attento al fatto che essendo una differenza la data maggiore (piu' recente) va messa per prima.

    timediff(data_maggiore, data_minore)

    dai anche una occhiata alla pillola...

    http://forum.html.it/forum/showthrea...hreadid=839754

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

  5. #5
    Grazie come sempre..
    vengo pero al problema.......nella mia tabella devo calcolare la differenza per ogni singolo volo e nello script che mi hai passato non mi da risultato cioè mi passa la stringa .....nessun dato

    ho provato a verificare con echo e in effetti non mi vengono passati i dati mi resta il codice cosi:

    SELECT TIMEDIFF(timea, timed) as diff FROM opmissiond WHERE pilota='prova'
    Non COMMERCIAL only POTENTIAL

  6. #6
    Originariamente inviato da shakeland
    Grazie come sempre..
    vengo pero al problema.......nella mia tabella devo calcolare la differenza per ogni singolo volo e nello script che mi hai passato non mi da risultato cioè mi passa la stringa .....nessun dato

    ho provato a verificare con echo e in effetti non mi vengono passati i dati mi resta il codice cosi:

    SELECT TIMEDIFF(timea, timed) as diff FROM opmissiond WHERE pilota='prova'
    Guarda che sto parlando al buio perche' non conosco i contenuti della tua tabella. Presumo che i campi delle date siano DATETIME altrimenti come potresti calcolare i giorni? Nessun dato significa che non hai record che corrispondono a pilota='$callsign' come richiesto nel where.

    Prova a fare la stessa query senza la condizione WHERE e vedi cosa ti stampa. Togli la chiocciola davanti alla funzione mysql_query() e metti la stampa dell'errore mysql_error().

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

  7. #7
    scusa hai ragione ....ma ad ogni modo il dato per la condizione ora con qualche aggiustatina me lo passa correttamente.
    eccone la prova echo:
    SELECT TIMEDIFF('12:40:00', '10:30:00') as diff FROM opmissiond WHERE pilota='prova'

    dove prova effettivamente è il nome del pilota!!!!!
    ...,il problema pero resta ...nel db i campi sono TIME...
    e il riultato della tua query è ......nessun dato
    Non COMMERCIAL only POTENTIAL

  8. #8
    Originariamente inviato da shakeland
    scusa hai ragione ....ma ad ogni modo il dato per la condizione ora con qualche aggiustatina me lo passa correttamente.
    eccone la prova echo:
    SELECT TIMEDIFF('12:40:00', '10:30:00') as diff FROM opmissiond WHERE pilota='prova'

    dove prova effettivamente è il nome del pilota!!!!!
    ...,il problema pero resta ...nel db i campi sono TIME...
    e il riultato della tua query è ......nessun dato
    ti ripeto ... togli la condizione where.

    Se passi all'ELSE significa che e' falso che mysql_num_rows() sia >= 1 e quindi significa nessuna riga estratta. Il che e' diverso dall'essere vuoto il campo diff.

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

  9. #9
    mi sta venendo il dubbio che tu continui a fare le due queries iniziali. Devi farne una sola. Se passi tu i valori a timediff non devi mettere ne' tabella ne' condizioni.

    SELECT TIMEDIFF('12:40:00', '10:30:00') as diff

    e null'altro. Ci sara' una sola riga estratta. Meglio che posti il codice che stai usando.

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

  10. #10
    mi spiace rompreti ma il problema rimane...
    codice:
    $result = mysql_query(" 
                  SELECT TIMEDIFF('$timea', '$timed')  as diff
                  FROM opmissiond 
                ");
    			  if(mysql_num_rows >= 1 ) {
    
    while ($row = mysql_fetch_assoc($result)) {
       echo "$row[diff] 
    ";
    }
    } else {  echo "Nessun dato. ";   }



    risultato sempre nessun dato!!!!!!
    Non COMMERCIAL only POTENTIAL

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