[PHP] Difficoltà inserimento valori nella tabella scontrini

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
salve ragazzi , ho un problema di funzionamento del mio programmino in php , spero di risolverlo qui , visto che in altri siti nessuno mi ha risposto .

PHP:
<?php
session_start();

for($i=0;$i<5;$i++)
echo "<br>";

$nome=$_SESSION['name'];
$cognome=$_SESSION['subname'];

$prodotti=$_POST['prodotti'];
$quantita=$_POST['quantita'];

if(!$prodotti && !$quantita)
  echo "prodotto e quantita' non selezionati!";
else
    {
$con=new mysqli('127.0.0.1','root','') or die (mysql_error());
mysqli_select_db($con,'acquisti') or die (mysql_error());
$query = "SELECT idprodotto,nome,quantita,prezzo
          FROM prodotti";
$result=mysqli_query($con,$query);

if(!$result)
 echo "errore caricamento...".(mysql_error());
else
 { 
     $rs=mysqli_fetch_row($result);
     for($i=0;$i<sizeof($rs);$i++)
     { 
         if(($prodotti[$i]==$rs[0])&&($rs[2]!=0)&&($rs[2]>0)){
          
             $query = " UPDATE prodotti
                        SET quantita=quantita- ".$quantita[$i].";";
             mysqli_query($con,$query) or die (mysql_error());
          
             $query_carta = " SELECT cartacredito
                              FROM persone
                              WHERE nome='$nome' AND cognome='$cognome'";
                              $cartacredito = mysqli_query($con,$query_carta);
                              $cc=mysqli_fetch_row($cartacredito);
             $query_prezzo = " SELECT prezzo
                               FROM prodotti
                               WHERE nome='$prodotti[$i]' ";
                              $prezzo = mysqli_query($con,$query_prezzo);
                              $p=mysqli_fetch_row($prezzo);
             $query_id = "    SELECT idcliente
                              FROM persone
                              WHERE nome='$nome' AND cognome='$cognome'";
                              $id = mysqli_query($con,$query_id);
                              $i=mysqli_fetch_row($id);
             $query_art = "   SELECT idprodotto
                              FROM prodotti
                              WHERE nome='$prodotti[$i]' ";
                              $art = mysqli_query($con,$query_art);
                              $ar=mysqli_fetch_row($art);
          

             $query_ins = " INSERT INTO scontrini (carta_cred,datacquisto,prezzo_u,cod_cliente,cod_art)
                            VALUES ('$cc[$i]','22032017','$p[$i]','$i[$i]','$ar[$i]')";
             mysqli_query($con,$query_ins) or die (mysql_error());
             echo "Carrello In Caricamento";       
         }
      
         $rs=mysqli_fetch_row($result);
     }
  
  
  
  }

}
mysqli_close($con);
?>

</body>

questo codice in teoria dovrebbe permettermi di inserire i valori dentro la tabella scontrini , ma ciò non avviene e non capisco come dovrei procedere. Attendo risposte please!

Alcune Note :
$prodotti = contiene le chiavi dei prodotti , cosicche da confrontarli....
$quantita = contiene le quantita dei prodotti richiesti....
una funzione tipo curdate() può essere inserita , nella query di inserimento?
 
Ultima modifica di un moderatore:

the_jurgs

Nuovo Utente
6 Apr 2017
31
1
8
Hai provato ad eseguire la query direttamente sul database? Se hai phpmyadmin installato puoi farlo facilmente

