• Home
  • Forum
  • Fare Web
  • PHP

Problema array_key_exists!

  • Creatore Discussione Creatore Discussione Fabrizio Villa
  • Data di inizio Data di inizio 18 Feb 2013
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Succ.
Primo Prec. 2 di 5 Succ. Ultimo

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 24 Feb 2013
  • #21
ciao
intanto il numero
se devi fare dei calcoli devi usare il punto 10.00 se invece è solo una visualizzazione allora è indifferente
ora guardo la riga che forma la query poi spero di saperti dire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 24 Feb 2013
  • #22
ciao
a parte che non capisco esattamente cosa fa quel ciclo, prova a modificare la riga mettendo la parentesi aperta
PHP:
$sqlcommande = 'INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES';
in
PHP:
$sqlcommande = "INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES( ";
e la riga mettendo la chiusa
PHP:
$sqlcommande .= ";";
in
PHP:
$sqlcommande .= ")";
anche se non capisco a cosa serva eventualmente lascia il ;
PHP:
$sqlcommande .= ");";

credo che quello non c'entri essendo un float 10.0 o 10.00 sempre dieci è
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 25 Feb 2013
  • #23
Grazie per la risposta!
Dunque, in effetti il ; non serve a nulla. Ecco i due errori con e senza:

Erreur SQL > INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES( '', 2013-02-25', 'betd, 'Coca Cola - ', '2,50)
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 '', 'betd, 'Coca Cola - ', '2,50)' at line 1

Erreur SQL > INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES( '', 2013-02-25', 'betd, 'Coca Cola - ', '2,50);
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 '', 'betd, 'Coca Cola - ', '2,50)' at line 1

Il prezzo nelle pagine precedenti è trattato con il . I calcoli infatti li esegue senza problemi.
Poi cambia in virgola, pensi possa essere qui l'errore?
Il primo dato è l'id e non si vede, pensi sia normale? O dovrebbe apparire?

Ecco cosa succede con il var_dump:

int(0) array(1) { [0]=> string(4) "betd" } Erreur SQL > INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES();
Column count doesn't match value count at row 1
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 25 Feb 2013
  • #24
ciao
l'errore è in
', '2,50)'
deve essere
', '2,50')


prova a correggere la linea
.addslashes($desc)."',".number_format((float)$_SESSION["commande"]["prix"][$i], 2, '.', ' ')."";
togliendo il number_format (che ti interessa che dentro la tabella ci sia 2.000000 o 2.00 l'importante è che sia 2.00 in fase di stampa) e aggiungi tra
gli ultimi due doppi apici un apice singolo

.addslashes($desc)."',".$_SESSION["commande"]["prix"][$i]."'";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 25 Feb 2013
  • #25
ciao
non avevo visto la seconda domanda relativa all'id
se in tabella l'id è autoincrement prymari key puoi toglierlo
$sqlcommande = "INSERT INTO tstat (datecommande, champtype, description, prix) VALUES(";
ed anche in
$sqlcommande .='''.date("Y-m-d")."', '".$_SESSION["commande"]["type"][$i]."'
si vede male a monitor ma sostituisci tutti i singoli apici di apertura/chiusura con i doppi, stando attento ai singoli però ti faccio un esempio mettendo degli spazi per evidenziare

")." ' , ' ".$_
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 26 Feb 2013
  • #26
Porca vacca!!! Dopo innumerevoli e disperati tentativi sembra che funzioni!!!!! Con questo accorgimento: "'"
Meraviglioso aiuto, grazie davvero!!! Grazie infinite veramente!!!!!
Ecco come l'ho scritto:

$sqlcommande .= "'', '".date("Y-m-d")."', '".$_SESSION["commande"]["type"][$i]."', '".addslashes($desc)."',".$_SESSION["commande"]["prix"][$i]."'";
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 27 Feb 2013
  • #27
Altro problema...

Sembrava troppo bello per essere vero...
Penso che impazzirò...
Se nell'ordine c'è un solo prodotto funziona tutto, ma se i prodotti diventano 2 (o più) ecco l'errore:

Erreur SQL > INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES( '', '2013-02-27', 'sand', 'Giorgio - Sandwiche - ',10.00''', '2013-02-27', 'sand', 'Giorgio - Sandwiche - ',10.00);
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 '''', '2013-02-27', 'sand', 'Giorgio - Sandwiche - ',10.00)' at line 1

Ma perché?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 27 Feb 2013
  • #28
ciao
intanto togli dalla query l'id
1.
PHP:
$sqlcommande = "INSERT INTO tstat (datecommande, champtype, description, prix) VALUES( ";
2.
PHP:
$sqlcommande .= "'".date("Y-m-d").", '".$_SESSION["commande"]["type"][$i]."', '".addslashes($desc)."', '".$_SESSION["commande"]["prix"][$i]."'"; 
//$sqlcommande = substr($sqlcommande, 0, strlen($sqlcommande)-1);// non dovrebbe servire quindi commentala
$sqlcommande .= ")";
poi con phpmyadmin guarda la tabella tstat e verifica il campo idstat
il campo dovrebbe essere di tipo INT (xy di una certa lunghezza) autoincrement primary key
eventualmente posta la struttura della tabella

p.s.
anche questa non dovrebbe servire
$sqlcommande .= ")";
basta aggiungere la ) a:
PHP:
$sqlcommande .= "'".date("Y-m-d").", '".$_SESSION["commande"]["type"][$i]."', '".addslashes($desc)."', '".$_SESSION["commande"]["prix"][$i]."')";
tra l'ultimo apice singolo e l'ultimo doppio
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 27 Feb 2013
  • #29
Intanto grazie mille per la risposta...
Dunque, ho tolto il campo id (che è tipo: INT(11) AUTO INCREMENT - non so come postarlo...)
Anche le parentesi non mi aiutano, ecco qui l'errore:

Erreur SQL > INSERT INTO tstat (datecommande, champtype, description, prix) VALUES( '2013-02-27, 'sand', 'Giorgio - Sandwiche - ', '10.00''2013-02-27, 'sand', 'Giorgio - Sandwiche - ', '10.00)

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 'sand', 'Giorgio - Sandwiche - ', '10.00''2013-02-27, 'sand', 'Giorgio - Sandwich' at line 1

Tra il primo 10.00 e la data 2013.02.27 non dovrebbe esserci un'altra parentesi?
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 27 Feb 2013
  • #30
Questo è invece l'errore che mi dà se tolgo: $sqlcommande .= ")";

Erreur SQL > INSERT INTO tstat (datecommande, champtype, description, prix) VALUES( '2013-02-27, 'sand', 'Giorgio - Sandwiche - ', '10.00')'2013-02-27, 'sand', 'Giorgio - Sandwiche - ', '10.00')
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 'sand', 'Giorgio - Sandwiche - ', '10.00')'2013-02-27, 'sand', 'Giorgio - Sandwic' at line 1
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 27 Feb 2013
  • #31
ciao
la prima parentesi la trovi su
$sqlcommande = "INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES( ";

poi hai ragione (quasi) ho fatto anch'io una dimenticanza (un apice)
PHP:
$sqlcommande .= "'".date("Y-m-d")."', '".$_SESSION["commande"]["type"][$i]."', '".addslashes($desc)."', '".$_SESSION["commande"]["prix"][$i]."')";

questo segnato in rosso
...."'".date("Y-m-d")."',....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 27 Feb 2013
  • #32
ciao
dimenticavo per l'id
con phpmyadmin vai sul db e poi sulla tabella tstat selezioni struttura, poi generalmente in basso c'è prepara per la stampa e dovresti ottenere come è fatta la tabella (campi e loro caratteristiche) copi e incolli sul post

dimenticavo, anche da struttura vedi come è fatta
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 27 Feb 2013
  • #33
Qualcosa del genere?

tstat

Campo Tipo Null Predefinito Commenti MIME
idstat int(11) No
datecommande date No
champtype varchar(60) No
description text No
prix float No Indici
Chiave Tipo Unica Compresso Campo Cardinalità Codifica caratteri Null Commenti
PRIMARY BTREE Sì No idstat 29 A No

Grazie!
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 27 Feb 2013
  • #34
Poi ho corretto come hai detto ma purtroppo dà sempre lo stesso errore:

Erreur SQL > INSERT INTO tstat (datecommande, champtype, description, prix) VALUES( '2013-02-27', 'sand', 'Giorgio - Sandwiche - ', '10.00')'2013-02-27', 'sand', 'Giorgio - Sandwiche - ', '10.00')
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 ''2013-02-27', 'sand', 'Giorgio - Sandwiche - ', '10.00')' at line 1

Ti ringrazio infinitamente e non oserei mai mettere in discussione le tue capacità e conoscenze. La mia era una semplice domanda di un ignorante alle prese con un problema più che amletico...poi, tra l'altro, di professione sono musicista e mi diletto di html...mannaggia al giorno che ho accettato di aiutare questo mio amico...:dipser:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 28 Feb 2013
  • #35
ciao
prima la tabella
si è quello
Codice:
Campo Tipo Null Predefinito Commenti MIME
idstat int(11) No
datecommande date No
champtype varchar(60) No
description text No
prix float No Indici
Chiave Tipo Unica Compresso Campo Cardinalità Codifica caratteri Null Commenti
PRIMARY BTREE Sì No idstat 29 A No
l'unica cosa che non vedo è che idstat dovrebbe essere autoincrement, verifica sempre con phpmyadmin guardando "struttura" (non so che versione hai)
ma dovresti vedere qualcosa del genere

verifica che sotto EXTRA sulla riga idstat (il mio si chiama semplicemente id) ci sia auto_increment se non c'è seleziona il campo (spunta a sx) e dove c'è action clicchi sulla matita per modificarlo e aggiungere auto_increment.
poi veniamo alla query
INSERT INTO tstat (datecommande, champtype, description, prix) VALUES( '2013-02-27', 'sand', 'Giorgio - Sandwiche - ', '10.00')'2013-02-27', 'sand', 'Giorgio - Sandwiche - ', '10.00')
devo riguardare tutto il ciclo che la genera perchè NON dovrebbe duplicare i values
oggi sono via, se hai pazienza poi la guardo meglio
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 28 Feb 2013
  • #36
Ciao!
Ho verificato; il valore AUTO-INCREMENT è presente.
Quando hai tempo, non c'è problema, anche perché io non so come fare...grazie infinite!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 1 Mar 2013
  • #37
ciao
sto riguardando il pezzo di codice incriminato
PHP:
<?php
//.....
$sqlcommande = "INSERT INTO tstat (idstat, datecommande, champtype, description, prix) VALUES(";  
foreach($cles as $i){ 
	if (array_key_exists($i, $_SESSION["commande"]["type"]) && $_SESSION["commande"]["type"] != NULL){ 
		for ($j = 0; $j < $_SESSION["commande"]["quantite"][$i]; $j++){                       
			$desc = str_replace("<br />", " - ", $_SESSION["commande"]["prod"][$i]); 
			$desc = strip_tags($desc);
			$desc = addslashes($desc);            
			$sqlcommande .= "'', ".date("Y-m-d").", '".$_SESSION["commande"]["type"][$i]."', '".$desc."', ".$_SESSION["commande"]["prix"][$i];            
		} 
	} 
} 
//$sqlcommande = substr($sqlcommande, 0, strlen($sqlcommande)-1); 
$sqlcommande .= ")"; 
//.....
?>
ma non riesco a capire che ca..o fa, soprattutto relativamente al for perche fa un concatenamento per l'insert, per me, incomprensibile
perche se per ipotesi $_SESSION["commande"]["quantite"][$i] è uguale a 2 continua a concatenare la data il type la desc e il prezzo enne volte.
ma dove l'hai pescato quello script?
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 1 Mar 2013
  • #38
Non so se può aiutare, ma nella versione precedente del sito le statistiche funzionavano.
Posso mostrarti, se pensi sia d'utilità, la pagina nella versione vecchia (funzionante) e quella nuova? Così puoi dirmi dove sono le eventuali diversità ed errori...
Grazie
 
F

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
  • 1 Mar 2013
  • #39
Guarda non ne ho idea da dove salti fuori...però porcaccia miseriaccia funzionava prima!!!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 1 Mar 2013
  • #40
ciao
se prima funzionava (spero che tu abbia l'originale) devi ripercorre ad una ad una tutte le modifiche che hai fatto, provandole una alla volta, sino a che non ti imbatti in quella che ti manda in pallino il tutto.
è un lavoro certosino, ma credo che sia l'unica strada.
 
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Succ.
Primo Prec. 2 di 5 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

T
  • Bloccata
ALTRO PROBLEMA CON ARRAY PHP
  • thanatos
  • 30 Mag 2021
  • PHP
Risposte
1
Visite
1K
PHP 30 Mag 2021
Max 1
T
PROBLEMA CON ARRAY
  • thanatos
  • 27 Mag 2021
  • PHP
Risposte
8
Visite
2K
PHP 31 Mag 2021
marino51
C
[Javascript] problema nell'utilizzo di un array
  • Ctrl+Alt+Mario
  • 27 Ott 2018
  • Javascript
Risposte
2
Visite
2K
Javascript 27 Ott 2018
Ctrl+Alt+Mario
C
F
[PHP] Problema con array multidimensionale
  • Francesco Iacomino
  • 27 Set 2018
  • PHP
Risposte
4
Visite
2K
PHP 27 Set 2018
Francesco Iacomino
F
[PHP] Popolamento database con form ricorsivi - problema array (foreach )
  • alessandra86
  • 28 Giu 2018
  • PHP
Risposte
5
Visite
3K
PHP 12 Lug 2018
alessandra86
A
[java] problema esercizio array
  • Andrespo
  • 3 Giu 2018
  • Java
Risposte
5
Visite
3K
Java 5 Giu 2018
Andrespo
A
P
[PHP] Problema inserimento nuove chiavi in array
  • pierPHP
  • 18 Mar 2018
  • PHP
Risposte
2
Visite
1K
PHP 18 Mar 2018
pierPHP
P
R
[PHP] Problema stampa array bidimensionali con formula $html.=<<<myHtml...
  • rob466
  • 10 Feb 2018
  • PHP
Risposte
2
Visite
2K
PHP 10 Feb 2018
rob466
R
S
problema con gli array in javascript
  • stefano Linguanti
  • 18 Mag 2016
  • Javascript
Risposte
12
Visite
2K
Javascript 24 Mag 2016
stefano Linguanti
S
C
Problema con creazione array
  • camionistaxcaso
  • 14 Gen 2016
  • PHP
Risposte
7
Visite
2K
PHP 19 Gen 2016
camionistaxcaso
C
V
Problema con array
  • Vera
  • 22 Ott 2015
  • PHP
Risposte
8
Visite
1K
PHP 23 Ott 2015
Vera
V
PHP/MySQL - Problema con generazione array
  • neo996sps
  • 21 Ott 2015
  • PHP
Risposte
14
Visite
3K
PHP 23 Ott 2015
marino51
P
problema con mysql_fetch_array()
  • paperinik4
  • 30 Giu 2015
  • PHP
Risposte
2
Visite
1K
PHP 30 Giu 2015
paperinik4
P
M
Problema ordinamento array
  • maced
  • 28 Ott 2014
  • PHP
Risposte
4
Visite
2K
PHP 28 Ott 2014
borgo italia
L
problema array con le sessioni
  • luigi777
  • 13 Mag 2014
  • PHP
Risposte
1
Visite
1K
PHP 13 Mag 2014
luigi777
L
[risolto] PHP problema memorizzazione array
  • Alessandro Le Mura
  • 9 Feb 2014
  • PHP
Risposte
4
Visite
1K
PHP 10 Feb 2014
Alessandro Le Mura
F
Problema formattazione data e creazione array con nuove date
  • fradamma
  • 14 Nov 2013
  • Javascript
Risposte
2
Visite
2K
Javascript 16 Nov 2013
fradamma
F
S
Problema trasformazione array php in javascript
  • ste902
  • 14 Set 2013
  • PHP
Risposte
0
Visite
1K
PHP 14 Set 2013
ste902
S
F
problema Json con Array
  • fradamma
  • 2 Set 2013
  • jQuery
Risposte
1
Visite
2K
jQuery 3 Set 2013
fradamma
F
F
Problema associazione tabs/oggetto array
  • fradamma
  • 31 Lug 2013
  • jQuery
Risposte
17
Visite
3K
jQuery 25 Ago 2013
criric
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?