Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254

    [PHP 5 E MYSQL] Come effettuare una query da una stringa importata dal db

    Salve a tutti,
    è il primo post su questo forum per cui:
    qualora avessi sbagliato sezione (ero indeciso tra php e db) chiedo scusa agli amministratori i quali se vogliono spostarmelo nella sezione giusta io non mi offendo;
    qualora già esistesse un post che parla del mio problema chiedo scusa ancora ma dai titoli è sempre difficile inquadrare il problema.

    Per cui:
    il problema è semplice da spiegare(la soluzione un po meno):
    se faccio una query, utilizzando una variabile stringa, esempio:
    $query="select ... from ... where ...";
    $mysqli->query($query); //perchè io uso l'estensione mysqli
    fin qui è tutto ok.

    se invece io volessi prendere la stringa $query da un campo di una tabella sapete se sorge qualche incomprensione di stringhe testi etc???
    Perchè sto facendo diversi tentativi ma non funziona.

    Se sono stato poco chiaro chiedetemi ma vi prego aiutatemi perchè ho bisogno di poter prendere le query dal db.

    Grazie Angelo.

  2. #2
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Ciao, non ho capito bene cosa vuoi fare e cosa intendi.. non sai come recuperare un campo specifico all'interno delle tabelle??

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    Meno male che qualcuno mi ha risposto....ti ringrazio a priori.
    allora:
    io ho bisogno di effettuare una query presente su un campo di una tabella. Ti faccio un esempio.

    tabella_query
    id query
    1 "select * from tabella1"
    2 "select * from tabella2"
    ... ... ...
    n "select * from tabella3"

    Questa è la tabella. Ora nel codice cosa faccio:

    $query=$mysqli->query("select query from tabella_query where id='1'")->fetch_assoc();
    $dati=$mysqli->query($query);

    chiaramente mi da errore. allora io stampo il contenuto di $query. Copio il risultato dal browser e lo rimetto nel php:

    $query="select * from tabella1";
    $dati=$mysqli->query($query);

    e in questo modo funziona. Quindi so che la query nel db non è sbagliata e dunque mi viene da pensare che ci sia una incongruenza tra i caratteri. Il campo della tabella è text.

    Ti ho delucidato?Hai spiegazioni o altre domande? Io credo che un modo per memorizzare le query in un campo di una tabella deve esserci, non credo sia l'unico ad averne bisogno.

    Grazie ancora, Angelo

  4. #4
    Ok penso di aver capito, allora fai cosi:
    Codice PHP:
    <?
    $query
    =mysql_query("Select text from tua_tabella");
    $array=mysql_fetch_array($query);
    ?>


    //dopo di che fai stampare con echo la query
    <? echo $array[text]?>

    L'unica cosa che devi cambiare e il nome della tabella che io ti ho messo "la tua_tabella".

    Vedi se funziona cosi fammi sapere!!

  5. #5
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Quello che ha detto Jigulina è perfetto... deve andare!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    No, scusa mi sono spiegato male.
    Innanzitutto io ho scritto un esempio, perchè in realtà io devo fare una funzione che mi crea delle viste ma se sblocco questa cosa il resto viene da se.

    Dunque, io uso mysqli, creo l'istanza $db.
    Text è il tip di campo: int, varchar, text.
    Poi ho una tabella che possiamo chiamare come vogliamo. Questa tabella ha diversi campi tra cui un campo (di tipo text e di nome query) che contiene delle query tipo questa:
    "select nome from anagrafe where id='1'"
    questo è il contenuto del campo "query" della tabella.

    nel codice php, prima seleziono il campo che contiene la query e poi lo do in pasto ad un'altra query.

    non so, mi sembra facile il problema: selezionare la stringa della query da un campo di una tabella.
    per cui:

    $query=$db->query("select query from tabella_contenente_le_query where id='quello_che_vuoi'")->fetch_assoc();
    $q=$query[query];
    $dati=$db->query($q);

    ma non funziona.

  7. #7
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Che errore da?? che non funziona

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    L'errore è sull'ultima query perchè faccio la fetch e mi dice che la query è sbagliata.
    Io per capire qual'è il problema ho eseguito questo procedimento che ho spiegato anche prima:

    $q=$db->query(select query from tabella ...)->fetch_assoc();
    echo $q[query];

    così sul browser avrò:
    "select qualcosa from qualche_tabella"

    copio il codice dal browser e lo rimetto nel php in questo modo (questo è solo un test che faccio per vedere se la query nel db è esatta).

    $q="select qualcosa from qualche_tabella" //il codice che ho copiato dal browser
    $dati=$db->query($q)->fetch_assoc();

    e funziona. Per cui io penso che la stringa nel db è di tipo diverso da quella che copio dal browser.

    Kmq ora da qui non posso ne provare ne restituirvi gli errori. Lunedì posso fare tutto, ma il problema non è fare una query, ma fare una query selezionata da un'altra query.

    Scusate se sembro arrogante, ma cerco solo di essere i + chiaro possibile.

  9. #9
    Originariamente inviato da a.forte
    $query=$mysqli->query("select query from tabella_query where id='1'")->fetch_assoc();
    $dati=$mysqli->query($query);
    $query e' un array non una stringa (fetch_assoc() restituisce un array associativo), $query['query'] invece e' la stringa che ti serve:

    codice:
    $dati = $mysqli->query($query['query');
    suggerisco comunque un po' piu' di fantasia con nomi di variabili e campi

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    Si, diciamo che effettivamente sto facendo confusione perchè gli esempi li sto scrivendo qui. Lunedì faccio il codice di esempio e lo posto. Spero di trovarvi ancora qui.
    Grazie.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.