Inviato dal mio ONE A2003 utilizzando Tapatalk
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
PHP:
     for($i=0;$i<sizeof($rs);$i++)
     {
         if(($prodotti[$i]==$rs[0])&&($rs[2]!=0)&&($rs[2]>0)){
credo di capire che la variabile $i, usata nel for, rappresenti le 4 colonne selezionate,
ed assuma solo i valori da 0 a 3,
nulla a che vedere con i prodotti passati nel $_POST
o mi sbaglio ?
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
Le query non le ho provate nel database , perchè ritenendole semplici , non ritengo di provarle , ma nel bene o nel male le proveró .
Ora che ci penso io controllo le celle/righe della tabella prodotti , confrontate con gli elementi scelti dal cliente ... il problema è che il metodo delle query applicate alle variabili non vale...
Ora che ci penso i prodotti vengono contati e incrementati finché non vengono verificate le celle/righe forse c'è una incongruenza ...
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
ci sono diverse incongruenze, sarebbe meglio che riscrivessi il tutto cercando di identificare bene la logica delle operazioni
ti ho scritto che non puoi usare un indice riferito alle colonne della riga selezionata dal database per indicizzare i prodotti che vengono scelti dall'utente
sembra di chiamare pera il cavolo .....
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
Codice:
$con=new mysqli('127.0.0.1','root','') or die (mysql_error());
mysqli_select_db($con,'acquisti') or die (mysql_error());
$query = "SELECT idprodotto,nome,quantita,prezzo
          FROM prodotti";
$result=mysqli_query($con,$query);

if(!$result)
 echo "errore caricamento...".(mysql_error());
else
 {  
     while($rs=mysqli_fetch_row($result))
       {
           for($i=0;$i<sizeof($prodotti);$i++){
               if(($prodotti[$i]==$rs[0])&&($rs[2]!=0)&&($rs[2]>0))
               {  
                   $calo_q = "UPDATE prodotti
                              SET quantita=quantita-'$quantita[$i]'
                              WHERE idprodotto='$prodotti[$i]'";
                              $cq=mysqli_query($con,$calo_q);
                     
                   $query_carta = "SELECT cartacredito
                                   FROM persone
                                   WHERE nome='$nome'";
                                   $carta=mysqli_query($con,$query_carta);
                                   $cc=mysqli_fetch_row($carta);
                 
                   $query_p =     "SELECT prezzo
                                   FROM prodotti
                                   WHERE idprodotto='$prodotti[$i]'";
                                   $prezzo=mysqli_query($con,$query_p);
                                   $prez=mysqli_fetch_row($prezzo);
                                 
                   $query_idcl = "SELECT idcliente
                                   FROM persone
                                   WHERE nome='$nome' AND cognome='$cognome'";
                                   $id=mysqli_query($con,$query_idcl);
                                   $i=mysqli_fetch_row($id);
                                 
                   $query_idart = "SELECT idprodotto
                                   FROM prodotti
                                   WHERE idprodotto='$prodotti[$i]'";
                                   $ida=mysqli_query($con,$query_idart);
                                   $idar=mysqli_fetch_row($ida);
                 
                   $q_i = "INSERT INTO scontrini (carta_cred,datacquisto,prezzo_u,cod_cliente,cod_art)
                           VALUES ('$cc[0]',curdate(),'$prez[0]','$i[0]',$idar[0])";              
                           $insert=mysqli_query($con,$q_i) or die (mysql_error());
               }
           }
         
         
         
         
       }
         
  }

}
mysqli_close($con);
?>

scusatemi , ma con il ciclo while ,impostato in questo modo , dovrebbe scovare ogni riga del mio database ,confrontandole con ciò che ha scelto l'user.... non capisco perchè non scenda di riga , ad un certo punto mi da errore durante la selezione del prezzo ...mi dice che l'index dei prodotti è illegale ... aiuto please!
chiamo @marino51 in causa ;)
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
no , perchè mi conta correttamente i prodotti all'interno ... non vengono processati , quelli della tabella ,non so comunque dove sia l'errore
 
Ultima modifica:

the_jurgs

Nuovo Utente
6 Apr 2017
31
1
8
Posta l'errore preciso, se parli di index di $prodotti il problema è nell'indice dell'array o nel ciclo for che a un certo punto va a raggiungere un index che non esiste. Aiutaci a capire meglio il problema.

Inviato dal mio ONE A2003 utilizzando Tapatalk
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
grazie , di rispondere alle mie domande @the_jurgs , allora mi dice questo :

Warning
: Illegal offset type in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Acquisti\carrellopag.php on line 88

che corrisponde a ....
Codice:
 $query_p =     "SELECT prezzo
                                   FROM prodotti
                                   WHERE idprodotto='$prodotti[$i]'";
                                   $prezzo=mysqli_query($con,$query_p);
                                   $prez=mysqli_fetch_row($prezzo);
"
precisamente nella parte di " idprodotto='$prodotti[$i]' "


 

the_jurgs

Nuovo Utente
6 Apr 2017
31
1
8
Il tipo di errore indica principalmente 2 possibilità:
1 - o stai trattando un Oggetto come se fosse un Array,
2 - o stai inserendo un indice che PHP non riesce ad interpretare

Quindi proviamo una cosa, giusto per cominciare a togliere qualche elemento dalla lista degli indiziati.
Subito dopo
PHP:
$prodotti = $_POST['prodotti']

inserisci le seguenti righe
PHP:
$messaggio = "I prodotti sono: ".count($prodotti);
echo $messaggio;
echo $prodotti;
print_r($prodotti);

Fammi sapere cosa ne esce fuori
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
sono riuscito a risolverlo!
ora ho intoppato in un'altro problema diamine , sto per finire!

Codice:
 $query="SELECT id_scon,prezzo_u,quantita
               FROM scontrini";
       $rs=mysqli_query($con,$query) or die (mysql_error());
       $fetch=mysqli_fetch_row($rs);
       $importo=0;
       for($i=0;$i<sizeof($rs);$i++)
          {   
           $importo=$importo+($fetch[1]*$fetch[2]);
           $fetch=mysqli_fetch_row($rs);
       }echo $importo;
      /*
       $qc = "INSERT INTO carrelli (n_carr,cod_scontrino,importo)
                  VALUES (NULL,'$rs[0]','$importo')";
                  $ins=mysqli_query($con_query) or die (mysql_error());*/

non posso inserire importo , non me lo mette!
@the_jurgs
 

the_jurgs

Nuovo Utente
6 Apr 2017
31
1
8
Spiegati meglio, non funziona la INSERT? Restituisce qualche errore? Perchè la INSERT è commenta?
PS spiegaci come hai risolto il problema di prima ;)
 

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
22
Fatal error: Cannot use object of type mysqli_result as array in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Acquisti\carrellopag.php on line 98

nell'inserimento dell'importo
 
Discussioni simili
Autore Titolo Forum Risposte Data
L difficoltà con Xampp. printing php mancante...help Web Server 6
S [PHP] Difficoltà con costrutto if/else PHP 6
Z [PHP] Difficoltà con la IF su orari disponibili e occupati PHP 5
M Visulizzare immagine con php PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2

Discussioni simili