Gå til innhold

Anbefalte innlegg

Hei

 

Jeg bruker en plugin i Wordpress hvor jeg kan sette inn php code i poster.

Den heter XYZ Snippet.

I en av disse kodene har jeg en som henter info om neste taler på et arrangement fra et view i Mysql.

 

Her er koden:

 

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
 
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT DATE_FORMAT(Dato, '%d.%m') as DATOEN, klokke, motetype, taler, sanger, organisasjon FROM nestemotephpsnippet";
$result = mysqli_query($conn, $sql);
 
 
setlocale (LC_ALL, "no_NB"); // her angir vi norsk tidsformat
 
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo 'Tale v/',$row["taler"]."<br>";
    }
} else {
    echo " 0 ";
}
 
mysqli_close($conn);
?>
 
Den henter dato, klokke, møtetype, taler, sanger og organisasjon.
Hvis den ikke finner et resultat returnerer den 0, dette gjør at av og til når det ikke er registrert taler eller sanger, men kun et møte, står det bare "Tale v/" også ikke noe navn selvfølgelig.
Hvordan kan jeg få den til å skrive "Tale v/" kun hvis den har resultat på "taler"
 
Takk for hjelpen!
Lenke til kommentar
Videoannonse
Annonse

 

Under while kan du jo f.eks sjekke lengden på $row["taler"]?

if(strlen($row["taler"]>0)) echo 'Tale v/',$row["taler"]."<br>";
else echo "0";

Prøvde dette nå, får ikke ut navnet på taler, den returnerer bare =, som om det ikke stod noe i raden.

Raden er satt opp som varchar og akkurat nå står det ordet "test" i den aktuelle cellen.

Allikevel returnerer den 0

 

Lenke til kommentar

 

 

Under while kan du jo f.eks sjekke lengden på $row["taler"]?

if(strlen($row["taler"]>0)) echo 'Tale v/',$row["taler"]."<br>";
else echo "0";

Prøvde dette nå, får ikke ut navnet på taler, den returnerer bare =, som om det ikke stod noe i raden.

Raden er satt opp som varchar og akkurat nå står det ordet "test" i den aktuelle cellen.

Allikevel returnerer den 0

 

 

den returnerer bare 0 skulle det være :)

Lenke til kommentar

Topp, det fungerte bra!

 

Klarer du å se hva som er galt i denne også?

Jeg prøver å hente en dato og formatere den slik at den blir på norsk.

Den returnerer ingenting.

 

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
 
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT DATE_FORMAT(dato, '%l.%j.%F') as DATOEN, dato2, klokke, motetype, taler, sanger, organisasjon FROM nestemotephpsnippet";
$result = mysqli_query($conn, $sql);
 
 
setlocale (LC_ALL, "no_NB"); // her angir vi norsk tidsformat
 
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo $row["DATOEN"]."<br>";
    }
} else {
    echo " 0 ";
}
 
mysqli_close($conn);
?>
Lenke til kommentar

Fikk det til nå, men den viser fortsatt dagen på engelsk Thursday i stedet for Torsdag

Er det noen annen måte og endre det på?

 

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
 
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT DATE_FORMAT(dato2,'%W ' '%e ' '%b') as dato3, dato2, klokke, motetype, taler, sanger, organisasjon FROM nestemotephpsnippet";
$result = mysqli_query($conn, $sql);
 
 
setlocale (LC_ALL, "no_NB"); // her angir vi norsk tidsformat
 
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo $row["dato3"]."<br>";
    }
} else {
    echo " 0 ";
}
 
mysqli_close($conn);
?>
Lenke til kommentar

Hvis du skal formatere med norsk output i Mysql ser det ut til at du må kjøre

https://dev.mysql.com/doc/refman/8.0/en/locale-support.html

 SET lc_time_names = 'nb_NO';

setlocale (LC_ALL, "no_NB"); // her angir vi norsk tidsformat

Dette angir locale for php, men du bruker ingen av php sine funksjoner til å formatere datoen. Da må du bruke strftime(), alternativt ta i bruk Carbon

 

<?php
use Carbon\Carbon;

setlocale('no_NB'); // kan også bruke Carbon::setLocale('no');

$carbon= new Carbon($row['dato2']); // forutsetter at dato2 = YYYY-MM-DD
echo $carbon->formatLocalized('%A %d %B %Y'); // bruker samme formattering som strftime() 
Du må også sørge for at norsk locale er installert på serveren. Hvis det er en linux/nix server sjekker du dette med
locale -a
kommandoen i terminalen.
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...