[php] problema creazione query select-where

  • Creatore Discussione Creatore Discussione twogate
  • Data di inizio Data di inizio

twogate

Utente Attivo
30 Ago 2018
28
0
1
sono da pochi mesi che sto leggendo un liobro php mysql e sto creando un piccolo programma di contabilita' che ho in access .Ho un script php per selezionare le fatture rispetto ad un nome passato da un input type di una pagina html
ma mi da un errore ora posto tutto

questa e' lo script php
PHP:
<?php
if (isset ($_POST["nome1"])){
$nome1 = $_POST["nome1"];
    try{
include $_SERVER["DOCUMENT_ROOT"].'../includes/db.inc.php';
  $sql = "SELECT * FROM registro WHERE 'descrizione' = $nome1";
 
  $jokes = $pdo->query($sql);
    $title="prima nota";
    ob_start();
  
    include '../../templates/fatture.html.php';
  
    $output=ob_get_clean();
  
  }
  catch (PDOException $e) {
    $title = 'An error has occurred';
    $output = 'DAtabase error: ' . $e->getMessage() . ' in ' .
    $e->getFile() . ':' . $e->getLine();
  }
  
}
else {
  $title = 'date riferimento';
  ob_start();
  include '../../templates/dateprimanota.html.php';
  $output = ob_get_clean();
}
include "schemafatt.html.php";
"

questa e' la pagina html form che passa il nome

"
<form action="" method="post">
 <label for="data">PRIMA DATA</label>
 <input type name="nome1">
   <input type="submit" value="cerca">
</form>
PHP:
  <body>
 
     <table border="1" cellspacing="4" cellpadding="4">
    <tr>
     <th>id</th>
     <th>data</th>
     <th>data pagamento</th>
     <th>cod fornitore</th>
     <th>descrizione</th>
     <th>numero fattura</th>
     <th>importo</th>
     <th>cod spesa</th>
     <th>metodo</th>
     <th>numero assegno</th>
     </tr>
      <?php foreach($jokes as $joke): ?>
      <tr>
    <td align="center"><?($joke['id'])?></td>
   <td align="center"><?=($joke['data'])?></td>
   <td align="center"><?=($joke['data_pagamento'])?></td>
   <td align="center"><?=($joke['cod_fornitore'])?></td>
   <td align="center"><?=($joke['descrizione'])?></td>
   <td align="center"><?=($joke['numero_fattura'])?></td>
   <td align="center"><?=($joke['importo'])?></td>
   <td align="center"><?=($joke['cod_spesa'])?></td>
   <td align="center"><?=($joke['metodo'])?></td>
   <td align="center"><?=($joke['numero_assegno'])?></td>
  <td><form action="cancellafattura.php" method="post"></td>
    <input type="hidden" name="id" value="<?=$joke['id']?>">
<td align="center"><input type="submit" value="Delete"></td></tr>
<?php endforeach; ?>
  </form>
</table>
</body>
questa e' la pagina mostra il risultato sul tabellae questo e' l'errore
DAtabase error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cocco' in 'where clause' in C:\xampp\htdocs\mio\fatture\dateprimanota.php:10
 
Ultima modifica di un moderatore:
@twogate
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
nel codice che hai postato non é presente la riga che manda lo script in errore,
ma leggendo l'errore dovresti trovare immediatamente come correggerlo,

Column not found: 1054 LA COLONNA DICHIARATA IN UNA QUERY NON ESISTE

Unknown column 'cocco' in 'where clause' LA COLONNA E' DICHIARATA CON NOME cocco NELLA WHERE

in C:\xampp\htdocs\mio\fatture\dateprimanota.php:10 NELLO SCRIPT dateprimanota.php ALLA RIGA 10

quindi controlla la riga nello script indicato

altri particolari,
<input type name="nome1">
NON INDICHI IL TYPE ....

$sql = "SELECT * FROM registro WHERE 'descrizione' = $nome1";
supponendo che nome1 sia una descrizione o una data, andrebbero scritte tra apici, cioè
PHP:
$sql = "SELECT * FROM registro WHERE descrizione = '".$nome1."'";
 
chiedo scusa per la pubblicazione errata avendo anche letto il regolamento.
Vi ringrazio per la risposta che ha funzionato anche se non ho capito perche' i doppi apici ,
 
buon giorno continuando a leggere sul libro sono arrivato al pagina del pdo statement per bloccare le query infect
sul libro e' molto generico ho provato a leggere in internet ma non riesco a trovare una soluzione come posso usare nello script pdo statement e il for each?
PHP:
<?php
if (isset ($_POST["data1"])){

    try{
include $_SERVER["DOCUMENT_ROOT"].'../includes/db.inc.php';
$data1 = $_POST["data1"];
  $sql="SELECT * FROM registro WHERE descrizione =:$data1";
  $trm= $pdo->prepare($sql);
  $trm->bindParam(":$data1",$data1);
  $trm->execute();
  $jokes= $trm->fetch();

    $title="prima nota";
    ob_start();
    
    include '../../templates/fatture.html.php';
    
    $output=ob_get_clean();
    
  }
  catch (PDOException $e) {
    $title = 'An error has occurred';

    $output = 'DAtabase error: ' . $e->getMessage() . ' in ' .
    $e->getFile() . ':' . $e->getLine();
  }
    
}
else {
  $title = 'date riferimento';

  ob_start();

  include '../../templates/dateprimanota.html.php';

  $output = ob_get_clean();
}

include "schemafatt.html.php";
 

Discussioni simili