[PHP] Numero ordine

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Buongiorno.
Io ho un problema nel calcolo del ordine
Codice:
$idordine= 0;
mi arriva l'email sempre con ordine 0 come faccio ad impostare che ogni ordine parte da 0 ad aumentare senza fermasi?
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Scusa ma un po' di codice? :D

Si scusami ora lo metto :)
Codice:
<?php
@require('carrello.php');
echo $importo;
$testo="$user_name";
$testo="il sig. $user_name ha ordinato:<br>";
foreach($rigo_ordine as $cosa){
    $testo.=$cosa."<br>";
}

$testo.=$importo."<br>cordiali saluti";//testo pronto per l'invio
echo $testo;
//e qui fai l'invio....

$idordine= 0;

$email="**********@civiaggio.it";
$contenitore= $email;
$titolo="Riepilogo Ordine n. " .$idordine .  " del " .date("d.m.y") ." " .date("H:i:s") ;
$content=$testo;
// costruiamo alcune intestazioni generali
$header = "From: civiaggio.it <".$email.">\n";
//$header .= "CC: Altro Ricevente <**********@civiaggio.it>\n";
$header .= "X-Mailer: Invio email ordine\n";
// costruiamo le intestazioni specifiche per il formato HTML
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";
if (mail($contenitore, $titolo, $content, $header, '-f'.$email))
{
       // echo "email inviata a " . $email. "<br>";
}
 ?><!-- prima cella della prima riga (seguono le altre) -->


Codice:
$rigo_ordine[]="quantita $quantita $nome.''.$marca importo parziale ". number_format($quantita*$prezzo, 2, ',',',');
      $importo_totale += $prezzo * $quantita;
    }

    ?>
<?php //qui conviene verificare che $tot_importo > 0, perchè se 0 non ha ordinato nulla
//qui prepari il testo da inviare per email
if($importo_totale<36){
    $importo= "<br> ".number_format($importo_totale, 2, ',',',')." &#8364<br>";
}else{
    $sconto=0.2;
    $importo="importo: $importo_totale &#8364;<br>";
    $importo.="sconto: ".(int)($sconto*100)." %<br>";
    $importo_totale=$importo_totale*(1-$sconto);
    $importo.="importo totale: ".number_format($importo_totale, 2, ',',',')."<br>";
}
echo $importo;
$testo="";
$testo="il sig. $user_name ha ordinato:<br>";
foreach($rigo_ordine as $cosa){
    $testo.=$cosa."<br>";
}
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Be, nel codice che hai postato ora $idordine è citato due volte, la prima viene impostato a 0 ( zero ) e la seconda scrive nel titolo il numero, che non può che essere zero, visto che nel codice non viene mai incrementato.
In pratica tu dici prima che idordine deve essere zero e poi lo scrivi nell'email. Che altro potrebbe fare? :)
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Be, nel codice che hai postato ora $idordine è citato due volte, la prima viene impostato a 0 ( zero ) e la seconda scrive nel titolo il numero, che non può che essere zero, visto che nel codice non viene mai incrementato.
In pratica tu dici prima che idordine deve essere zero e poi lo scrivi nell'email. Che altro potrebbe fare? :)

praticamente
Codice:
$idordine= 0;
deve calcolare il numero di ordine partendo da 0 ad salire non se hai capito
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Non è che non ho capito, ma se tu imposti il valore a zero, questo non parte.
Dovresti prima capire da dove prendere il dato da incrementare: da carrello.php?
$rigo_ordine è un array che contiene tutto il carrello? Allora ti basta un $idordine = count($rigo_ordine); per sapere quanti ordini ha fatto il tipo.
Dal codice non posso dirti di più :(
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
ti allego la foto cosi magari ci capiamo
nella foto vedi che il valore ordine e 0 per il prossimo ordine deve 1 andando via cosi
 

Allegati

  • WhatsApp Image 2016-11-30 at 19.16.45.jpeg
    WhatsApp Image 2016-11-30 at 19.16.45.jpeg
    398,7 KB · Visite: 267

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
forse ti conviene farti una semplice tabella ordini con un rigo solo in cui memorizzi l'ultimo numero d'ordine

tabella ordini
num_ordine int(9) default 0

prima di spedire l'email leggi la tabella
PHP:
<?php
//....
$q=mysqli_query($connessione, "SELECT num_ord FROM ordini");
$ordine=mysqli_fetch_assoc($Q);
$idordine=$ordine['num_ord']+1;
//fai l'invio dell'email
//e quando inviata uppi il numero incrementandolo
$idordine+=1;
$q=mysqli_query($connessione,"UPDATE ordini SET num_ord=$idordine");
//.....
?>

poi vedo che usi per inviare la funzione mail() certi host di posta non la ricevono, cerca di evitarla e usa come suggerito phpmailler, non al 100%, ma è più sicura
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
ciao
forse ti conviene farti una semplice tabella ordini con un rigo solo in cui memorizzi l'ultimo numero d'ordine

tabella ordini
num_ordine int(9) default 0

prima di spedire l'email leggi la tabella
PHP:
<?php
//....
$q=mysqli_query($connessione, "SELECT num_ord FROM ordini");
$ordine=mysqli_fetch_assoc($Q);
$idordine=$ordine['num_ord']+1;
//fai l'invio dell'email
//e quando inviata uppi il numero incrementandolo
$idordine+=1;
$q=mysqli_query($connessione,"UPDATE ordini SET num_ord=$idordine");
//.....
?>

poi vedo che usi per inviare la funzione mail() certi host di posta non la ricevono, cerca di evitarla e usa come suggerito phpmailler, non al 100%, ma è più sicura


non funziona il backup ho fatto la prova ma non va
 

localhost.nicola

Utente Attivo
11 Dic 2015
58
2
8
Non so se ho capito bene ma secondo me il contatore per gli ordini non ti serve. Se tu utilizzi un contatore per assegnare un progressivo al record estratto dal DB è assolutamente sbagliato perchè ogni qualvolta esegui quella routine il contatore degli ordini viene inizializzato a 0.Quindi se due utenti - che hanno effettuato uno un ordine e l'altro due - eseguono lo stesso codice al cliente che ha effettuato un solo ordine arriverà la mail con scritto: Ordine n:1. E verosimilmente al cliente che ha effettuato due ordini arriveranno due email con scritto: Ordine n:1 & Ordine n: 2.

Questo è sbagliato perchè (presupponendo che tu abbia salvato gli ordini dentro un db) il database (se specificato) crea un progressivo univoco per ogni record inserito in una ipotetica tabella. Quindi questo lavoro che stai facendo è inutile e non logico in quanto basta recupero l'identificativo univoco per quel record e così avrai il numero di ordine progressivo.

PS: Se vuoi recuperare il totale degli ordini la strada da seguire è un altra.
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Buongiorno.
Esatto ogni ordine deve aver un numero quindi partendo da 0 andare via così non riesco ad impostarlo il cliente mi a richiesto così
 

localhost.nicola

Utente Attivo
11 Dic 2015
58
2
8
Allora ho capito bene. Prova a dare un occhiata alla guida su mysql.
Ti posto un semplice esempio perchè scriverti tutto il codice non sarebbe cosa buona e giusta.

PHP:
CREATE TABLE amici (
  id INT(20) AUTO_INCREMENT,
  nome VARCHAR(20),
  cognome VARCHAR(20),
  telefono INT(10),
  PRIMARY KEY(id)
);

In questo esempio di creazione tabella puoi vedere come il campo id sia impostato su INT(20) AUTO_INCREMENT.
E' proprio quell'auto increment che ti permette di assegnare ad ogni record caricato sulla tabella, in questo esempio 'amici', un numero intero che si auto incrementa ogni volta che inserisci un record.

Questo è proprio quello che serve a te.
Spero di esserti stato di aiuto.


ciao
forse ti conviene farti una semplice tabella ordini con un rigo solo in cui memorizzi l'ultimo numero d'ordine

tabella ordini
num_ordine int(9) default 0

prima di spedire l'email leggi la tabella
PHP:
<?php
//....
$q=mysqli_query($connessione, "SELECT num_ord FROM ordini");
$ordine=mysqli_fetch_assoc($Q);
$idordine=$ordine['num_ord']+1;
//fai l'invio dell'email
//e quando inviata uppi il numero incrementandolo
$idordine+=1;
$q=mysqli_query($connessione,"UPDATE ordini SET num_ord=$idordine");
//.....
?>

poi vedo che usi per inviare la funzione mail() certi host di posta non la ricevono, cerca di evitarla e usa come suggerito phpmailler, non al 100%, ma è più sicura

Questo non fa al caso tuo.
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Allora ho capito bene. Prova a dare un occhiata alla guida su mysql.
Ti posto un semplice esempio perchè scriverti tutto il codice non sarebbe cosa buona e giusta.

PHP:
CREATE TABLE amici (
  id INT(20) AUTO_INCREMENT,
  nome VARCHAR(20),
  cognome VARCHAR(20),
  telefono INT(10),
  PRIMARY KEY(id)
);

In questo esempio di creazione tabella puoi vedere come il campo id sia impostato su INT(20) AUTO_INCREMENT.
E' proprio quell'auto increment che ti permette di assegnare ad ogni record caricato sulla tabella, in questo esempio 'amici', un numero intero che si auto incrementa ogni volta che inserisci un record.

Questo è proprio quello che serve a te.
Spero di esserti stato di aiuto.




Questo non fa al caso tuo.
Grazie mille più tardi provo e ti faccio sapere
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
27
Allora ho capito bene. Prova a dare un occhiata alla guida su mysql.
Ti posto un semplice esempio perchè scriverti tutto il codice non sarebbe cosa buona e giusta.

PHP:
CREATE TABLE amici (
  id INT(20) AUTO_INCREMENT,
  nome VARCHAR(20),
  cognome VARCHAR(20),
  telefono INT(10),
  PRIMARY KEY(id)
);

In questo esempio di creazione tabella puoi vedere come il campo id sia impostato su INT(20) AUTO_INCREMENT.
E' proprio quell'auto increment che ti permette di assegnare ad ogni record caricato sulla tabella, in questo esempio 'amici', un numero intero che si auto incrementa ogni volta che inserisci un record.

Questo è proprio quello che serve a te.
Spero di esserti stato di aiuto.




Questo non fa al caso tuo.

buona sera.

rispondo solo ora non ho avuto tempo di verificare ho provato ma non funziona id numero
sono tutti giusti i passaggi
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
A [PHP] calcolo numero di ore effettuate PHP 7
S [PHP] Convertire un orario in un numero decimale PHP 2
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
N [PHP] Conversione di un numero in ore PHP 2
C [PHP] Numero in formato 1e-5 PHP 0
T PHP+MYSQL: stampare record con numero progressivo PHP 3
L [PHP] Problema creazione query a numero di parametri variabile PHP 6
M [PHP] Numero telefonico cliccabile preso dal db PHP 3
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11
A [PHP] Creare numero ticket casuale PHP 5
S [PHP] numero progressivo su SELECT PHP 8
S [PHP] estrarre numero da stringa PHP 5
B ciclo in PHP per creare numero progressivo PHP 2
S [RISOLTO]php contare numero delle query PHP 1
P Analizzare alcune cifre di un numero in php PHP 2
I Recupero numero file uploadati php PHP 1
M formattare numero come valuta euro con PHP PHP 1
T programma php divisori di u numero PHP 11
V Aiuto PHP restiture una risposta in base al numero visitatore PHP 0
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
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

Discussioni simili