Visualizzazione risultati 1 fino 16 di 16

Discussione: Problemi con SQL

  1. #1
    Guest

    Angry Problemi con SQL

    Ancora una volta batto il capo con una stringa di ricerca sql. Questa volta però lo fatta generare dal database stesso, e non mi si dica che ci sono errori di sintassi!?? La query è la seguente :

    select * from 'domande' where 'successo' = 5 LIMIT 0, 30;

    Il risultato è un errore :

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''domande' where 'successo' = 5 LIMIT 0, 30' at line 1

    Io le ho provate tutte, ho messo e tolto apici a valori e campi, ho messo parentesi, ho cercato di limitare la ricerca ecc. ecc. ma tutto mi dà errore di sintassi, oltremodo generico ( non ti dice cosa non funziona ).

    Cosa posso fare? C'è qualcosa che si deve mettere dopo where e che io non sò?

    Grazie in anticipo.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    e non mi si dica che ci sono errori di sintassi
    Magari non te lo vuoi sentir dire, ma è un errore di sintassi.

    Togli tutti quei apici e lancia la query. Se c'è ancora un errore postalo.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


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

    Predefinito

    Sui nomi delle tabelle e dei campi non vanno messi gli apici (o meglio, non quel tipo di apici... ma non ne hai comunque bisogno se non hai avuto l'idea geniale di assegnare a tabelle e campi nomi con spazi o parole riservate). Toglili, e la query in teoria dovrebbe funzionare.

    Stammi 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...

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

    Predefinito

    Come già scritto sopra e riportato anche nel messaggio d'errore c'è un errore di sintassi.

    Personalmente ti consiglio di non far creare la query dal database ( o meglio dal DBMS ).

    Se non ricordo male, phpmyadmin e altri DBMS tendono sempre a mettere i nomi tra apici
    Ultima modifica di sevenjeak : 07-06-2010 alle ore 16.34.54

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Si capisco ma anche la mia query iniziale non funzionava.....ho provato molti modi e permutazioni.
    select * from domande where successo = 5
    Ciò mi fò apparire lo stesso errore di sintassi e non credo che domande e successo siano parole chiavi, inoltre select più semplici come "select * from domande" mi funzionano, è quando metto il where che le cose non vanno più.
    Grazie in anticipo.

    -

    Ecco postato l'errore che mi dà quando inserisco : select * from domande where successo = 5.
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 5' at line 1
    Da notare che il campo è numerico percui penso non debbano essere usati gli apici.

    Ciao e grazie.
    Ultima modifica di andreafallico : 07-06-2010 alle ore 23.03.54 Motivo: Usa il tasto Edita

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Beh, da un errore di sintassi, ma non è uguale a quello di prima.

    Comunque la query è corretta e per quello che ci hai detto non c'è motivo per cui dovrebbe dare errore. Con cosa la stai lanciando?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


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

    Predefinito

    Citazione Originalmente inviato da service2000 Visualizza messaggio
    Da notare che il campo è numerico percui penso non debbano essere usati gli apici.
    Gli apici servono solo ad indicare una stringa infatti, ma sei sicuro che quel campo sia di tipo numerico?

    Non so se sbaglio, ma credo che l'errore sia proprio nel where.
    Ultima modifica di sevenjeak : 08-06-2010 alle ore 11.09.53

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    Si il campo è numerico e l'errore è proprio quello che è visualizzato. Infatti non capisco. comunque vi mostro come ottengo la stringa e la tabella.

    DOMANDE
    -------------------------
    Codice:
    ID       PRYMARY KEY
    DOMANDA  VARCHAR (100)
    RISPOSTA TEXT
    DATA     DATE
    SUCCESSO INT
    _LINK    VARCHAR (100)
    .........................
    ................
    ........
    Codice PHP:
    if (trim($ril) == "Valore5") {
    $sql = $sql . " successo = 5 and ";
    $s = "5";
    }
    //13-9


    $lunghezza = strlen($sql) - 4;
    $sql = substr($sql,0,$lunghezza);
    $aggiunta = $sql;
    $sql ="select * from domande where " . $sql ;
    .....................
    .............
    .......

    Grazie in anticipo.
    Ultima modifica di musicanapoli : 08-06-2010 alle ore 15.45.58 Motivo: Codice racchiuso tra i tags.

  9. #9
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ti sei fatto stampare il contenuto di $sql?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  10. #10
    Guest

    Predefinito

    Niente da fare sono stato attento agli spazi, ma mi dà sempre lo stesso errore.

  11. #11
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    La variabile $sql dovrebbe avere questo valore
    Dicevo di farsi stampare il valore reale che ha nel momento in cui usato per eseguire la query.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  12. #12
    Guest

    Predefinito

    Se ho capito bene devo farmi stampare l'sql prima di farla mangiare da php, e quello che ottengo è proprio "il valore reale" che è pari a 5......
    Non sò cosa intendi di diverso.
    Grazie.

  13. #13
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da service2000 Visualizza messaggio
    Non sò cosa intendi di diverso.
    Grazie.
    Tutta la query


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  14. #14
    Guest

    Predefinito

    La query finale è questa :
    select * from domande where successo = 5

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

    Predefinito

    Strano, la sintassi della query cosi non è errata, sicuro che in realtà di da questo valore.

    Cmq, all'interno della if hai mezzo:
    Codice PHP:
    $sql = $sql . " whare successo = 5 ";
    Cioè, hai concatenato il valore di $sql con una stringa, quanto valeva prima quel'$sql concatenato alla stringa? questo nel tuo codice non l'hai specificato, quindi credo che quello da te postato non sia tutto il codice, vero?
    Ultima modifica di sevenjeak : 10-06-2010 alle ore 09.03.14

    Sevenjeak
    Software developer and much more

  16. #16
    Guest

    Predefinito

    No tutto il codice prevede l'inserimento di altri campi e corrispettivi valori nella query, se ci sono naturalmente....

    Codice PHP:
    if (trim($idsel) == "uguale") {
    $sql = $sql . " id = " . trim($id) . " and ";
    //print ">" . $sql;
    }
    if (
    trim($idsel) == "maggiore") {
    $sql = $sql . " id > " . trim($id) . " and ";
    }
    if (
    trim($idsel) == "minore") {
    $sql = $sql . " id < " . trim($id) . " and ";
    }
    if (
    trim($idsel) == "diverso") {
    $sql = $sql . " id <> " . trim($id) . " and ";
    }
    if (
    trim($idsel) == "ugualemaggiore") {
    $sql = $sql . " id >= " . trim($id) . " and ";
    }
    if (
    trim($idsel) == "ugualeminore") {
    $sql = $sql . " id <= " . trim($id) . " and ";
    }
    }

    if (
    trim($dom) <> "")
    {
    $sql = $sql . " domanda like '%" . trim($dom) . "%' and ";
    }

    if (
    trim($risp) <> "")
    {
    $sql = $sql . " risposta like '%" . trim($risp) . "%' and ";
    }

    if (
    trim($link) <> "")
    {
    $sql = $sql . " _link = '" . trim($link) . "' and ";
    }

    if (
    trim($data) <> "")
    {
    $sql = $sql . " data = '" . trim($data) . "' and ";
    }

    if (
    trim($ril) == "Valore0") {
    $sql = $sql . " successo = 0 and ";
    $s = "0";
    }
    if (
    trim($ril) == "Valore1") {
    $sql = $sql . " successo = 1 and ";
    $s = "1";
    }
    if (
    trim($ril) == "Valore2") {
    $sql = $sql . " successo = 2 and ";
    $s = "2";
    }
    if (
    trim($ril) == "Valore3") {
    $sql = $sql . " successo = 3 and ";
    $s = "3";
    }
    if (
    trim($ril) == "Valore4") {
    $sql = $sql . " successo = 4 and ";
    $s = "4";
    }
    if (
    trim($ril) == "Valore5") {
    $sql = $sql . " successo = 5 and ";
    $s = "5";
    }
    //13-9

    //print $sql;
    $lunghezza = strlen($sql) - 4;
    $sql = substr($sql,0,$lunghezza);

    $aggiunta = $sql;
    $sql = "select * from domande where " . $sql;
    print
    $sql;
    Con il print $sql ottengo la query che ho postato precedentemente.

    Grazie
    Ultima modifica di andreafallico : 10-06-2010 alle ore 12.20.51

Tags for this Thread

Regole di scrittura

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