Care e problema in acest cod php

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
giulian9
Mesaje: 44

Care e problema in acest cod php

Am urmatorul cod :

Cod: Selectaţi tot

$i=0;
$data_curenta=date('Ymd');
$formatted_i= sprintf("%02d", $i);  
$rma_nummer="$rma1-$formatted_i";
In scriptul care il folosesc nu imi afiseaza "-" si ce urmeaza dupa el, ..fac cumva o greseala de sintaxa ? are cineva idee !
Afiseaza : 0
Daca folosesc

Cod: Selectaţi tot

echo "$rma_nummer";
il afiseaza 20170406-01
ms

MarPlo Mesaje: 4343
Salut
Nu e gresala de sintaxa, ci pare de logica.
Variabila $rma1 nu e definita in acel cod, iar $formatted_i e 0 fiindca contine sprintf() aplicat la $i care are valoarea 0.
Deci e normal sa rezulte 0.

giulian9 Mesaje: 44

Cod: Selectaţi tot

$rma1=date('Ymd');
     $i=0;
     $formatted_i= sprintf("%02d", $i);  
     $rma_nummer="$rma1-$formatted_i";  
     echo "<p>$rma_nummer<p>"; //( Afiseaza corect  : 20170406-00 )
Daca folosesc acceasi secventa intr-un script afiseaza 0...
Daca folosesc $rma_nummer="$rma1$formatted_i"; ( fara "-" ) afiseaza : 2017040600 .
Cum as putea face sa imi afiseze si "-". !:)

MarPlo Mesaje: 4343
Poti sa adaugi liniuta prin concatenare, cu punct ".", exemplu:

Cod: Selectaţi tot

$rma_nummer = $rma1 .'-'. $formatted_i;

giulian9 Mesaje: 44
$rma_nummer se inregistreaza in baza de date ( VARCHAR )...cand cer sa imi afiseze datele inserate cu varianta de sus .'-'. imi afiseaza doar data fara - sau $formatted_i .
Asadar cand vreau sa afisez cu echo functioneza , insa acel $rma_nummer nu il scrie in baza de date in forma dorita ( 20170406-00 ) ...o sugestie!

- Edit:
Am gasit problema .
cod initial:

Cod: Selectaţi tot

$sql = "UPDATE clienti SET rma_nummer = $rma_nummer WHERE id = $id ";
Cod reparat: ( nu am fost atent ca sunt variabile de tip string )

Cod: Selectaţi tot

$sql = "UPDATE clienti SET rma_nummer = '$rma_nummer' WHERE id = $id ";
O zi faina si multumesc !

Subiecte similare