Visualizzazione dei risultati da 1 a 9 su 9

Discussione: errore riga

  1. #1

    errore riga

    Ciao raga sto seguendo questo libro
    per imparare qualcosina, ma c'è un riga che mi da errore, ho controllato anche nei files completi e d è uguale.
    La riga è questa:
    $query_rs_tourDetail = "SELECT * FROM tbl_tours INNER JOIN tbl_country On tbl_country.countryID=tbl_tours.country WHERE tbl_country.region =". $_GET['regionID'] ." ORDER BY tbl_country.countryName";

    Prima funzionava ma dopo avere aggiunto questa parte WHERE tbl_country.region =". $_GET['regionID'] ." non va +. Mi da appunto un errore nella sintassi sql.

    Potete darmi una mano a capirci qualcosina??
    ciao grz.

  2. #2
    probabilmente la variabile $_GET['regionID'] è vuota, quindi la query risulta mal formata.
    prova a visualizzare la query in modo da vedere qual'è effettivamente il parametro che le stai passando. così:

    print($query_rs_tourDetail);

    mettilo subito dopo la dichiarazione della stringa contenente la query ($query_rs_tourDetail = "....") e prima che la query stessa venga eseguita.

    Il campo "regionID" lo stai passando all'URL come query string?

  3. #3
    Si infatti è vuota, perchè deve "riempirla" il clic dell'utente su una pagina principale ad essa, se ho ben capito l'utente scegliendo il tipo di regione riempirà questo valore prendendone l'id dal database. Provo con quanto mi hai suggerito e ti faccio sapere.
    Si dovrebbe passarlo come query string.
    ciao grz.

    edit--- va bene in questo modo:

    $query_rs_tourDetail = print($query_rs_tourDetail); "SELECT * FROM tbl_tours INNER JOIN tbl_country On tbl_country.countryID=tbl_tours.country WHERE tbl_country.region =". $_GET['regionID'] ." ORDER BY tbl_country.countryName";

    scusa la mia ignoranza ma sono niubbissimo, serve a verificare che in effetti assegni il valore??
    L'URL che mi visualizza sembra essere giusto:
    http://xx/xx/tours_detail.php?6=6

  4. #4
    Originariamente inviato da sangkavr
    scusa la mia ignoranza ma sono niubbissimo, serve a verificare che in effetti assegni il valore??
    L'URL che mi visualizza sembra essere giusto:
    http://xx/xx/tours_detail.php?6=6
    sì, serve a verificare che il valore venga effettivamente assegnato. suppogo che intendessi scrivere:
    http://xx/xx/tours_detail.php?regionID=6

  5. #5
    Infatti riguardando dovrebbe uscire porprio il link che hai indicato tu, inserendo il print che mi hai scritto non cambia nulla.
    In partica mi da quest'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 'ORDER BY tbl_country.countryName LIMIT 0, 5' at line 1".
    Visto che il libro dice che funziona, temo sia un incompatibilità del mio "mysql", forse una versione più nuova, boh.

  6. #6
    Forse ho trovato l'errore, dovrebbe essere nella pagina che dovrebbero assegnare tale valore e rimandarlo a questa, in pratica non restituisce regionID ma solo un valore numerico non associandolo a nessuna variabile. Almeno credo.

  7. #7
    Di fatti con lo stesso procedimento indicato nel libro invece di darmi questo codice:
    <?php echo $row_rs_worldregions['regionName']; ?>

    mi da questo qui:
    <?php echo $row_rs_worldregions['regionName']; ?>

    In questo modo, dimmi se sbaglio, non riesce a definire che href è uguale alla pagina + il regionID, giusto? Mi sembra ci sia una riga in +, e non capisco il perchè.

    ---edit--- in sostanza credo di aver risolto, solo non capisco ancora perchè si comporta in questo modo dreamweaver. Cmq tanto meglio, gli errori aiutano a capire molto + che seguire.
    ciao.

  8. #8
    E' normale che si comporti in quel modo che hai descritto, perchè quello che devi fare è costruire un URL (che è una normale stringa) contenente un campo (anche lui è una stringa) al quale assegni un valore (questo non è una porzione di stringa, ma è il contenuto di una variabile).

    Nel modo in cui hai fatto tu:

    Codice PHP:
    <a href="tours_detail.php?<?php echo $row_rs_worldregions['regionID']; ?>=<?php echo $row_rs_worldregions['regionID']; ?>">
    stai dicendo all'interprete PHP che subito dopo la stringa "tours_detail.php?" deve stampare il CONTENUTO DELLA VARIABILE "$row_rs_worldregions['regionID']" seguito dal segno di '=' e poi di nuovo il contenuto della variabile "$row_rs_worldregions['regionID']". Ed in questo modo ottieni proprio la stringa "6=6" (se 6 è il valore di 'regionID' estratto dal database).

    La cosa giusta invece è dire all'interprete PHP che deve costrure una stringa formata dai caratteri "tours_detail.php?regionID=" ed a questo aggiungere il valore della variabile di cui sopra. Devi imparare a distinguere in modo netto e chiaro le porzioni di HTML e le porzioni di PHP che sono contenute nello stesso file.

  9. #9
    Sono agli inizi quindi un pò di confusione penso si chiara;
    xò credo di aver capito quanto hai detto, però mi chiedevo come fa nel libro a fare tutto senza dovre intervenire a mano sul codice? In pratica lui ottiene già tutto bello e fatto senza mettere mano al codice, e lo (se hai sottomano dreamweaver prova),
    in una tabella inserisce un recordset, a questo record set assegna un link, che poi va a definire in modo dinamico collegando a quel rs una pagina ed assegnando a questo dei parametri (value,name), ritrovandosi come ho già detto con il codice già pronto, mentre io sono dovuto intervenire manualmente.

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.