[PHP] Difficoltà inserimento valori nella tabella scontrini

mozillaro

Nuovo Utente
8 Apr 2017
14
0
1
25
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.203
207
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
25
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.203
207
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
25
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
25
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
25
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
25
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
25
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
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

Discussioni simili