Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    48

    Problema con describe: visualizza solo primo campo

    Salve a voi.

    Ebbene si, dato che torno a scrivere vuol dire che ho nuovamente un problemino

    Da un modulo di ricerca semplice (ossia: immetti il valore da cercare e dove cercare -che per me verrà poi tratto come tabella dove cercare-) vorrei creare una query parametrica.

    Niente di difficile, basta agire con i valori che mando tramite post.

    Il problema riscontrato però, è stato il seguente...

    Esempio valido per un libro.

    Io cerco "Pippo"

    Esso potrebbe essere:

    - un titolo (o parte di esso)
    - un autore
    - un personaggio
    - ...


    ma la ricerca poteva anche esser fatta, non per il libro, ma per l'autore o altro...

    A questo punto avevo pensato di fare un'estrazione dei dati delle colonne al fine di prenderne i nomi da usare poi nelle condizioni (where nome_colonna LIKE $dato_da_cercare)

    Codice PHP:
    $DaFare="DESCRIBE ".$dove."";
    $Risultato=mysqli_query($connessione_db,$DaFare);
    $Risultato_array=mysqli_fetch_array($Risultato); 

    ho provato anche a farla manualmente:


    Codice PHP:
    $DaFare="DESCRIBE nome_tabella";
    $Risultato=mysqli_query($connessione_db,$DaFare);
    $Risultato_array=mysqli_fetch_array($Risultato); 

    così come, al posto di DESCRIBE, usare SHOW COLUMNS

    Alla fine, per verificare, faccio un print_r($Risultato_array);

    E mi ritrovo sempre e solo con il primo campo :master:

    Non capendo come mai, ho pensato che magari causa errore prendessi la chiave primaria, allora ho preso una tabella con una chiave composta da due chiavi esterne e.... ancora sempre e solo la prima colonna :berto:



    Come a volte capita, basta chiedere un mini aiuto/consiglio perchè non ci si è avveduti di un errorino banale quanto stupido talmente intenti a guardare una data cosa dimenticando il resto


    Da parte mia, inizio già con il ringraziare chi riuscirà a darmi una mano o, semplicemente, chi ci proverà.

    Grazie

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/mysql_fetch_array Example #2 mysql_fetch_array() with MYSQL_NUM

  3. #3
    Ciao
    sia DESCRIBE che SHOW COLUMNS ti forniscono i dati relativi alla tabella mettendoli uno per riga.
    Vedi quelli relativi alla prima colonna perchè esegui mysqli_fetch_array una sola volta e quindi recuperi solo il primo dato trovato.
    Se vuoi vedere tutti i dati dovrai fare un ciclo per scorrere tutte le righe del risultato.
    Ad esempio con
    Codice PHP:
    while($Risultato_array=mysqli_fetch_array($Risultato))
    {
    ...

    Alessandro
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    48
    :master:

    Ho provato a fare come avete detto voi.

    Con print_r facevo stampare tutto l'array com'era strutturato, con il vostro consiglio (che sarebbe stato poi il mio passo successivo) ho fatto stampare unicamente il nome della colonna:

    Codice PHP:
        while ($nome_colonna mysqli_fetch_array($RisVediColonneMYSQL_NUM))
        {
            echo 
    "Nome Colonna: ".$nome_colonna[0]."
    "
    ;
        } 

    In ogni caso, anche in questo modo mi da unicamente il primo nome (essendo che, nell'array, mi memorizza unicamente i dati relativi alla prima colonna, senza prendermi gli altri)

    Il problema è che ho utilizzato sino ad ora, senza problemi, il fetch_array.

    Volendo provo svelto con un fetch_assoc


    Edit: idem con array_fetch_assoc... sempre e solo una riga :berto:


    Edit: 10:38

    Ho cambiato tabella sulla quale testare... ora stampando da ciclo while ricavo tutti i nomi delle colonne, tranne uno.... il quale però mi esce tramite il print_r, ma non gli altri :berto:

    Comunque, grazie d'avermi fatto passare già ora al ciclo while, almeno mi sono portato leggermente avanti

  5. #5
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump(mysqli_num_rows($RisVediColonne)); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    48
    Originariamente inviato da filippo.toso
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump(mysqli_num_rows($RisVediColonne)); 
    Mi ritorna il numero corretto dei campi... nel caso attuale: 13

    Riprendo il mio ultimo edit dato che ci siamo scavalcati:

    Edit: 10:38

    Ho cambiato tabella sulla quale testare... ora stampando da ciclo while ricavo tutti i nomi delle colonne, tranne uno.... il quale però mi esce tramite il print_r, ma non gli altri

    Comunque, grazie d'avermi fatto passare già ora al ciclo while, almeno mi sono portato leggermente avanti
    In altre parole, mi scappa un dato (infatti dal ciclo while mi compaiono solo 12 valori, e quello mancante è presente nel print_r)

  7. #7
    Elimina la chiamata a mysqli_fetch_array() esterna al while e vedrai che funziona correttamente.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    48
    appena fatto e mi sono reso conto che funziona perfettamente!

    Mitici/o.

    Ora non mi resta che capire il motivo per il quale il print_r non è andato



    Edit: ok... capito il problema.

    Scemo io

    Magicale aveva già dato anche la spiegazione all'errore. Non avevo considerato che fetch_array creava l'array per la riga e non per tutti i risultati

    Ancora grazie ad entrambi e scusate l'inutile perdita di tempo

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.