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

Discussione: errore in query

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    errore in query

    ciao a tutti.

    ho un codice di questo tipo:

    codice:
    $minuti_totali=$totale_ore->minuti_totale_lavorazione_x_progetto($id_progetto,"arredi");
    codice:
     function minuti_totale_lavorazione_x_progetto($id_progetto,$tipo) {
    
      include ('crm_tabelle.php');
    
      if($tipo=="pareti")         {
                                  $var="minuti_progettazione";
                                  }
            if($tipo=="arredi")         {
                                  $var="minuti_progettazione_arredi";
                                  }
       $qry = mysql_query("SELECT
             sum( ".$var.") as minuti_progettazione_totale
             FROM
             $database_utenti.$ufficio_pareti_lista_revisioni
             where
             id_progetto=$id_progetto
                                ");
    
                $connessione = mysql_connect ($host , $user, $password);
       while($row = mysql_fetch_array ($qry))    {
       $minuti=$row[minuti_progettazione_totale];
    
       return $minuti;
       }
     }
    che una volta eseguida dà il messaggio:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/linekit/htdocs/inc/crm_classi.php on line 746
    0(0)

    se notate il risultato è corretto 0 ma da errore. come mai?

    grazie
    Ale

  2. #2
    fai la connessione dopo la query. Non sperare nei miracoli...

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    ho provato ad inserire sopra la riga della connessione ma niente.
    sempre lo stesso errore

    non è che se sum da 0 salta fuori quell'errore?

  4. #4
    Originariamente inviato da pig_org
    ho provato ad inserire sopra la riga della connessione ma niente.
    sempre lo stesso errore

    non è che se sum da 0 salta fuori quell'errore?
    dopo la connessione devi anche scegliere il db

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    il db è già richiamato nella query

  6. #6
    Originariamente inviato da pig_org
    il db è già richiamato nella query
    metti la stampa degli errori dopo la query e prima del where. mysql_error()

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    ho risolto inserendo un

    else { return 0; }

  8. #8
    Originariamente inviato da pig_org
    il db è già richiamato nella query
    Veramente il DB si seleziona con la funzione mysql_select_db()


    Originariamente inviato da pig_org
    ho risolto inserendo un

    else { return 0; }
    Cioè, fammi capire, hai un errore e risolvi ignorandolo?

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    a parte il fatto che esegui un include di codice direttamente dentro un metodo ... ... .. ... ... .. .... ... ... .... booooooooooh e' come darsi la zappa sui piedi io eviterei.

    Imposterei un costruttore decente che esegua gli opportuni set[Attributo] con i dovuti controlli. Unitamente al fatto che la risorsa da te inclusa sarebbe meglio includerla nel chiamante e quindi passarla alla classe.

    Per il resto, e' tutto da rivedere.... perche' eseguire la connessione direttamente nel metodo ?
    Non e' meglio linkare un oggetto $connessione a creazione dell'oggetto che usi ?

    Secondo me devi rivedere bene la struttura di quella classe.

    codice:
    $minuti_totali=$totale_ore->minuti_totale_lavorazione_x_progetto($id_progetto,"arredi");
    In questo caso io userei delle classi statiche in modo che la chiamata sia pipu' chiara e la classe riusabile senza acrocchi interni.
    Inoltre secondo me e' tutto concettualmente sbagliato. I minuti non li calcoli, ma li estrai da 1 dato nel database, quindi piuttosto farei un "loader" per le entità ebbasta, se devi poi eseguire conteggi ti farai l'opportuno singleton calculator con gli opportuni metodi statici per i calcoli che devi eseguire. Gestita cosi' quella classe e' inutile.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    grazie dei suggerimenti ma...

    è una funzione molto vecchia che, per ha bisogno di qualche aggiustata perchè ho dovuto fare una serie di modifiche. (quella volta non usavo i set)

    la connessione e include sono degli adattamenti per il forum

    i minuti non possono essere calcolati ma estratti dal db; il responsabile di reparto li deve inserire a mano.

    cmq ho risolto.

    grazie sopratutto dei suggerimenti!!!

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.