Passaggio variabile tra 2 file php

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Buongiorno a tutti.
Come dice il titolo devo passare una variabile da un file a un altro.
Questo è il codice:
PHP:
<?php
$username = "root";
$password = "";
$database = "esercizi";

$v = [];
$v1 = [];
$v2 = [];
$v3 = [];
$v4 = [];
$v5 = [];
$v6 = [];
$v7 = [];
$i=0;
$j=0;
 
$conn = mysqli_connect("localhost", $username, $password, $database);
$query="SELECT * FROM progetto";



$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);

mysqli_close($conn);

     while($row = mysqli_fetch_assoc($risultati)) {
            if($row["Elimina"] != 'D'){
                $v[$i] = $row["Nome"];
                $v1[$i] = $row["Cognome"];
                $v2[$i] = $row["Data"];
                $v3[$i] = $row["Codice"];
                $v4[$i] = $row["Intervento"];
                $v5[$i] = $row["Dintervento"];
                $v6[$i] = $row["Sala"];
                $v7[$i] = $j;
            }

?>
<tr align="center" bgcolor="FFFF35">
<td><?php echo $i."." ?></td>
<td><?php echo $v[$i] ?></td>
<td><?php echo $v1[$i] ?></td>
<td><?php echo $v2[$i] ?></td>
<td><?php echo $v3[$i] ?></td>
<td><?php echo $v4[$i] ?></td>
<td><?php echo $v5[$i] ?></td>
<td><?php echo $v6[$i] ?></td>
<td><a href='Modifica.php?cat=1'>Categoria Jeans</a></td>

   
    <?php
    $i++;
    $j++;
    }
    ?>
   
    </table>
Consigli?
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
No devo passare il valore di una variabile dal file primo.php al file secondo.php
 

Tommy03

Utente Attivo
6 Giu 2018
90
6
8
16
Bassano del Grappa (VI)
Non sono sicuro di aver capito bene, però se si tratta di un form potresti fare cosi:
PHP:
//primo file
<input type="hidden" name="campo" value="<?php echo $variabile;?>">
//secondo file
$valore_recuperato = $_POST['campo'];
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Provo a spiegarmi meglio.
Ho creato una tabella html e all'interno di questa tabella, quando viene inserito un nuovo dato(tramite un altra pagina php), viene aggiunta in automatico un a nuova riga.
In una colonna di questa tabella ci sono dei pulsanti(1 per riga, e tutti facenti la stessa cosa). Io ho bisogno che quando l'utente prema uno di questi pulsanti venga salvato il valore della riga in cui si trova il pulsante, e che questo valore venga inviato ad un altra pagina.
 

marino51

Utente Attivo
28 Feb 2013
2.682
135
63
Lombardia
Provo a spiegarmi meglio.
proprio tutta un'altra cosa ….
per favore pubblica il codice con cui vengono create le righe ed i relativi bottoni
soprattutto metti in evidenza se hai degli "ID" che identificano il contenuto della riga ma non sono presenti nella riga stessa
probabilmente vuoi fare qualcosa di simile alla figura
upload_2019-6-20_15-49-31.png
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Ecco il codice.
PHP:
<html>
<head>
<title>Output</title>
<style>
table{
border-collapse:collapse;
}
.btn {
  background-color: FFFF35; /* Blue background */
  border: none; /* Remove borders */
  color: black; /* White text */
  padding: 12px 16px; /* Some padding */
  font-size: 16px; /* Set a font size */
  cursor: pointer; /* Mouse pointer on hover */
}
</style>
</head>
<script>

</script>

</script>
<body background="Sfondo.png">
<h1 align="center">STAMPA</h1>
<table border="5" align="center" width="1200" height="800">
<tr>
<b>
<td align="center" bgcolor="orange"><b>N°riga</td><td align="center" bgcolor="orange"><b>Nome</td><td align="center" bgcolor="orange"><b>Cognome</td><td align="center" bgcolor="orange"><b>Data</td><td align="center" bgcolor="orange"><b>Codice</td><td align="center" bgcolor="orange"><b>Data intervento</td><td align="center" bgcolor="orange"><b>Tipo intervento</td><td align="center" bgcolor="orange"><b>Sala utilizzata</td><td align="center" bgcolor="orange"><b>Modifica/Elimina</td>
</tr>
<?php
session_start();
$username = "root";
$password = "";
$database = "esercizi";

