Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    incrementare valore ritornato da query

    Ciao, ho un problema dovuto al fatto che sto ancora imparando ad usare il php.
    Ho questa funzione:

    Codice PHP:
    function playCount($id$cat) {
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'";
            
    $res mysql_query($sql);
            
    $res = (int)
            
    $res $res+1;
            echo 
    $res;
        } 
    in pratica seleziona un campo del db di tipo int(10) e lo incrementa di 1.
    Ho notato che il risultato della query ($res) è di tipo "resource": quindi lo converto in intero --> $res = (int)
    L'echo pero mi stampa un valore sbagliato, sembra che prenda il valore 10 e ci aggiunga 1, stampando 11.
    Dato che il valore di ContatorePartite inizialmente è 0, ovviamente mi aspetterei che l'echo stampi 1.
    Dove sbaglio?

    grazie!
    Prenditi una pausa con i giochi free! sono gratuiti, divertenti e tutti online!

  2. #2
    vedi se va bene:
    Codice PHP:
     function playCount($id$cat) {
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'";
            
    $res mysql_query($sql);
            
    $fetch=mysql_fetch_array($res);
           
    $fetch['ContatorePartite']++; 
            echo 
    $fetch['ContatorePartite'];
        } 

  3. #3
    mm no, qui restituisce questo errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Prenditi una pausa con i giochi free! sono gratuiti, divertenti e tutti online!

  4. #4
    scusami mi ero dimenticato il valore,vedi se adesso va:
    Codice PHP:
    function playCount($id$cat) { 
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'"
            
    $res mysql_query($sql); 
            
    $fetch=mysql_fetch_array($res); 
            
    $r=$fetch['ContatorePartite']; 
    $r++;
            echo 
    $r;
        } 

  5. #5
    quasi.
    L'ho modificata e ora funziona:

    Codice PHP:
    function playCount($id$cat) {
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'"
            
    $res mysql_query($sql);
            
    $res mysql_fetch_array($res);
            
    $res $res["0"];
            
    $res++;
            echo 
    $res;

    Prenditi una pausa con i giochi free! sono gratuiti, divertenti e tutti online!

  6. #6
    non capisco $res["0"],ilcampo ContatorePartite come hai descritto dovrebbe avere valore 0,quindi incrementandolo lo porti a valore 1.quando fai l'echo $r che valore ti da?

  7. #7
    Codice PHP:
    function playCount($id$cat) {
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'";
            
    $res mysql_query($sql);
            
    // SE la query non restituisce nulla allora la categoria non esiste.
            
    if(mysql_num_rows($res) == 0){
                 return 
    false;
            }
            
    $res mysql_fetch_array($resMYSQL_ASSOC);
            
    $contatore = (int) $res["ContatorePartite"];
            
    $contatore $contatore 1;
            return  
    $contatore;
    }

    // Utilizzo
    $contatore playCount($id$cat);
    if(!
    is_null($contatore)){
       echo 
    $contatore;

    La funziona che ti ho corretto a modo mio stampa il contatore partite attuale sommato di 1.
    Ovviamente se vuoi che l'incremento sia aggiornato ad ogni istanza devi anche aggiornare il contatore eseguendo una UPDATE subito dopo l'incremento.

    Il codice non l'ho provato.
    FAmmi sapere.
    Vincenzo Miele

  8. #8
    $res["0"] serve a prendere il primo valore dell'array $res, visto che mysql_fetch_array crea un array con tutti i risultati della queryi: nel nostro caso c'e' un unico risultato, intercettato quindi da $res["0"];

    ho aggiunto anche l'update, che pero' fa qualcosa di strano: sembra che la funzione venga richiamata all'infinito, perchè il contatore continua ad incrementarsi no-stop!!

    Codice PHP:
        function playCount($id$cat) {
            
    $sql "SELECT ContatorePartite FROM partite WHERE id=$id AND Categoria='$cat'";
            
    $res mysql_query($sql)
                or 
    $this->Error("query non valida: $sql");    
            
    $res mysql_fetch_array($res);
            
    $res $res["0"];
            
    $res++;
            
            
    $sql2 "UPDATE partite SET ContatorePartite = $res WHERE id=$id AND Categoria='$cat'";
            
            
    $res mysql_query($sql2)
                or 
    $this->Error("query non valida: $sql2");
        } 
    come mai??
    puo' essere dovuto al fatto che la pagina contiene un filamto flash? (l'ho tirata grossa! )

    grazie
    Prenditi una pausa con i giochi free! sono gratuiti, divertenti e tutti online!

  9. #9
    Divento matto!
    Come mai continua ad incrementarsi senza che aggiorni la pagina?? :master:
    Prenditi una pausa con i giochi free! sono gratuiti, divertenti e tutti online!

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.