• Forum
      /  
    Programmering og webdesign
      /  
    Programmering
  • 13-09-2018 · 11:49 1921 visninger 10 svar
  • Denne tråd er over 6 måneder gammel

    Er du sikker på, at du har noget relevant at tilføje?

  • Hjælp til PHP

    Af skeem Ny på siden
Jeg har en lille applikation der henter noget data ud af en mysql database og skriver det til en CSV fil. Det virker rigtig godt.
Mit problem er at de talværdier der står i databasen bruger et punktum i stedet for et komma.
Kan jeg i forbindelse med at jeg henter data ud eller skriver data til CSV fil replace punktum med komma?

En del af koden ser således ud:

mysql_select_db($database_database, $database);
$query_temp_temp = sprintf("SELECT test1, test2", GetSQLValueString($colname_temp_temp, "int"));

if (!fwrite($file_handle,$row_temp_temp['test2'])) { echo "Cannot write to file5"; }

Monster Nørd
13-09-2018 11:53
Er det i selve indholdet de tal er, eller hvordan mener du med "bruger et punktum"?
Kom med et eksempel på hvordan data ser ud fra databasen.

Hvis det er simpelt, kan du bruge denne:

$indhold = str_replace('.', ',', $row_temp_temp['test2']);
Red $indhold til at være det variabelnavn du bruger.

f.eks
if (!fwrite($file_handle, str_replace('.', ',', $row_temp_temp['test2']))) { echo "Cannot write to file5"; }
Monster Nørd
13-09-2018 12:12
mysql_select_db($database_database, $database);
$query_temp_temp = sprintf("SELECT test1, test2", GetSQLValueString($colname_temp_temp, "int"));

$test2 = str_replace('.', ',', $row_temp_temp['test2']);

if (!fwrite($file_handle, $test2)) { echo "Cannot write to file5"; }
Monster Nørd
13-09-2018 14:24
#1/#2 Jeg vil mene at number_format som #3 også linker til er mere korrekt at bruge, fordi den er beregnet til at formatere tal med.
Monster Nørd
13-09-2018 17:32
Det kommer an på hvordan hans data ser ud
Ny på siden
13-09-2018 20:54
Mega fedt - det er bare så lækkert man kan få kvalificeret hjælp så hurtigt.
Har brugt:
if (!fwrite($file_handle, str_replace('.', ',', $row_temp_temp['test2']))) { echo "Cannot write to file5"; }
og det virker perfekt
Ny på siden
14-09-2018 15:19
Hvis jeg nu på samme måde vil skrive en anden streng og hvis strengen er tom vil jeg skrive 999?
Tux

#8

Guru
14-09-2018 15:37
$str = 'whatever';
$s = empty($str) ? '999' : $str;

Jeg har med vilje skrevet '999' da jeg ikke kan finde ud af om du vil have det som en string eller int. Ved ikke hvad du skal bruge det til.
Monster Nørd
14-09-2018 16:32
#7 Måske det her giver lidt mere mening for dig, i forhold til #8's eksempel, ved at skrive det på denne måde

if(empty($str))
{
$s = $str;
}
else
{
$s = '999';
}

Men måden som #8 har skrevet det på, er helt klart at fortrække, da det kun fylder én linje.
inckie

#10

Monster Nørd
14-09-2018 22:33
Hov, der var sgu lige en pinlig bommert i mit forrige indlæg.

De to $s variabel assignments skal selvfølgelig være omvendt, sådan her:

if(empty($str))
{
$s = '999';
}
else
{
$s = $str;
}
Bruger påkrævet
En bruger er påkrævet for at oprette svar på Hardwareonline.dk
Du kan oprette en bruger her eller logge ind her

Log ind for at få flere funktioner