Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146

    MySql - Query senza risultati ?!

    Buonasera!


    Premetto di aver fatto le varie ricerche su internet e sul forum per cercare argomenti già trattati su questo, ma non ho trovato nulla.



    Ho un problema insolito.. che dopo pagine e pagine programmate, mi si presenta per la prima volta.
    Ho una semplicissima query in php:
    Codice PHP:
    $SQL "SELECT ID FROM " TABELLA " WHERE Coordinata = $COORDINATA AND Pianeta = '$PLANET' AND Data < '" date('Y-m-d H:i:s') . "'"
    (copio il codice per aiutarvi a capire)

    Invio la pagina e vedo che non mi da risultato. Coordinata è un numero, Pianeta è una stringa.
    Possibile che non mi dia risultato? Sono sicuro che il record che soddisfi la ricerca ci sia...

    Apro PhpMyAdmin, accedo al database.. cerco la stringa e la trovo. Provo allora la prova del nove: copio la query, la faccio fare a PhPMyAdmin mettendo i valori cche dovrebbe trovare e non mi trova nulla. Provo a togliere la condizione "data = ...." e non lo trova ancora

    Tolgo anche la condizione Pianeta, e mi trova l'unico record con coordinata XXX. Faccio un quarto Select con solo "WHERE Pianeta = 'nome'" (con nome copiato dal record del db stesso! ) E non lo trova. Ho provato il Cerca di phpMyAdmin con il nome copiato, e ancora nulla.




    Avete idee?

  2. #2
    Codice PHP:
    $SQL "SELECT ID FROM " TABELLA " WHERE ...." 
    TABELLA è una variabile o cosa?

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: MySql - Query senza risultati ?!

    Originariamente inviato da Takeno
    Avete idee?
    Sì.
    Favorisci il nome del pianeta, nonché la versione di mysql

  4. #4
    Originariamente inviato da DragonOfLight
    Codice PHP:
    $SQL "SELECT ID FROM " TABELLA " WHERE ...." 
    TABELLA è una variabile o cosa?
    Dichiarata in quella maniera può essere solo una costante.
    Ma potrebbe essere anche un errore...

    Volevi che "TABELLA" fosse una costante o ti sei dimenticato il dollaro?

  5. #5
    Altra idea, il nome del pianeta come è stato inserito nel database?

    è stato "ripulito" da caratteri speciali?

    Prova a mettere nella query su phpmyadmin:
    codice:
    WHERE Pianeta like '%nome%'
    dove nome è il nome del pianeta.

  6. #6
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Scusate il ritardo.. allora..


    Si, TABELLA è una costante.

    Ripeto.. la query che emette, è giustissima. Compilata delle varie variabili, funziona se do la coordinata. Se lascio come condizione solo PIANETA = non va..

    Nella tabella il nome del pianeta è 'Arrivo' (la prima parola che mi era venuta in mente ). Ma anche con altre prove non mi trova risultati :S

  7. #7
    Originariamente inviato da Takeno
    Scusate il ritardo.. allora..


    Si, TABELLA è una costante.

    Ripeto.. la query che emette, è giustissima. Compilata delle varie variabili, funziona se do la coordinata. Se lascio come condizione solo PIANETA = non va..

    Nella tabella il nome del pianeta è 'Arrivo' (la prima parola che mi era venuta in mente ). Ma anche con altre prove non mi trova risultati :S
    Ti consiglio di fare così:

    1) stampa la query a schermo dopo averla valorizzata con le tue costanti e variabili:
    echo "<pre>".print_r($query)."</pre>";

    2) copiala e incollala dentro PHPmyADMIN

    3) clicca sul tasto EXPLAIN e cerca di capire quando ottiene risultati = 0

    E' un metodo un po' brutale ma a volte porta risultati.

  8. #8
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Purtroppo l'ho già provato.. Ormai sto facendo le prove su phpMyAdmin, direttamente sul tasto Cerca.. Ma non mi trova nessun risultato.

    Se utilizzo "WHERE Pianeta LIKE '%Arrivo%'" allore me lo trova.. ma ho il problema che se c'è anche 'Arrivo2' mi si sballa il codice php

  9. #9
    Originariamente inviato da Takeno
    Purtroppo l'ho già provato.. Ormai sto facendo le prove su phpMyAdmin, direttamente sul tasto Cerca.. Ma non mi trova nessun risultato.

    Se utilizzo "WHERE Pianeta LIKE '%Arrivo%'" allore me lo trova.. ma ho il problema che se c'è anche 'Arrivo2' mi si sballa il codice php
    Come vengono inseriti i dati nella tabella?

    Sembra che davanti o alla fine del nome del pianeta ci sia un qualche carattere speciale (\n, \r o similari).

    Quindi probabilmente la procedura che inserisce i dati in tabella non ripulisce i testi.

    Una soluzione può essere:

    codice:
    WHERE trim(Pianeta)='nomepianeta'
    In questo caso dovrebbe pensare MYSQL a ripulirti il nome

  10. #10
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Grazie Dragon.. la funzione LTRIM di SQL mi serviva.. per altre cose ma mi serviva

    Ho risolto qualche ora fa.. il problema è che per un errore di conteggio caratteri, prendevo anche lo spazio prima del nome. E vedendo mille e rotti record con uno spazio davanti al nome, sembravano tutti normali


    Grazie mille

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.