$v = [];
$v1 = [];
$v2 = [];
$v3 = [];
$v4 = [];
$v5 = [];
$v6 = [];
$v7 = [];
$i=0;
$j=0;
$f=0;
 
$conn = mysqli_connect("localhost", $username, $password, $database);

$query="SELECT * FROM progetto";

$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);

mysqli_close($conn);

    //creazione tabella interattiva
    while($row = mysqli_fetch_assoc($risultati)) {
            if($row["Elimina"] != 'D'){
                $v[$i] = $row["Nome"];
                $v1[$i] = $row["Cognome"];
                $v2[$i] = $row["Data"];
                $v3[$i] = $row["Codice"];
                $v4[$i] = $row["Intervento"];
                $v5[$i] = $row["Dintervento"];
                $v6[$i] = $row["Sala"];
            }

?>
<tr align="center" bgcolor="FFFF35">
<td><?php echo $i."." ?></td>
<td><?php echo $v[$i] ?></td>
<td><?php echo $v1[$i] ?></td>
<td><?php echo $v2[$i] ?></td>
<td><?php echo $v3[$i] ?></td>
<td><?php echo $v4[$i] ?></td>
<td><?php echo $v5[$i] ?></td>
<td><?php echo $v6[$i] ?></td>
<td><?php // passaggio variabile all'altro file
?>
<?php

    $i++;
}
?>
</td>
    </table>
</body>
</html>
 

marino51

Utente Attivo
28 Feb 2013
2.682
135
63
Lombardia
puoi inserire una colonna "<td>….</td>" come riportata nell'esempio
PHP:
<?php
$i = 1;
$vx[$i] = "codiceDaPassare";
?>
<a href='script.php?nomeVariabile=<?php echo $vx[$i] ?>'>[testoDaVisualizzare]</a>
con questo effetto,
upload_2019-6-21_9-20-24.png

che cliccandolo richiama lo script successivo passando la variabile
upload_2019-6-21_9-22-3.png

nello script successivo trovi la variabile in $_GET['nomeVariabile']
 
Ultima modifica:

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Perfetto funziona.
Adesso però ho un problema nel secondo file; dopo che il dato viene ricevuto l'utente va a modificare dei campi e poi preme un pulsante per confermare, ma quando lo preme il dato che era stato passato precedentemente viene perso e il programma da errore
Allego il codice; idee?
PHP:
<html>
<head>
<title>Modifica</title>
<style>
table td {
    position: relative;
    text-align: center;
    border: 2px solid yellow;
    padding: 0;
    margin: 0;
}
::-webkit-input-placeholder {
   text-align: center;
}
.sas{
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}
.sos{
    width:150;
    height:80;
}
</style>
</head>
<body background="Sfondo.png">
<h1 align="center">
MODIFICA
</h1>
<?php
$j = $_GET['nomeVariabile'];
echo $j;
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "esercizi";
$v = [];
$v1 = [];
$v2 = [];
$v4 = [];
$v3 = [];
$v5 = [];
$v6 = [];
$v7 = [];
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}   

$query="SELECT * FROM progetto";

$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);

mysqli_close($conn);
$i=0;
$k=0;
     while($row = mysqli_fetch_assoc($risultati)) {
            $v[$i] = $row["Nome"];
            $v1[$i] = $row["Cognome"];
            $v2[$i] = $row["Data"];
            $v3[$i] = $row["Codice"];
            $v4[$i] = $row["Intervento"];
            $v5[$i] = $row["Dintervento"];
            $v6[$i] = $row["Sala"];
            $v7[$i] = $row["Elimina"];     
      
            if($j == $v3[$i]){
                $k = $i;
            }
            $i++;
    } 

