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

    Bug o sbaglio qualcosa? Come risolvo?

    Codice PHP:
    while($row=mysql_fetch_array($res)){                    
    $id=$row['id'];                    
    $var=query                    
    $r
    =mysql_query($var,$conn);                    
    if(
    $w=mysql_fetch_array($r)){                        
       
    $var1=$w['campo1'];                        
       
    $tvar2=$w['campo2'];                    
    }                   
    else{                        
       
    $var1=0;                        
       
    $var2=0;                    
    }                    
    if(
    $var1=="1"){                        
       
    $inserimento=valore;                    
    }                    
    else{                        
       
    $inserimento=altro valore;                    
    }                    
    $controllo="query'";                    
    $rc=mysql_query($controllo);                    
    $nc=mysql_num_rows($rc);                    
    if(
    $nc==0){                        
       
    $aggiorna="INSERT INTO tabella VALUES ('valori')";
       
    $resmysql_query($aggiorna$conn);                    
    }                    
    else{                        
       
    $aggiorna="UPDATE tabella SET valori";
       
    $resmysql_query($aggiorna$conn);                    
    }                

    Evito di mostrarvi i campi reali perchè del tutto inutile e ci metterei le ore a spiegarvi cosa fa realmente il mio script.

    La cosa strana è che se io commento i due $res= mysql_query($aggiorna, $conn);
    se faccio una stampa di prova mi stampa tutte quante le query $aggiorna.

    Se io tolgo i commenti e eseguo lo script così come lo vedete aggiorna solamente il primo campo. Cioè esce dal while appena dopo il primo ciclo. Gli altri sette non li fa.

    SOLUZIONI PROVATE
    Ho voluto provare a vedere se la query originale (while ecc è il risultato di una query fatta prima) restituisse 8 elementi. Ho fatto mysql_num_rows e mi restituisce 8. Quindi il while dovrebbe fare 8 cicli. Ne fa solo 1.

    Allora ho provato a fare una query multipla: Quindi ho fatto in modo che creassi una variabile di appoggio dove inserissi tutte le query separate dal punto e virgola. Se provo ad eseguire da console mi aggiorna tuttte e 8 le query, se provo a farlo da php mi da errore e non ne aggiorna neanche una.

    Qualcuno ha idea di come possa risolvere? Vorrei evitare di fare stampare la query e fare manualmente...

    PS: qualcuno ha capito il codice?
    Ultima modifica di AyeyeBrazorv; 04-02-2014 a 13:14

  2. #2
    Il problema non è trovare l'errore ma riscrivere da zero quell'obbrobrio di codice!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Ho risolto. Era davvero una cavolata. Ho dato lo stesso nome alle esecuzioni di query.

    $res era già la query interna della quale $row = mysql_fetch_array($res) estraeva i campi.

    Io dentro il ciclo while facevo $res=mysql_query e quindi mi si sovrascriveva sfanculizzando il tutto. Potete chiudere la discussione

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.