Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    57

    Errore sintassi sql 1064

    Sto mettendo in locale un sito e rispettivo database; tutto funzia alla perfezione tranne che per la ricerca nel database in quanto mi da questo errore:



    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmi\xampp\htdocs\siti\marcoravenna\italia no\risultato_ricerca.php4 on line 211
    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 'ORDER BY codice' at line 1

    Vi premetto che il server remoto usa php3 mentre io ho il 5! (e mi sa che è proprio qui il problema) vi posto il codice php perchè sto impazzendo a capire dove cavolo sta l'errore!!

    <?php
    $sql="SELECT collocazione,titolo,categoria,autore,ubicazione,ci tta,nazione,tecnica,id FROM foto WHERE $w and foto in $foto ORDER BY codice";
    $sth=mysql_query($sql);
    $riga = mysql_fetch_array($sth)OR die(mysql_error());

    //print "$sql";
    if ($riga)
    {
    if ($nowpage=='')
    $nowpage=0;
    navbar($sql,25,$nowpage,"risultato_ricerca.php4?fo to=$foto&titolo=$titolo&categoria=$categoria&autor e=$autore&ubicazione=$ubicazione&citta=$citta&nazi one=$nazione");
    if ($foto=='(1)')
    {
    echo "

    <span class='genere'>Vedi anche quelle senza foto</span></p>";
    }
    echo "

    <span class='genere'>torna in alto</span></p></td></tr></table>";
    }
    else
    {
    $testo1 ="<table width='100%' border='0' cellspacing='0' cellpadding='10' align='center' class='testo'><tr><td valign='top' class='testo'>

    <span class='testoBold'><a name='inizio'></a>Attenzione:</span>
    La ricerca effettuata non ha restituito alcun risultato.</p>";
    echo $testo1;
    if ($foto=='(1)')
    {
    echo "

    <span class='genere'>Vedi anche quelle senza foto</span></p>";
    }
    echo "</td></tr></table>";
    }

    ?>

  2. #2
    stampa la query e controlla come viene risolto "foto in $foto"

    echo $sql;

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    57
    Forse non ho capito io ma se stampo sia con print che con echo a video la varriabile $sql
    mi da a video:
    SELECT collocazione,titolo,categoria,autore,ubicazione,ci tta,nazione,tecnica,id FROM foto WHERE 1>0 and foto in ORDER BY codice

    ma forse non ho capito io quello che mi chiedevi di fare!! grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Appunto: $foto non è valorizzata... ed infatti nell'echo di $sql ti ritrovi con

    in ORDER BY
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    57
    Scusa l'ignoranza ma che significa che $foto non è valorizzata! E poi perchè tutto sto codice on line funzia alla perfezione e in locale no? se potete darmi delle dritte ve ne sarei grato perchè sono un pò all'asciutto di programmazione mysql
    grazie a tutti

  6. #6
    Originariamente inviato da antolaca
    Scusa l'ignoranza ma che significa che $foto non è valorizzata! E poi perchè tutto sto codice on line funzia alla perfezione e in locale no? se potete darmi delle dritte ve ne sarei grato perchè sono un pò all'asciutto di programmazione mysql
    grazie a tutti
    Va bene quello che hai caito e stampato. Come vedi il contenuto di $foto non esiste.

    Forse perche' il remoto hai register_globals in ON ed in locale in OFF e quindi non prendi le variabili passate con GET o POST.

    devi vedere dove e come prende i dati $foto.

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    57
    Allora davvero non avevo capito!! Scusa ma $foto non dovrebbe valutare la colonna foto del database e se essa risponde 1 allora significa che è vera altrimenti è falsa o ho capito male??? Ho anche impostato i parametri globali su on nel php.ini ma non funge lo stesso!!

  8. #8
    Originariamente inviato da antolaca
    Allora davvero non avevo capito!! Scusa ma $foto non dovrebbe valutare la colonna foto del database e se essa risponde 1 allora significa che è vera altrimenti è falsa o ho capito male??? Ho anche impostato i parametri globali su on nel php.ini ma non funge lo stesso!!
    hai convinzioni errate su come funziona una SELECT.

    WHERE 1>0 questo e' terribile.... non si e' mai dato il caso non fosse vero.

    IN() funziona diversamente....

    SELECT campo FROM tabella WHERE campo IN ('1', '2', 'a');

    questo ti sceglie i campi in cui si trovano i valori '1' oppure '2' oppure 'a'

    quindi devi passare dei "valori" in IN() che saranno ricercati nel "campo".

    http://database.html.it/guide/leggi/87/guida-mysql/

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

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.