Passaggio variabile tra 2 file php

  • Creatore Discussione Creatore Discussione Jaco_
  • Data di inizio Data di inizio

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?
 
No devo passare il valore di una variabile dal file primo.php al file secondo.php
 
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'];
 
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.
 
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
 
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>
 
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:
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:
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
 
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
 
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 ????
 
Effettivamente non me ne ero accorto.
Potrebbe essere quello, lunedì quando torno in ufficio provo e ti faccio sapere
 
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.
 

Discussioni simili