Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    una cosina semplice, ma con PHP non saprei come procedere

    Vi chiedo alcuni consigli per realizzare una cosa semplice semplice.
    Io saprei realizzarla con ASP.net ma con PHP non riesco a procedere...

    piccolo esempio:
    in un database mysql ci sono due semplici tabelle.
    la prima riporta nome // cognome
    la seconda riporta nome // età

    in una pagina web viene visualizzata la prima tabella con nome e cognome

    io vorrei che questa tabella abbia le righe selezionabili in modo che cliccando sulla riga corrispondente ad un nome si acceda ad una seconda pagina che dobrebbe mostrare una query estrapolata dalla seconda tabella del database con il nome selezionato e l'età relativa.

    il punto che mi risulta "oscuro" è come poter selezionare la riga dalla prima tabella e comunicare via 'POST' il dato alla seconda pagina.

    Grazie infinite per l'aiuto!

  2. #2
    Ciao, per comunicare il dato via POST bisogna utilizzare un form con tanti input quanti sono i record nella tabella (ad esempio checkbox) ed inviarli alla seconda pagina.
    Un modo alternativo sarebbe quello di utilizzare dei link, ma in questo caso i dati verrebbero passati mendiante GET.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <table border="1" width="100%">
        <
    tr>
            <
    td>ciccio</td>
            <
    td>ciccione</td>
            <
    td>
            <
    form action="tuapagina.php" method="post">
                <
    input type="hidden" name="id" value="1" />
                <
    input type="submit" name="invia" value="modifica" />
            </
    form>
            </
    td>
        </
    tr>
        <
    tr>
            <
    td>mario</td>
            <
    td>marione</td>
            <
    td>
            <
    form action="tuapagina.php" method="post">
                <
    input type="hidden" name="id" value="2" />
                <
    input type="submit" name="invia" value="modifica" />
            </
    form>
            </
    td>
        </
    tr>
    </
    table
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    dottwatson,
    grazie per la risposta.
    il codice che hai postato mi pare che sia un semplice codice in html e mi è chiaro.
    quello che non saprei fare è ottenere il nome voluto sulla pagina di invio.
    prendendo il tuo esempio: cliccando su "modifica" della riga con il nome 'ciccio', vorrei che sulla pagina di invio 'tuapagina.php' comparisse "ciccio".
    cliccando ovviamente sulla riga con 'mario' dovrò comparire il nome 'mario'.

    qual'è la variabile/funzione che 'memorizza' il valore del campo che 'seleziono' ?

    grazie ancora

  5. #5
    era un esempio per dirti che quando costruisci la prima pagina (nome/cognome) dinamicamente con la query devi creare dei link (con variabile get) o dei form (con input type hidden da inviare con post).

    quello che invii (con post o get) lo utilizzi per fare la query sulla seconda nella seconda pagina (sulla tabella nome/eta)

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    dipende... puoi creare un campo hidden con il nome dentro, oppure, siccome sei in modifica e già fai la query per recuperare i dati , puoi ottenere il nome direttmente sul reord voluto...

    è difficile spiegarti come operare al meglio senza avere uno scraccio di codice
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    il codice in questione potrebbe essere questo

    pagina1:
    viene visualizzata una semplice tabella letta dal database mysql
    ad ogni riga della tabella viene generato un link per la pagina2
    cliccando sul link vorrei che nella pagina2 apparisse il nome della riga cliccata.
    non sono in grado di scrivere il codice della pagina2!


    codice pagina1:

    <html>
    <head>
    <title>pagina1</title>
    </head>
    <body>

    <?php

    $db_host="localhost";
    $db_user="user";
    $db_pass="pass";
    $db_name="rubrica";

    $conn=mysql_connect($db_host,$db_user,$db_pass) or die("Non è stato possibile stabilire una connessione");
    if(@mysql_select_db("rubrica",$conn)!=1)

    mysql_query("CREATE DATABASE 'rubrica'")or die("Errore ".mysql_errno().":".mysql_error()."\n");

    $query = "SELECT * FROM `nomi` ORDER BY `nomi`.`$sort` ASC LIMIT 0, 30 ";

    $dbResult = mysql_query($query, $conn);
    $AffectedRows = mysql_affected_rows($conn);

    if ($AffectedRows == 0)
    {
    print("la tabella è vuota!");
    }
    else
    {
    print "<table border=\"1\">\n";

    for ($index=0 ; $index<$AffectedRows ; $index++)
    {
    $row = mysql_fetch_row($dbResult);
    if ($index==0)
    {
    print "<tr>\n";
    foreach ($row as $k => $v)
    {
    $myfield = mysql_fetch_field($dbResult,$k);
    print ("<td>" . $myfield->name . "</td>");
    }
    print "</tr>\n";
    }

    foreach ($row as $k => $v)
    { print ("<td>$v");

    if ($k==0)
    {

    echo 'clicca qui';

    }
    print ("</td>");
    }

    print "</tr>\n";
    }
    print "</table>\n";
    }
    mysql_free_result($dbResult);
    mysql_close($conn);

    ?>

    </body>
    </html>

  8. #8
    Originariamente inviato da iorso
    il codice in questione potrebbe essere questo

    pagina1:
    viene visualizzata una semplice tabella letta dal database mysql
    ad ogni riga della tabella viene generato un link per la pagina2
    cliccando sul link vorrei che nella pagina2 apparisse il nome della riga cliccata.
    non sono in grado di scrivere il codice della pagina2!


    codice pagina1:

    <html>
    <head>
    <title>pagina1</title>
    </head>
    <body>

    <?php

    $db_host="localhost";
    $db_user="user";
    $db_pass="pass";
    $db_name="rubrica";

    $conn=mysql_connect($db_host,$db_user,$db_pass) or die("Non è stato possibile stabilire una connessione");
    if(@mysql_select_db("rubrica",$conn)!=1)

    mysql_query("CREATE DATABASE 'rubrica'")or die("Errore ".mysql_errno().":".mysql_error()."\n");

    $query = "SELECT * FROM `nomi` ORDER BY `nomi`.`$sort` ASC LIMIT 0, 30 ";

    $dbResult = mysql_query($query, $conn);
    $AffectedRows = mysql_affected_rows($conn);

    if ($AffectedRows == 0)
    {
    print("la tabella è vuota!");
    }
    else
    {
    print "<table border=\"1\">\n";

    for ($index=0 ; $index<$AffectedRows ; $index++)
    {
    $row = mysql_fetch_row($dbResult);
    if ($index==0)
    {
    print "<tr>\n";
    foreach ($row as $k => $v)
    {
    $myfield = mysql_fetch_field($dbResult,$k);
    print ("<td>" . $myfield->name . "</td>");
    }
    print "</tr>\n";
    }

    foreach ($row as $k => $v)
    { print ("<td>$v");

    if ($k==0)
    {

    echo 'clicca qui';

    }
    print ("</td>");
    }

    print "</tr>\n";
    }
    print "</table>\n";
    }
    mysql_free_result($dbResult);
    mysql_close($conn);

    ?>

    </body>
    </html>
    mmm... ci sono errori:
    1) tale script crea ogni volta un database da capo... (e nn credo sia il tuo intento): conviene crearlo un unica volta (magari con phpmyadmin);
    2) i numeri di record di una query di tipo SELECT si calcolano con mysql_num_rows (che accetta come unico parametro obbligatorio l'identificativo delle risorsa che nel tuo script è rappresentato da $dbResult )
    3) in ogni modo per "scorrere i risultati di una query si utilizza (generalmente) il ciclo while:

    while($riga = mysql_fetch_array($dbResult ))

  9. #9
    Secondo me per creare la pagina che ti da l'output dei dati che sono nel db,
    dovresti usare un codice come questo:

    <?php
    /* Connessione al db */
    $link=@mysql_connect("tuohost","tuousername","tuap wd")or die("Errore di connessione al server SQL: username o password errati");
    $dbw=mysql_select_db("tuodb")or die("Errore di connessione al database");

    /* Recupero dei dati da inserire nel form */
    $sql = "SELECT * FROM nomi ORDER BY nomi ASC";
    $rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());

    /* Setto un array nel quale vado ad inserire i dati che recupero*/
    $dati = array();
    /* Scorrendo i record assegno i valori all'array */
    while ($rec = mysql_fetch_array($rs))
    {
    $dati[] = $rec;
    }
    ?>
    <html>
    <head>
    </head>

    <body>
    </body>
    <table>
    <?php
    foreach ($dati as $d)
    {
    $id = $d['id'];
    $nome = $d['camponome'];
    $cognome = $d'campocognome'];
    ?>
    <tr>
    <form method="post" action="mod.php">
    <input type="hidden" name="id" value="<?php echo $id ?>" />
    <td>Nome:</td>
    <td><?php echo $nome; ?></td>
    <td>Cognome:</td>
    <td><?php echo $cognome ?></td>
    <td><input type="submit" name="form" value="Modifica" /></td>
    </form>
    </tr>
    <?php
    }
    ?>
    </html>

    non l'ho provato quindi non so se ci sono errori di sintassi, se non ti e' chiaro oppure vuoi una mano per la pagina successiva fammi sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    lorenzo_jazz grazie mille!
    ho corretto alcuni errorini di parse nel tuo listato e la pagina funziona ed è chiara.
    ma il mio vero dubbio arriva ora.... come deve essere il codice nella seconda pagina?

    nella seconda pagina (che in base al tuo codice dovrebbe essere mod.php) come recupero il nome e cognome selezionato?

    con ---->>>> echo $_POST['cognome']; ???

    grazie

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.