Visualizzazione risultati 1 fino 21 di 21

Discussione: contenuto delle tabelle stampate in ogni pagina

  1. #1
    Guest

    Predefinito contenuto delle tabelle stampate in ogni pagina

    Buongiorno ragazzi, vi devo chiedere un fAavore che non mi sta facendo dormire... Cercherò di essere piu chiaro possibile....
    ipotizando di avere una tabella di mysql dove ho un id che corrisponde a una parola ad esempio cosi
    id parola
    1 casa
    2 fiore
    3 rosso

    vorrei avere ogni parola in una pagina, usando qualche ciclo ad esempio che a ogni aumento dell'id mi va A CREARE una pagina e stampa a video la parola... tipo avete presente sull'url quanto c'è scritto php?=46236 (o una cosa simile)... Se qualcuno è disposto a darmi una mano sarei molto felice e crato

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    beh, fai una pagina.php?id=x dove x sta a indicare il numero dell'id, quindi nella pagina stampi la parola associata all'id passato (che prelevi tramite $_GET['id']). Quindi, esegui una query con la condizione:

    Codice PHP:
    " [...] WHERE id = '".mysql_real_escape_string($_GET['id'])."'"
    ..Prima di usare $_GET['id'], potresti fare un controllo sia con la isset(), sia con la is_numeric()


    Ciao!

  3. #3
    Guest

    Predefinito

    ora ci provo grazie mille di tutto :) ti stimo

    EDIT:

    Scusami tanto ci ho provato come dici tu ma non ci riesco proprio.... mica gentilmente mi potresti dare tutto il codice? (dallinizio <?php a .... ?> ) pero se a te è un problema non fa nulla
    Ultima modifica di alemoppo : 26-08-2011 alle ore 12.41.33 Motivo: Non fare messaggi consecutivi: usa il tasto Edita

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    ...avevo iniziato a fartelo, però prima voglio vedere cosa hai provato: mi puoi mostrare quello che hai fatto? (quello che hai provato a fare, "(dallinizio <?php a .... ?> )"), "censurando" eventuali password per la connessione al database (che tra l'altro, puoi lasciare vuota).

    Ciao!
    Ultima modifica di alemoppo : 26-08-2011 alle ore 13.18.46

  5. #5
    Guest

    Predefinito

    Codice PHP:
    <?php
    if (isset($_GET['id'])) {
    $id = $_GET['id'];

    $dbServer = "...";
    $dbUsername = "...";
    $dbPassword = "...";
    $dbName = "....";

    $connect = mysql_connect($dbServer, $dbUsername, $dbPassword);
    $db = mysql_select_db($dbName, $connect);

    $query = "SELECT username FROM users WHERE id=$id";
    $result = mysql_query($query, $connect) or die ("Error: ".mysql_error());

    $record = mysql_fetch_array($result);
    WHERE id = '".mysql_real_escape_string($_GET['id'])."'"
    }
    ?>
    lo so che non ha senso ... e sicuramente non funziona...
    io praticamente sto facendo un forum e ogni topic che è salvato nella tabella del databases mi dovrebbe comparire nella pagina è cliccandoci su (quindi deve diventare un collegamento ipertestuale)dovrebbe aprire un'altra pagina e poi salvare commentare ecc.... non so se mi hai capito....
    io cn il php a interagire con lysql e tipo usare cicli variabili ecc me la cavichio pero a fare questi fatti non ho le basi e ti chiedo a te questo favore
    Ultima modifica di alemoppo : 27-08-2011 alle ore 13.21.01 Motivo: +tag [php]

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Invece va quasi bene:

    Per problemi di sicurezza (e non per altro: altimenti funziona ugualmente), soostituisci:

    Codice PHP:
    if (isset($_GET['id'])) {
    $id = $_GET['id'];
    con
    Codice PHP:
    if (isset($_GET['id'] && is_numeric($_GET['id']))) {
    $id = mysql_real_escape_string($_GET['id']);
    is_numeric() verifica che l'id sia un numero.
    mysql_real_escape_string() serve per evitare sql_injection

    Poi, elimina:

    Codice PHP:
    WHERE id = '".mysql_real_escape_string($_GET['id'])."'"
    , perché quello era il suggerimento di come fare la query, ma aggiungici un echo che stampi le colonne della tabella:

    Codice PHP:
    while ($riga = mysql_fetch_assoc($record)) { ///stampo tutti i messaggi dell'utente
    echo htmlentities($riga['username']); ///username è la colonna della tabella
    echo htmlentities($riga['data_inserimento_post']); /// data_inserimento_post (l'ho inventato) è la colonna della tabella
    echo htmlentities($riga['messaggio']); /// messaggio (l'ho inventato) è la colonna della tabella
    }
    htmlentities() serve per sicurezza: trasforma i caratteri speciali html in "leggibili"; per intenderci, se uno scrive nel messaggio
    Codice:
    <script>alert("ciao");</script>
    , senza htmlentities apparirà l'alert; con la htmlentities() si visualizzerà quel testo.

    ...Non so se hai capito. In questo modo, stampi tutti i messaggi dell'utente, stampando username, la data di scrittura e il messaggio. Ovviamente modificalo, mostrando quello che vuoi te; e puoi dare una formattata al testo, ad esempio:
    Codice PHP:
    echo '<p>Scritto da <span class="grassetto">'.htmlentities($riga['username']).'</span> il '.htmlentities($riga['data_inserimento']).'</p><p class="testo">'.htmlentities($riga['messaggio']).'</p>';

    Ciao!
    Ultima modifica di alemoppo : 27-08-2011 alle ore 13.40.24

  7. #7
    Guest

    Predefinito

    scusami che ti rubo tempo alla tua vita l'errore che mi da è questo:

    Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in /membri/utilissimoforum/NuovaCartella/index.php on line 2

    il codice è questo:
    Codice PHP:
    <?php
    if (isset($_GET['id'] && is_numeric($_GET['id']))) {
    $id = mysql_real_escape_string($_GET['id']);


    $dbServer = "...";
    $dbUsername = "...";
    $dbPassword = "...";
    $dbName = "....";

    $connect = mysql_connect($dbServer, $dbUsername, $dbPassword);
    $db = mysql_select_db($dbName, $connect);

    $query = "SELECT username FROM users WHERE id=$id";
    $result = mysql_query($query, $connect) or die ("Error: ".mysql_error());

    $record = mysql_fetch_array($result);

    }
    while (
    $riga = mysql_fetch_assoc($record)) { ///stampo tutti i messaggi dell'utente
    echo htmlentities($riga['username']); ///username è la colonna della tabella

    }


    ?>
    A posta di dannarci con questo codice se vuoi lo rifacciamo di nuovo da capo e ora ti spiego bene bene cosa mi serve.... (lascia stare la tabella di prima) i

    Io ho questa tabella
    id nome
    1 pro
    2 film
    3 pc
    io voglio fare un codice che mi stampa sul foglio pro film pc ( io avevo pensato a un ciclo perche poi ogni volta viene inserito un nuovo nome) tipo che aumenta l'id e all'aumento corrisponde a un nome ... questo primo problema (gia lo fatto il codice e lo gia messo sul forum perche non parte mi da errore, se puoi e se non ti disturbo puoi controllare)... e poi dopo aver stampato sulla pagina andando col cursore del mouse si deve cliccare e aprire un'altra pagina (usando tipo un collegamento )....
    Se gentilmente mi puoi aiutare io ti sarei grato....
    Ultima modifica di alemoppo : 27-08-2011 alle ore 14.24.02 Motivo: +tag [php]

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Innanzitutto, l'errore è (errore mio) che ho chiuso la parentesi dopo la prima isset() troppo tardi (alla fine). Prova così:

    Codice PHP:
    <?php
    if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = mysql_real_escape_string($_GET['id']);


    $dbServer = "...";
    $dbUsername = "...";
    $dbPassword = "...";
    $dbName = "....";

    $connect = mysql_connect($dbServer, $dbUsername, $dbPassword);
    $db = mysql_select_db($dbName, $connect);

    $query = "SELECT username FROM users WHERE id=$id";
    $result = mysql_query($query, $connect) or die ("Error: ".mysql_error());

    while (
    $riga = mysql_fetch_assoc($result)) { ///stampo tutti i messaggi dell'utente
    echo htmlentities($riga['username']); ///username è la colonna della tabella
    }
    }
    else die(
    'Errore: parametro id non corretto');

    ?>
    Comunque, questo codice non ha moltissimo senso: per funzionare, funziona (almeno, dovrebbe), però scrive soltanto l'username dell'id associato. Quindi, scrive più volte lo stesso username. Quindi, (forse), quel while() non andrebbe messo, oppure andrebbe messo un LIMIT 1 nella query...


    . questo primo problema (gia lo fatto il codice e lo gia messo sul forum perche non parte mi da errore, se puoi e se non ti disturbo puoi controllare)
    Puoi scrivermi il sorgente?

    Ciao!
    Ultima modifica di alemoppo : 27-08-2011 alle ore 14.32.40

  9. #9
    Guest

    Predefinito

    ecco http://forum.it.altervista.org/php-m...a-tabella.html

    Unione:

    agazzi miei vi chiedo un favore grande come una casa.... gentilmente mi dovete dire dove ho sbagliato perche a me questo errore mi afflige l'animo....
    Grazie per l'attenzione
    Codice PHP:
    <?php
    $host
    = '...';
    $user = '...';
    $password = '....';
    $database = '...';
    $db = mysql_connect($host, $user, $password)
    or die (
    "impossibile connetersi al server");
    mysql_select_db($database, $db)
    or die (
    "impossibile connettersi al daabasee");
    $st=mysql_query("SELECT COUNT(id) AS totale FROM forum") or die(mysql_error());
    $row=mysql_fetch_assoc($st);
    $i=$row['totale'];
    for (
    $n=1;$n<$i;$n++) {
    $name=mysql_query("select nome from forum where id=$n") or die(mysql_error());
    echo
    $name;
    }
    ?>
    con questo codice dovrei stampare a video i contenuti della tabella ... i records della tabella sono id e nome


    L'errore che da è questo

    Resource id #4

    EDIT:

    forse a ogni ciclo l'id dovrebbe aumentare di 1?
    Ultima modifica di alemoppo : 27-08-2011 alle ore 14.44.57 Motivo: unione + tag [php]+ Non fare messaggi consecutivi: usa il tasto "Edita"!

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Più semplicemente:

    Codice PHP:
    <?php
    $host
    = '...';
    $user = '...';
    $password = '....';
    $database = '...';
    $db = mysql_connect($host, $user, $password)
    or die (
    "impossibile connetersi al server");
    mysql_select_db($database, $db)
    or die (
    "impossibile connettersi al daabasee");

    $result = mysql_query("SELECT nome,id FROM forum") or die(mysql_error());

    while (
    $riga = mysql_fetch_assoc($result)) {
    echo
    '<a href="pagina.php?id='.$riga['id'].'">'.htmlentities($riga['nome']).'</a><br>'; //sostituisci "pagina.php" con il nome della pagina che abbiamo fatto sopra
    }
    ?>
    Ciao!
    Ultima modifica di alemoppo : 27-08-2011 alle ore 14.46.16

  11. #11
    Guest

    Predefinito

    secondo me sto diventando il piu rompi del forum XD
    io a questo punto ho 2 pagine

    forum.php
    Codice PHP:
    <?php
    $host
    = 'localhost';
    $user = 'root';
    $password = 'password';
    $database = 'my_utilissimoforum';
    $db = mysql_connect($host, $user, $password)
    or die (
    "impossibile connetersi al server");
    mysql_select_db($database, $db)
    or die (
    "impossibile connettersi al daabasee");

    $result = mysql_query("SELECT username,id FROM users") or die(mysql_error());

    while (
    $riga = mysql_fetch_assoc($result)) {
    echo
    '<a href="pagina.php?id='.$riga['id'].'">'.htmlentities($riga['nome']).'</a><br>'; //sostituisci "pagina.php" con il nome della pagina che abbiamo fatto sopra
    }
    ?>
    e l'altra pagina

    pagina.php
    Codice PHP:
    <?php
    if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = mysql_real_escape_string($_GET['id']);


    $dbServer = "localhost";
    $dbUsername = "root";
    $dbPassword = "password";
    $dbName = "my_utilissimoforum";

    $connect = mysql_connect($dbServer, $dbUsername, $dbPassword);
    $db = mysql_select_db($dbName, $connect);

    $query = "SELECT username FROM users WHERE id=$id";
    $result = mysql_query($query, $connect) or die ("Error: ".mysql_error());

    while (
    $riga = mysql_fetch_assoc($result)) { ///stampo tutti i messaggi dell'utente
    echo htmlentities($riga['username']); ///username è la colonna della tabella
    }
    }
    else die(
    'Errore: parametro id non corretto');

    ?>
    nella pagina forum.php è bianca e se clicco su pagina.php dice
    Errore: parametro id non corretto
    Ultima modifica di alemoppo : 27-08-2011 alle ore 15.13.27 Motivo: +tag [php]

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Il primo da quell'errore, perché non hai messo i parametri corretti nella connessione al database:
    sostituisci:
    Codice PHP:
    $user = 'root';
    $password = 'password';
    con:
    Codice PHP:
    $user = 'utilissimoforum';
    $password = ''; //la puoi lasciare vuota: funzionerà ugualmente :)
    Invece, nella seconda pagina, è normale che da quell'errore, perché la devi richiamare con l'id: devi scrivere
    pagina.php?id=1
    (1 è un esempio)...


    Ah, anche in pagina.php correggi i parametri di connessione...

    Ciao!

    EDIT:

    Domande (forse) ovvie, ma è sempre bene chiederlo :

    -Hai attivato il database?
    -Hai creato (e riempito {per prova}) le tabelle?
    Ultima modifica di alemoppo : 27-08-2011 alle ore 15.21.01

  13. #13
    Guest

    Predefinito

    ho cambiato i parametri e cmnq a $host='localhost', lo lascio cosi?

    cmnq anche cambiando nella pagina forum non mi esce nulla è bianca... poi non ho capito come devo scrivere io il id=1....

    quindi per collegarmi al database va bene cosi?
    Codice PHP:
    $host = 'localhost';
    $user = 'utilissimoforum';
    $password = 'password';
    $database = 'my_utilissimoforum';
    $db = mysql_connect($host, $user, $password)
    or die (
    "impossibile connetersi al server");
    mysql_select_db($database, $db)
    or die (
    "impossibile connettersi al daabasee");
    Ultima modifica di alemoppo : 27-08-2011 alle ore 15.34.52 Motivo: +tag [php]

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    La connessione al database sembra andar bene, se al posto di "password" metti la tua password; però, ti consiglio di lasciare vuoto quel campo: funziona ugualmente!

    Per l'altra pagina, non aprirla così:
    Codice:
    utilissimoforum.altervista.org/eventualecartella/pagina.php
    ma
    Codice:
    utilissimoforum.altervista.org/eventualecartella/pagina.php?id=2
    ..2 è l'id dell'username.. puoi mettere quello che vuoi...

    Ciao!

  15. #15
    Guest

    Predefinito

    con pagina.php mettendo come hai detto tu va... ora il problema è che nella pagina forum.php non compare niente... ho provato a usare echo e stampare ed lo fa quindi per il database non c'è problema... mmm mica per caso nel ciclo o prima c'è qualche virgola che non va? io sto cercando ma non trovo nessun erroreù

    Cmnq grazie di tutto se ti trovi per formia ti offro qualcosa XD

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    prova a sostituire:

    Codice:
    SELECT username,id FROM users
    con:


    Codice:
    SELECT username,id FROM users WHERE 1
    Però non credo che il problema sia quello....

    Ciao!

  17. #17
    Guest

    Predefinito

    provato non è neanche quello

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Sembra che non hai nessun utente in quella tabella :\

    Prova così:

    Codice PHP:
    <?php
    $host
    = 'localhost';
    $user = 'utilissimoforum';
    $password = 'password';
    $database = 'my_utilissimoforum';
    $db = mysql_connect($host, $user, $password)
    or die (
    "impossibile connetersi al server");
    mysql_select_db($database, $db)
    or die (
    "impossibile connettersi al daabasee");

    $result = mysql_query("SELECT username,id FROM users") or die(mysql_error());

    while (
    $riga = mysql_fetch_assoc($result)) {
    echo
    '<a href="pagina.php?id='.$riga['id'].'">'.htmlentities($riga['nome']).'</a><br>'; //sostituisci "pagina.php" con il nome della pagina che abbiamo fatto sopra

    echo '<br>Utenti trovati: '.mysql_num_rows($result);

    }
    ?>
    In questo modo, ci mostra quante righe preleva dal database. Se è 0, significa che non hai nessun utente nella tabella, oppure c'é qualche altro problema. Se invece non è 0, la colpa è dello script.

    Ciao!
    Ultima modifica di alemoppo : 28-08-2011 alle ore 02.33.55

  19. #19
    Guest

    Predefinito

    questo script non vuole proprio andare...... abbiamo sbagliato in qualcosa perche ho copiato quello che hai scritto ed mi esce cosi:

    Utenti trovati: 2

    Utenti trovati: 2


    quindi la tabella è piena (ho controllato anche nel phpadmin) ....

    Quindi il problema è per forza in quello script pero non riesco a capire dove è sbagliato!

  20. #20
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Ahhhh, sostituisci:

    Codice PHP:
    htmlentities($riga['nome'])
    Con:
    Codice PHP:
    htmlentities($riga['username'])
    Ciao!

    EDIT:

    la riga
    Codice PHP:
    echo '<br>Utenti trovati: '.mysql_num_rows($result);
    Se vuoi lasciarla, mettila dopo la "}" (ovvero, fuori dal while), altrimenti quella riga la scrive in ogni utente!
    Ultima modifica di alemoppo : 28-08-2011 alle ore 17.41.57

  21. #21
    Guest

    Predefinito

    Non saprò mai come sdebitarmi, finalmente lo script va.... ti ringrazio ancora di cuore sei un mito...... Alla prossima!!!!

Regole di scrittura

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