?>
<form action ="Modifica.php" method ="post">
<table width="1200" height="500" border="2" align="center">
<tr>
<td bgcolor="orange" colspan="2" align="center"><b>Informazioni</td></b><td bgcolor="orange" width="500" align="center">Modifica</td>
</tr>
<tr>
<td bgcolor="yellow"><b>Nome</td></b><td bgcolor="yellow" width="500" align="center"><?php echo $v[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas" type="text"    placeholder="Modifica Nome" name="Nome"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Cognome</td></b><td bgcolor="yellow"align="center"><?php echo $v1[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Cognome"name="cognome"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Data</td></b><td bgcolor="yellow"align="center"><?php echo $v2[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Data"name="data"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Codice fiscale</td></b><td bgcolor="yellow"align="center"><?php echo $v3[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Codice fiscale"name="codice"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Intervento svolto</td></b><td bgcolor="yellow"align="center"><?php echo $v4[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Intervento"name="intervento"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Data dell'intervento</td></b><td bgcolor="yellow"align="center"><?php echo $v5[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Data intervento"name="Dintervento"/></td>
</tr>
<tr>

<td bgcolor="yellow"><b>Sala utilizzata</td></b><td bgcolor="yellow"align="center"><?php echo $v6[$k] ?></td><td align="center"bgcolor="yellow"><input class="sas"type="text" placeholder="Modifica Sala"name="sala"/></td>
</tr>
</table>
<br><br>
<center>
<input type="submit" class="sos" name="bottone2"/>
</form>
<?php
if(isset($_POST['bottone2'])){ //bottone che crea il problema
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "esercizi";

$conn = mysqli_connect($servername, $username, $password, $dbname);

$query="SELECT * FROM progetto";

$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);
$t = 0;
$f = 0;
$v3 = [];

     while($row = mysqli_fetch_assoc($risultati)) {
         //if($row["Nome" == dato1)
            $v3[$i] = $row["Progressivo"];
            $i++;
     }

$nome = $_POST['Nome'];
$cognome = $_POST['cognome'];
$data = $_POST['data'];
$codice = $_POST['codice'];
$intervento = $_POST['intervento'];
$Dintervento = $_POST['Dintervento'];
$sala = $_POST['sala'];

$ctrl = "";

if($sala != $ctrl){
  
    $sql = ("UPDATE progetto SET Sala= '$sala' WHERE Codice = '$j'");

    mysqli_query($conn, $sql);
  
}
if($nome != $ctrl){
    $sql = ("UPDATE progetto SET Nome= '$nome' WHERE Codice = '$j'");
    mysqli_query($conn, $sql);
}
if($cognome != $ctrl){
    $sql = ("UPDATE progetto SET Cognome= '$cognome' WHERE Codice = '$j'");
    mysqli_query($conn, $sql);
}
if($codice != $ctrl){
    $sql = ("UPDATE progetto SET Codice = '$codice' WHERE Codice = '$j'");
  
    mysqli_query($conn, $sql);
}
if($intervento  != $ctrl){
    $sql = ("UPDATE progetto SET Intervento = '$intervento' WHERE Codice = '$j'");
  
    mysqli_query($conn, $sql);
}
if($Dintervento != $ctrl){
    $sql = ("UPDATE progetto SET Dintervento= '$Dintervento' WHERE Codice = '$j'");
  
    mysqli_query($conn, $sql);
}
if($data != $ctrl){
    $sql = ("UPDATE progetto SET Data= '$data' WHERE Codice = '$j'");
  
    mysqli_query($conn, $sql);
}


mysqli_close($conn);

  


}

?>

</body>
</html>
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.682
135
63
Lombardia
intravedo un "form", puoi definire un campo di tipo "hidden" a cui assegni il valore che devi preservare
in modo da trovarlo a disposizione quando serve (da preferire)
esempio,
HTML:
<input type="hidden" name="MainForm" value="1" />
in alternativa puoi memorizzarlo in $_SESSION
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Già provati non funziona nessuno dei 2.
Il problema è che quando l'utente preme il pulsante il dato (che era stato passato dall'altro file) viene totalmente cancellato anche se lo si salva in altre variabili
 

marino51

Utente Attivo
28 Feb 2013
2.682
135
63
Lombardia
PHP:
$query="SELECT * FROM progetto";

$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);

mysqli_close($conn);
$i=0;
$k=0;
     while($row = mysqli_fetch_assoc($risultati)) {
            $v[$i] = $row["Nome"];
            $v1[$i] = $row["Cognome"];
scusa che ci fa una close nel bel mezzo delle operazioni ????
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Effettivamente non me ne ero accorto.
Potrebbe essere quello, lunedì quando torno in ufficio provo e ti faccio sapere
 

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
PHP:
$query="SELECT * FROM progetto";

$risultati=mysqli_query($conn, $query);

$num=mysqli_num_rows($risultati);

mysqli_close($conn);
$i=0;
$k=0;
     while($row = mysqli_fetch_assoc($risultati)) {
            $v[$i] = $row["Nome"];
            $v1[$i] = $row["Cognome"];
scusa che ci fa una close nel bel mezzo delle operazioni ????
Non è quello l'errore.