HaKj Skrevet 15. august 2018 Del Skrevet 15. august 2018 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
K N Skrevet 15. august 2018 Del Skrevet 15. august 2018 (endret) 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"; Endret 15. august 2018 av Kristiann Lenke til kommentar
HaKj Skrevet 15. august 2018 Forfatter Del Skrevet 15. august 2018 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
HaKj Skrevet 15. august 2018 Forfatter Del Skrevet 15. august 2018 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
HaKj Skrevet 15. august 2018 Forfatter Del Skrevet 15. august 2018 Kunne jeg f.eks. skrive: if($row["taler"] Not null) echo 'Tale v/',$row["taler"]."<br>";else echo "0"; Lenke til kommentar
K N Skrevet 15. august 2018 Del Skrevet 15. august 2018 den returnerer bare 0 skulle det være liten feil, prøv: if(strlen($row["taler"])>0) echo 'Tale v/',$row["taler"]."<br>"; else echo "0"; Lenke til kommentar
HaKj Skrevet 15. august 2018 Forfatter Del Skrevet 15. august 2018 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
HaKj Skrevet 15. august 2018 Forfatter Del Skrevet 15. august 2018 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
quantum Skrevet 15. august 2018 Del Skrevet 15. august 2018 Tips: https://www.diskusjon.no/index.php?showforum=30 Mulig de vet noe om php i dette forumet også. Lenke til kommentar
Crowly Skrevet 15. august 2018 Del Skrevet 15. august 2018 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 tidsformatDette 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 medlocale -akommandoen i terminalen. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå