Visualizzazione risultati 1 fino 8 di 8

Discussione: Tabella contenente dati database sql

  1. #1
    Guest

    Predefinito Tabella contenente dati database sql

    Ciao a tutti volevo creare all'interno di un articolo di WorldPress una tabella contenente i dati del mio satabase mysql.
    i valori sono: nome,tag,leader,orientamento,server
    e la tabella del db si chiama: gilde
    Volevo un elenco in odine alfabetico del valore nome.
    Esmepio:

    |Nome | TAG | Leader | Orientamento | Server |
    _____________________________________________
    |nome1 | ciao | marco | pvp | server 1 |
    |noem2 | asd | matteo | pvp | server 2 |
    ------------------------------------------------------------------------

    ho provato più volte utilizzando la funzione ORDERED by nome
    ma non riesco, mi da sempre qualche errore..

    Riuscite a dirmi la funzione base (essendo in un articolo serve anche il db-connect )
    grazie in anticipo

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    La sintassi di una query di selezione con la clausola order by, no ordered by, la puoi vedere qui:

    http://www.1keydata.com/it/sql/sql-order-by.php

    In ogni caso, se la sintassi della tua query è corretta, potresti postare l'errore che di da insieme al codice del tuo script?
    Ultima modifica di sevenjeak : 09-12-2012 alle ore 19.00.36

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    ok allora io avevo provato con questa:

    Codice:
    <? $connessione = mysql_connect("localhost","nome","password")or die("Connessione non riuscita: " . mysql_error<());
       print ("Connesso con successo"); mysql_select_db("database",
    $connessione) or die("Errore nella selezione del database";
    
    $query = mysql_query ("SELECT "nome,tag,leader,server,orientamento" FROM "gilde" ORDERED by "nome");
    if ($query==FALSE) die("errore nella composizione della query");
    
    mysql_close($connessione); ?>

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Quel mysql_error<() alla prima riga, quel segno minore e solamente un errore nel postare il codice?

    All'interno di mysql_query() hai scritto la stringa:

    Codice:
    "SELECT "nome,tag,leader,server,orientamento" FROM "gilde" ORDERED by "nome"
    Delimitata da doppi apici, contenente a sua volta all'interno altri doppi apici, che visto che li hai usati come apertura della stringa, il php gli interpreta come delimitatori della stringa, chiusura della stringa, per far si che questo non accede si mettono li slash o semplicemente puoi usare gli apici singoli ( ' ), in ogni caso basta che non usi gli stessi delimitatori della stringa, ma nel tuo caso li puoi anche levare, modificando il mysql_query() cosi:

    Codice PHP:
    mysql_query("SELECT nome,tag,leader,server,orientamento FROM gilde ORDER BY nome");
    Ho modificato anche quello che ti avevo detto prima, la clausola si chiama ORDER BY no ORDERED BY, dai un'occhiata al link che ti ho postato precedentemente.
    Ultima modifica di sevenjeak : 10-12-2012 alle ore 16.53.38

    Sevenjeak
    Software developer and much more

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    ...
    Delimitata da doppi apici, contenente a sua volta all'interno altri doppi apici, che visto che li hai usati come apertura della stringa, il php gli interpreta come delimitatori della stringa, chiusura della stringa, per far si che questo non accede si mettono li slash o semplicemente puoi usare gli apici singoli ( ' ), in ogni caso basta che non usi gli stessi delimitatori della stringa, ma nel tuo caso li puoi anche levare, modificando il mysql_query() cosi:
    ...
    Un paio di precisazioni:
    - i doppi apici ("double quote") servono a PHP per delimitare la stringa che rappresenta la query
    - gli apici singoli ('single quote') al suo interno delimiterebbero quelle che per SQL sono stringhe costanti, non identificatori (nomi di campi o di tabelle): inserirli potrebbe portare a risultati inattesi nella tua query. La soluzione migliore, pertanto, è ometterli...

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    Si possono usare (e conviene farlo) anche gli apici singoli per delimitare la stringa SQL da passare come query, altrimenti il PHP li interpreta come sequenza di escape, in pratica se non ci sono variabili con un valore da passare (e in una query non ci devono essere ma bisognerebbe sempre usare funzioni di binding che ne rilevano l'escape) costringi comunque il motore del PHP a fare un parsing su qualcosa che non è da parsare.
    In altre parole è meglio se le tue query siano così:
    Codice PHP:
    mysql_query('SELECT nome,tag,leader,server,orientamento FROM gilde ORDER BY nome');
    Quanto a passare la stringa da controllare tra apici dipende da quanto questa è complessa.
    Se la query è come quella che fai tu, cioè contenente solo i nomi dei campi gli apici interno non ti servono, ma se devi controllare un valore, per esempio se dovevi cercare una stringa a caso nel database:
    Codice PHP:
    mysql_query('SELECT nome,tag,leader,server,orientamento FROM gilde WHERE nome = \'Elfi del lago\' ORDER BY nome');
    allora gli apici ti servono per forza, in questo caso poi fai l'escaping degli apici con la barra rovescia e conviene farlo prima, magari usando la funzione mysql_real_escape_string() e passando ora sì la variabile. (a dirla tutta gli apici ci vanno anche se è una singola parola )
    Ad esempio:
    Codice PHP:
    $escape = mysql_real_escape_string('Elfi dell\'acqua fresca');
    mysql_query('SELECT nome,tag,leader,server,orientamento FROM gilde WHERE nome = ' . $escape . ' ORDER BY nome');
    Nota anche una cosa, qui potevo anche usare i doppi apici così la variabile $escape veniva passata dal PHP direttamente nella stringa di query, ma è sempre preferibile non farlo e la colpa è proprio degli apici, basta giocare con essi per fregare un database, come dicevo prima i doppi apici costringono il PHP a parsare la stringa alla ricerca di codici di escape (la stringa $escape in questo caso) ed è facile manipolarla anche se abbiamo usato prima la real_escape() in modo da poter creare problemi al database. Insomma la sicurezza non è mai troppa anzi è sempre troppo poca con i database e poche e semplici regolette ci fanno dormire meglio.
    Se fossi in te, inizierei a studiare almeno le funzioni improved (mysqli_ ) anche perché presto le vecchi funzioni senza la i saranno eliminate.
    Potrai iniziare a vedere i concetti di binding che ti permettono di gestire le stringhe in completa sicurezza e in modo trasparente senza doverti sbattere troppo.
    Tower Defense giochi in Flash

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Codice PHP:
    mysql_query('SELECT nome,tag,leader,server,orientamento FROM gilde WHERE nome = \'' . $escape . '\' ORDER BY nome');


    Comunque, anche io faccio così. (ovviamente con mysqli, anche se potrebbe scegliere di utilizzare PDO).

    Ciao!
    Ultima modifica di alemoppo : 11-12-2012 alle ore 00.06.28

  8. #8
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Codice PHP:
    mysql_query('SELECT nome,tag,leader,server,orientamento FROM gilde WHERE nome = \'' . $escape . '\' ORDER BY nome');


    Comunque, anche io faccio così. (ovviamente con mysqli, anche se potrebbe scegliere di utilizzare PDO).

    Ciao!
    Io uso PDO per abitudine oramai ma non conviene usarlo dato che non viene più sviluppato, per ora Zend lo lascia in un limbo, diciamo che è stata un'idea interessante ma che ha dimostrato i suoi limiti, non si possono astrarre troppo i dati con tanti motori di database diversi in commercio.
    L'idea di fondo era ottima, tieni presente che PDO nasce dal progetto DB di IBM che era dentro Pear, l'idea di evitare un immenso proliferare di funzioni dedicate ai database, cosa che in PHP è la norma, con l'impossibilità di seguire il tutto.
    Oggi PDO viene sviluppato solo per correggere alcuni bug noti nella sezione MySQL e forse qualche cosa in ODBC il resto è lettera morta. Insomma come tutti i rami di PHP purtroppo
    Tower Defense giochi in Flash

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •