Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php-mysql] un campo che viene visualizzato da mysql ma non da php (?)

    Salve a tutti,

    non riesco a capire veramente nč dove sia l'errore e nč come fare per individuarlo.

    Praticamente costruisco una query dinamicamente a seconda della selezione dell'utente. OK, le query sembrano funzionare.
    A un certo punto tramite submit, faccio l'update di una riga interessata. Ok, anche questo funziona.
    Il problema č che quando la pagina viene ricaricata, le informazioni dovrebbero essere aggiornate e invece non cambia nulla.

    In pratica ho questa mia query dinamica.
    $query = "blablabla";
    poi faccio per debug un bel
    echo $query;
    e poi la eseguo
    $ris = mysql_query($query, $conn) or die ("{$query}");
    tutto ok.

    Il problema č che se eseguo "manualmente" in sql la query mandata in output il risultato (updatato) nel field esce fuori correttamente. Mentre invece se faccio per debugging:
    while ($row = mysql_fetch_array($ris)) {
    print_r($row);

    nell'array $row esce tutto correttamente tranne quella colonna! e come dicevo eseguito in mysql direttamente invece si!!
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Questa č un array tipo che viene fuori eseguendo quella query malefica:
    codice:
    Array
    (
        [0] => 32202
        [manID] => 32202
        [1] => nome_esempio
        [Nome] => nome_esempio
        [2] => cognome_esempio
        [Cognome] => cognome_esempio
        [3] => 32
        [phtID] => 32
        [4] => 1938
        [aziID] => 1938
        [5] => societa_esempio
        [Societa] => societa_esempio
        [6] => 
        [flag] => 
    )
    Alla corrispondenza della chiave 6, oppure della chiave flag dovrebbe uscire fuori un numero! Se eseguo la stessa query direttamente dentro phpmyadmin (ad esempio) in effetti quel valore c'č!!

    A proposito: č una cosa normale che mysql_fetch_array associ contemporaneamente i valori alle chiavi sia come numero e sia come nome campo del database?
    わさび

  3. #3
    Originariamente inviato da Trinitā76
    A proposito: č una cosa normale che mysql_fetch_array associ contemporaneamente i valori alle chiavi sia come numero e sia come nome campo del database?
    certo che si.

    se vuoi solo l'indice numerico usa mysql_fetch_row, solo associativo _assoc oppure come oggetto _object

    per il tuo dilemma non ci sono sufficienti news per dire la propria... bisogna vedere lo script...

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

  4. #4
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    certo che si.

    se vuoi solo l'indice numerico usa mysql_fetch_row, solo associativo _assoc oppure come oggetto _object

    per il tuo dilemma non ci sono sufficienti news per dire la propria... bisogna vedere lo script...
    La cosa che mi manda in bestia č che la query č una query banalissima:
    SELECT __ FROM __ LEFT JOIN __ WHERE __

    Lo script a sua volta, ha un unico while che tira fuori il risultato della query cosė:
    Codice PHP:
        if ($variabile1$query .= "WHERE ... ";
        if (
    $variabile2$query .= "GROUP BY ... ORDER BY ... ASC LIMIT 10;";
      echo 
    $query// debug
        
    $ris mysql_query($query$conn) or die ("{$query}");

        while (
    $row mysql_fetch_array($ris)) {
      
    print_r($row); // debug 
    sopra scrivo la query a seconda delle scelte dell'utente come dicevo;
    stampo l'sql;
    eseguo l'sql;
    while;
    tiro fuori l'array;
    risultato -> tutte le righe vengono fuori bene, quella riguardante un flag esce nulla!!
    (vedi array su)

    Il campo della tabella interessato č un smallint(6) unsigned default NULL ...
    わさび

  5. #5
    stampa anche la query UPDATE. Dovrebbe essere li il problema e non nel SELECT che estrae quello che trova.

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

  6. #6
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    stampa anche la query UPDATE. Dovrebbe essere li il problema e non nel SELECT che estrae quello che trova.
    Anche qui se č la prima volta che si esegue lo script faccio un'insert; in caso contrario un update. Quindi il problema se mai č sull'insert non sull'update.
    La tabella č completamente vuota perchč č stata appena creata e la sto testando, quindi:
    eseguo lo script;
    l'insert avviene con successo;
    eseguo la stessa query che mi faccio stampare a video inb phpmyadmin e funziona perfettamente anche con il flag;
    nello script invece, tutti i valori vengono restituiti tranne l'ultimo...

    Codice PHP:
                switch ($updatep) {
                    case 
    "insert":
                         
    $flgsql "INSERT INTO `tab` (`id`, `flag`, `cog`, `nom`) VALUES ({$outp_idman}{$outp_flagp}, '".addslashes($outp_nmman)."', '".addslashes($outp_cgman)."');";
                         
    $flgris mysql_query($flgsql$conn) or die ("errore nel settaggio dei flag nell'insert: {$flgsql}");
                    break;
                    case 
    "update"
    わさび

  7. #7
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Dimenticavo,
    altra cosa interessante:

    se faccio un refresh della pagina (dopo che l'insert č avvenuto), l'array viene formato correttamente.

    Ripeto:
    io ho un database vuoto
    premo un bottone e avviene l'insert
    a questo punto la pagina viene ricaricata con le modifiche
    e in effetti tutti i valori vengono restituiti tranne l'ultimo

    MA:

    se faccio un refresh funziona
    わさび

  8. #8
    Prova a stampare la query INSERT.

    Verifica con phpmyadmin che il campo sia stato valorizzato. Mi chiedo pero' perche' metterlo a NULL... visto che gia' all'insert un valore qualunque (anche fosse vuoto) lo dai.... e quindi sarebbe mai NULL.

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

  9. #9
    Utente di HTML.it L'avatar di Trinitā76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    Prova a stampare la query INSERT.

    Verifica con phpmyadmin che il campo sia stato valorizzato. Mi chiedo pero' perche' metterlo a NULL... visto che gia' all'insert un valore qualunque (anche fosse vuoto) lo dai.... e quindi sarebbe mai NULL.
    Ho fatto stampare anche l'insert e tutto funziona correttamente senza nessun errore di sintassi...
    in effetti la riga viene inserita; č solo un valore che non va...

    ...mi sta venendo un'idea ora provo e ti faccio sapere a breve
    cmq grazie per l'aiuto come sempre
    わさび

  10. #10
    Originariamente inviato da Trinitā76
    Dimenticavo,
    altra cosa interessante:

    se faccio un refresh della pagina (dopo che l'insert č avvenuto), l'array viene formato correttamente.

    Ripeto:
    io ho un database vuoto
    premo un bottone e avviene l'insert
    a questo punto la pagina viene ricaricata con le modifiche
    e in effetti tutti i valori vengono restituiti tranne l'ultimo

    MA:

    se faccio un refresh funziona
    Per me significa che lo esegui solo con il refresh e non la prima volta... altrimenti avresti un indice chiave primaria duplicato e quindi dovresti avere errore


    edit...

    potrebbe anche essere che se il dato ti viene da un form via POST o GET questo sia considerato stringa... prova a mettere gli apici al valore come se fosse una stringa....

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

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.