motore di ricerca per db mysql

  :bye:

Salve, sono un novizio della programazione php.

Attualmente sto creando un programma di contabilita' personale semplice in cui posso vedere i movimenti di un ipotetico conto bancario. :-\

Adesso vorrei creare un motore di ricerca che mi faccia vedere determinati dati contabili impostati mediante dei criteri quali la data del movimento bancario, il tipo di transazione e il metodo di pagamento.

Lo script seguente dovrebbe far vedere cio' che vorrei ma esce questo messaggio di errore  quando carico i dati:

  >:(

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data='3/03/2007'and transazione='24' and metodo='24'' at line 1 

 >:(

<?php

include "config.php";

connetti();

$select='select *';

$from='from transazioni';

$where='where 1';

   $data=$_POST['data'];

      if($data!=""){

         $where.="and data='$data'";

      }

   $transazione=$_POST['transazione'];

      if($transazione!=''){

         $where.="and transazione='$transazione' ";

      }

   $metodo=$_POST['metodo'];

      if($metodo!=''){

         $where.="and metodo='$metodo'";

      }

$dati=mysql_query($select.$from.$where);

if (!$dati) {

   exit(' Error: ' . mysql_error() . '</p>');

}

while($res=mysql_fetch_array($dati)){

   $id=$res["id"];

   $id_conto=$res["id_conto"];

   $data=$res["data"];

   $transazione=$res["transazione"];

   $conto=$res["conto"];

   $debito=$res["debito"];

   $credito=$res["credito"];

   $metodo=$res["metodo"];

   $note=$res["note"];

   echo("<tr align=\"center\" >

   <td>$data</td><td>$transazione</td><td>$debito</td><td>$credito</td><td>$metodo</td><td>$note</td>

   </tr>");

}?>

Se il mo messaggio risulta difficile rimango sempre a disposizione per ulteriori chiarimenti.

inviato 9 anni fa
dardo-psg3
X 0 X

Forse il problema dipende dal fatto che le diverse stringhe che compongono la query non hanno spazi prima e dopo, quindi quando le accodi si attaccano senza spazi.

Appena prima di:

$dati=mysql_query($select.$from.$where);

metti un echo $select.$from.$where; per vedere che query esegui

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie per il tuo interessamento!! :)

la query che ne viene fouri è questa:

    select *from transazioniwhere 1 and data='2007-07-03' and transazione = '24' and metodo='24'

la query sembra essere eseguita bene però non funziona lo stesso. :dunno:

credo che forse il problema vada ricercato nella data perchè nella tabella è in formato DATE mentre io la inserisco nel campo come una stringa. :-\

Pero' quando non seleziono la data come condizione di ricerca, il motore non funziona comunque. >:( 

risposto 9 anni fa
dardo-psg3
X 0 X

 :) ho capito il problema degli spazi della query e di fatto il programma inizia a funzionare :) ;) :D ;D

 grazie per il tuo suggerimento:bye: :bye:

risposto 9 anni fa
dardo-psg3
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda