[PHP] Numero ordine

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
24
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
24
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
808
16
18
59
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
24
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
808
16
18
59
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
24
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: 120

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
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
24
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
24
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
24
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
24
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
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
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
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

Discussioni simili