Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    55

    [PHP+MySQL] Query UpDate

    Ciao a tutti. Ho un problema sul PHP+MySQL. Prendo dei dati da un file txt e con explode lo converto in un array bidimensionale. Ora mi succede che quando scrivola query 1b sul foglio php, nel DB trovo salvati i valori che ho inserito, mentre se al posto dei numeri inserisco le variabili che prelevo dall'array e faccio ciclo For trovo solo le 'X' nella colonna $oggi, ma non i valori in r, s, t. Naturalmente se inserisco:
    echo $tot[7][5];
    mi stampa il valore effettivo. Qua sotto ho inserito il codice incriminato e se possibile vorrei sapere dove sbaglio. Grazieee!!!


    1a) $present = "update tabella set $oggi='X', r=$tot[$y][5], s=$tot[$y][6], t=$tot[$y][7] where Id=$w + 1";
    1b) $present = "update tabella set $oggi='X', r=2, s=1, t=0 where Id=$w + 1";
    2) $presenza = mysql_query($present);

    NB: Non è urgentissimo, ma mi piacerebbe risolverlo! Grazie di nuovo...

  2. #2
    dovresti postare anche il codice che usi per inserire i dati nella variabile $y.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    55
    Innanzi tutto chiedo scusa, in particolar modo a Roby.zip, ma una volta postato il problema son dovuto uscire e rientro solo ora. Questa è la routine che uso. Se vuoi ti posto anche tutta la pagina.

    for ($w = 0; $w <= $a - 1; $w++){
    for ($y = 0; $y <= $s - 2; $y++){
    if($tot[$y][1] == $nome[$w]){
    echo @$tot[$y][0], " - ";
    echo @$tot[$y][1], " - ";
    echo @$nome[$w], "
    ";
    $present = "update _calciatori08_09 set $oggi='X', reti=$tot[$y][5], rigori=$tot[$y][6], autogol=$tot[$y][7] where Id=$w + 1";
    $presenza = mysql_query($present);
    }
    }
    }
    PS. Una curiosità, è la seconda volta che posto un problema e tutte e due le volte la cartellina sul forum compare con uno strano simbolo. Che significa? Di nuovo grazie!!!

  4. #4
    Se posti tutta la pagina forse e meglio, perchè così è difficile seguire il filo logico dello script.
    Anzi se posti del codice php usa i tag [PHP] che trovi nell'interfacci dove si inserisce il messaggio, basta che clicchi sul tastino php e inserisci una scritta, poi tra i tag metti tutto il codice php così diventa più legibile.

    Riguardo allo strano sombolo che trovi nella cartellina, se è un cerchietto nero indica che in quella discussione hai postato un messaggio, se è un simbolo diverso non lo so.
    Ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    55
    Ok, si il simbolo è un cerchietto nero. Ho capito. Per quanto riguarda il codice, te lo mando oggi pomeriggio perchè ora sono al lavoro e non l'ho sottomano. Ciao!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    55

    Codice

    Codice PHP:
    <?php
    include '../session.inc';
    include (
    "../conf.php");
    $agno $_SESSION['annosuccessivo'];
    $oggi $_SESSION['giornata'];

    $connessione =  mysql_connect($server$utente$parolina) or die ("Niente da fare, prova più tardi!!!");
    $datab mysql_select_db ($archivio$connessione) or die ("Niente da fare, prova più tardi!!!");

    $calciatori "select * from _calciatori08_09";
    $carriera "select * from _annuario where anno = '$agno' and squadra <> ''";

    $ncalciatori mysql_query($calciatori);
    $ncarriera mysql_query($carriera);

    $a 0;
    $b 0;
    while (
    $cal mysql_fetch_array($ncalciatori)){
        
    $nome[] = $cal['nome'];
        
    $num1 $cal['num1'];
        
    $num2 $cal['num2'];
        
    $squadra1 $cal['sq1'];
        
    $squadra2 $cal['sq2'];
        
    $giornata[] = $cal[$oggi];
        
    $a +=1;
    }

    while (
    $car mysql_fetch_array($ncarriera)){
        
    $numA[] = $car['numero'];
        
    $nomeA[] = $car['nome'];
        
    $years[] = $car['anno'];
        
    $squadraA[] = $car['squadra'];
        
    $partiteA[] = $car['partite'];
        
    $retiA[] = $car['reti'];
        
    $serie[] = $car['serie'];
        
    $b +=1;
    }

    $text "presenze.txt";
    $s 1;
    if (
    file_exists($text)) { 
        
    $handle fopen($text"r");
        while(!
    feof($handle)){
            
    $text fgets($handle);
            
    $pieces[$s] = explode(";"$text);
            
    $tot[$s] = array($pieces[$s][0], $pieces[$s][1], $pieces[$s][2], $pieces[$s][3], $pieces[$s][4], $pieces[$s][5], $pieces[$s][6], $pieces[$s][7]);
            
    $s++;
        }
        @
    fclose($handle);
    } else { 
        echo 
    "Attualmente non ci sono aqqiornamenti
    "
    ;
        exit;
    }
    sort($tot);
    /*
    for ($y = 0; $y <= $s - 2; $y++){
        echo $y + 1, " - ";
        echo @$tot[$y][0], " - "; //Id
        echo @$tot[$y][1], " - "; //nome
        echo @$tot[$y][2], " - "; //sq1
        echo @$tot[$y][3], " - "; //sq2
        echo @$tot[$y][4], " - "; //presenze
        echo @$tot[$y][5], " - "; //reti
        echo @$tot[$y][6], " - "; //rigori
        echo @$tot[$y][7], "
    "; //autogol
    }
    */

    for ($w 0$w <= $a 1$w++){
        for (
    $y 0$y <= $s 2$y++){
            if(
    $tot[$y][1] == $nome[$w]){
                echo @
    $tot[$y][0], " - ";
                echo @
    $tot[$y][1], " - ";
                echo @
    $nome[$w], "
    "
    ;
                
    $present "update _calciatori08_09 set $oggi='X', reti=$tot[$y][5], rigori=$tot[$y][6], autogol=$tot[$y][7] where Id=$w + 1";
                
    $presenza mysql_query($present);
            }
        }
    }
    mysql_close($connessione);
    ?>

  7. #7
    Gli errori che ho colto sono:

    nel comando echo usi la virgola per concatenare il trattino, ma va usato il punto
    Codice PHP:
    echo @$tot[$y][0] . " - "
    Secondo nella query di update inserisci le varibili e i vettori tra le virgolette "principali" , questa scrittura va bene per le variabili singole, ma non per i vettori.
    Prova a scrivere la query così:
    Codice PHP:
    "update _calciatori08_09 set $oggi='X', reti=" $tot[$y][5] . ",  rigori=" $tot[$y][6] . ", autogol=" $tot[$y][7] . "where Id=$w + 1;"

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    55

    GRAZIE

    Ora, grazie a te, mi funziona tutto. Ho sostituito la riga con la tua. Ho visto che alla fine della query tu metti il punto e virgola, cosa che io non faccio mai a meno che non lavori direttamente sul DB. Comunque tutto funziona sia in una maniera che nell'altra. Ti ringrazio di nuovo per l'aiuto e per l'interessamento. Roberto!!!

    PS. Come posso fare per sapere se c'è qualcuno nella mia zona (Viareggio-Versilia) che mastica un po' di PHP?

  9. #9
    Non lo so, io sto da tuttaltra parte, in sicilia
    Comunque mi fa piacere che ti sia stato di aiuto, ciao.

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.