Visualizzazione risultati 1 fino 2 di 2

Discussione: Php non trova i file inviati per querystring

  1. #1
    pupax non è connesso Utente giovane
    Data registrazione
    06-05-2010
    Messaggi
    30

    Smile Php non trova i file inviati per querystring

    Ho una pagina con unna lista di post per vederne uno a uno ho pensato di passare l'id del post in questo modo
    Codice:
    post.php?id=$id_post
    ma quando lì mando all'altra pagina
    Codice PHP:
    <?php
    $connessione
    =mysql_connect("localhost", "username", "");
    $selezione_db=mysql_select_db("db", $connessione);
    $id_post = $_GET[id];
    ?>
    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <?php
    $sql
    = 'SELECT titolo, autore, data_creazione, contenuto FROM post WHERE id_post = $id_post'
    . ' LIMIT 0, 30 ';
    $lettura_risultati=mysql_query("$sql") or(die(mysql_error()));
    if(
    mysql_num_rows($lettura_risultati)>0){
    while(
    $scatola_temporanea=mysql_fetch_array($lettura_risultati)){
    $titolo=$scatola_temporanea[titolo];
    $autore=$scatola_temporanea[autore];
    $data_creazione=$scatola_temporanea[data_creazione];
    $contenuto=$scatola_temporanea[contenuto];
    $id_post = $_GET[id];
    echo
    "$contenuto";

    }
    //fine ciclo while che scorre la query e piazza i risultati nell'array temporaneo
    }
    else{
    //se non ha trovato record
    echo "<font face=\"Papyrus\" size=\"2\"><IMG WIDTH=40 SRC=\"http://pupax.altervista.org/pupax.it/img/guide/freccia.png\" HEIGHT=30>Che fortuna nessuno ha ancora inserito qualche guida.... Puoi essere il primo!!!</font>";
    }
    ?>
    </BODY>
    </HTML>
    (nn vi posto le informazioni di collegamento corrette) mi dà questo errore
    Codice:
    Unknown column '$id_post' in 'where clause'

  2. #2
    Guest

    Predefinito

    ciao!
    Apparte che secondo me è buona regola mettere sempre un
    Codice PHP:
    if(isset($_GET['id'])){
    per controllare che la variabile passata per querystring esista...
    comunque hai u errore di sintassi nella query mysql:
    Codice PHP:
    $sql = 'SELECT titolo, autore, data_creazione, contenuto FROM post WHERE id_post = $id_post' . ' LIMIT 0, 30 ';
    il punto concatena stringhe quindi o non ce lo metti, e ci sta che a volte funzioni lo stesso o scrivi:
    Codice PHP:
    $sql = "SELECT titolo, autore, data_creazione, contenuto FROM post WHERE id_post = ".$id_post." LIMIT 0, 30";
    mettere " o ' non cambia le cose... ma se invece che un numero (come id) dovessi passare una stringa dovresti metterla tra apici e se usi " eviti confusione a php nell'interpretare...
    esempio:
    Codice PHP:
    $sql = 'SELECT contenuto, autore FROM post WHERE titolo = ' '.$titolo.' ' ';
    questo darebbe problemi.
    se poi ti servono tutti i campi del record nella tabella invece di scriverli uno ad uno ti basta scrivere:
    Codice PHP:
    $sql = "SELECT * FROM...
    e te li prende tutti

    ciao

Regole di scrittura

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