Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente bannato
    Registrato dal
    Jul 2004
    Messaggi
    81

    Query MySQL, non riesco a farla funzionare

    Ho semplificato fino al pezzo problematico:

    SELECT * FROM 'tabella' WHERE nome='nome composto' LIMIT 0, 300
    I problemi vengono da dopo il WHERE

    ...e nel manuale MySQL non trovo la sintassi di WHERE

    Dove sbaglio?

    Grazie in anticipo

    P.s. non è il codice PHP il problema, perchè la query non funziona neanche da PhpMyAdmin

  2. #2
    Questa la sintassi di SELECT:

    SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr,...
    [INTO OUTFILE 'file_name' export_options
    | INTO DUMPFILE 'file_name']
    [FROM table_references
    [WHERE where_definition]
    [GROUP BY {col_name | expr | position}
    [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_definition]
    [ORDER BY {col_name | expr | position}
    [ASC | DESC] ,...]
    [LIMIT [offset,] row_count | row_count OFFSET offset]
    [PROCEDURE procedure_name(argument_list)]
    [FOR UPDATE | LOCK IN SHARE MODE]]

    Se pensi che il probl. sia nella WHERE controlla l'esistenza della colonna nome, fai queste prove:

    SELECT * FROM tabella WHERE nome='nomecomposto'
    SELECT * FROM tabella WHERE tabella.nome = 'nome composto'

  3. #3
    il problema viene prima del where.

    il nome della tabella non va tra apici.


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

  4. #4
    ...ho un problema simile in questa query:
    codice:
    $result = mysql_query("SELECT descrizione FROM details_old WHERE id='$id'", $db);
    mi avverte con notice che la variabile $id non è definita e dal ciclo while che uso per visualizzare il risultato non riesco ad ottenere nulla. E' forse sbagliata la sintassi della query??

  5. #5
    [supersaibal]Originariamente inviato da Rhamirez
    ...ho un problema simile in questa query:
    codice:
    $result = mysql_query("SELECT descrizione FROM details_old WHERE id='$id'", $db);
    mi avverte con notice che la variabile $id non è definita e dal ciclo while che uso per visualizzare il risultato non riesco ad ottenere nulla. E' forse sbagliata la sintassi della query?? [/supersaibal]
    l'unico problema che hai è semplicemente dichiarare la variabile $id
    ex id viene da $_GET?

    codice:
    $id = isset($_GET['id']) ? $_GET['id'] : '';
    $result = mysql_query("SELECT descrizione FROM details_old WHERE id='$id'", $db);
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    190
    [supersaibal]Originariamente inviato da boomboom69
    l'unico problema che hai è semplicemente dichiarare la variabile $id
    ex id viene da $_GET?
    [/supersaibal]
    no

    $result = mysql_query("SELECT id, descrizione FROM details_old WHERE id='$id'", $db);

    devi selezionare anche il campo id

  7. #7
    [supersaibal]Originariamente inviato da marcobor
    no

    $result = mysql_query("SELECT id, descrizione FROM details_old WHERE id='$id'", $db);

    devi selezionare anche il campo id [/supersaibal]
    non ne vedo il motivo
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  8. #8
    [supersaibal]Originariamente inviato da boomboom69
    non ne vedo il motivo [/supersaibal]
    Infatti!! non c'è nessun motivo di selezionare anche il campo id.

    Sì, $id proviene da $_GET, era questo il problema e quindi funziona perfettamente con
    codice:
    $id = isset($_GET['id']) ? $_GET['id'] : '';
    $result = mysql_query("SELECT descrizione FROM details_old WHERE id='$id'", $db);
    Però, ho provato anche così:
    codice:
    $result = mysql_query("SELECT descrizione FROM details_old WHERE id='$_GET[id]'", $db);
    senza dichiarare $id co l'isset e funziona...

    Qual'è il modo corretto per scrivere il codice?

  9. #9
    Si riallaccia ad un vecchio thread che poi io avevo abbandonato. Vero?

    Allora e' meglio non mascherare i NOTICE con @.....

    I due modi sono equivalenti. In uno crei la variabile $id nel caso manchi, nell'altro butti direttamente il valore passato con GET senza un minimo di controllo.

    Se i NOTICE non devono esserci, bisogna eliminarli in qualche modo, non mettere un @ davanti alla funzione....


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

  10. #10
    [supersaibal]Originariamente inviato da piero.mac
    Si riallaccia ad un vecchio thread che poi io avevo abbandonato. Vero?

    Allora e' meglio non mascherare i NOTICE con @.....

    I due modi sono equivalenti. In uno crei la variabile $id nel caso manchi, nell'altro butti direttamente il valore passato con GET senza un minimo di controllo.

    Se i NOTICE non devono esserci, bisogna eliminarli in qualche modo, non mettere un @ davanti alla funzione....

    [/supersaibal]
    ...sì, ma la colpa è stata mia perchè in quel thread non sono riuscito a spiegare correttamente il problema...

    Ma sto imparando, poco per volta, anche grazie a te...

    Ok, tornando al codice, se i due modi sono equivalenti sembra più sicuro creare prima la variabile e fare gli "opportuni controlli" anziché passare il valore direttamente. Userò isset... anche per i notice...

    grazie ancora,

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.