[PHP] Nuovo server, query non funzionano

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Salve a tutti, sono dovuto passare ad un nuovo server con php 7.2
Avevo delle pagine che funzionavano correttamente ma ovviamente ora non vanno.
PHP:
$output = '';
  $result = $this->execute_query($query);
  $output .= '
  <table id="anagrafica" class="table table-bordered table-striped">
   <tr>
    <th >Data</th>
    <th width="10%">Categoria</th>
    <th width="30%">Cognome e Nome</th>
    <th width="30%">Data di Nascita</th>
    <th class="text-center" width="35%">Motivo</th>
    <th width="10%">Protocollo</th>
    <th width="35%">Assegnazione</th>
    <th width="10%">Aggiorna</th>
    <th width="10%">Precedenti</th>
   </tr>
  ';
  if(mysqli_num_rows($result) > 0)
  {
   while($row = mysqli_fetch_object($result))
   { $oDate = new DateTime($row->data);
$sDate = $oDate->format("d/m/Y");
    $output .= '
    <tr>
    <td>'.$sDate.'</td>
    <td align="center">'.$row->categoria.'</td>
    <td align="center">'.$row->cognome.'</td>
     <td align="center">'.$row->data_nascita.'</td>
     <td align="center">'.$row->motivo.'</td>
     <td align="center">'.$row->protocollo.'</td>
     <td align="center">'.$row->assegnazione.'</td>
     <td><button type="button" name="update" id="'.$row->id.'" class="btn btn-success btn-xs update">Aggiorna</button></td>
    <td align = center><a href=/archivio/fetch.php?id='.$row->id.'><img SRC=p.jpg ></a></td>
    </tr>
    ';
   }
  }
il codice sopra riportato funziona correttamente ma quando clicco sul "bottone" aggiorna non legge la riga dell'id (esce form bianco)
PHP:
 if($_POST["action"] == "Fetch Single Data")
 {
  $output = '';
  $query = "SELECT * FROM registro WHERE id = '".$_POST["id"]."'";
  $result = $object->execute_query($query);
  while($row = mysqli_fetch_array($result))
  {

   $output["data"] = $row['data'];
   $output["categoria"] = $row['categoria'];
   $output["cognome"] = $row['cognome'];
   $output["data_nascita"] = $row['data_nascita'];
   $output["motivo"] = $row['motivo'];
   $output["protocollo"] = $row['protocollo'];
   $output["assegnazione"] = $row['assegnazione'];
     
  }
  echo json_encode($output);
 }
questo sopra invece è la porzione di codice per la lettura di quel id specifico.

Come potrei fare?

P.S. ho provato tramite phpmyadmin a creare la query e funziona correttamente.
Ho controllato i dati per l'accesso a mysql e sono corretti.
 

bubino8

Utente Attivo
28 Apr 2017
343
19
18
27
BZ
Ciao prova con

$variabile = $_POST["id"];
$query = "SELECT * FROM registro WHERE id = ' ".$variabile." ' ";
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Grazie per la risposta... ho risolto, era l'installazione di mysql che non era andata a buon fine.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
attenzione, normalmente gli id sono numeri interi, quindi nel where id= gli apici non ci devono essere
PHP:
$query = "SELECT * FROM registro WHERE id = ".$variabile;
per sicurezza eventualmente forzare ad int il valore dal post
PHP:
$variabile = (int)$_POST["id"];
@bubino8
quandi scrivi del codice anche se minimo usa gli appositi bccode
 
  • Like
Reactions: bubino8