Avatar billede skovjuul Nybegynder
08. april 2015 - 06:18 Der er 3 kommentarer og
1 løsning

En streng der ikke er en streng?

Hola

Jeg henter en vittighed fra en mysql-db. Feltet i databasen er en varchar(256).
json.php kan findes her: https://github.com/AlexisTM/Simple-Json-PHP
Hvis jeg laver en echo af feltet bliver det fint vist på skærmen, men bruger jeg variablen bliver resultatet null. Håber koden her under giver mening:

<?php
include('../json.php');
include('../connectmysql.php');

$Json = new json();
$Json2 = new json();

$jokescountquery=mysql_query("SELECT count(*) as jokescount FROM jokes",$link);
    $jokescountrow = mysql_fetch_array($jokescountquery,MYSQL_ASSOC);
    $randomnmb = 0;
    if ($jokescountrow['jokescount'] > 1)
      $rndjoke = rand(1,$jokescountrow['jokescount']);

$jokequery = mysql_query("SELECT vittighed FROM jokes where id = ".$rndjoke,$link);
$jokesrow = mysql_fetch_array($jokequery,MYSQL_ASSOC);

// Build data
$object = new stdClass();
$object->id = $rndjoke;
$object->joke = 'en vittighed';

// Add some content
$Json->addContent(new propertyJson('type', 'success'));
$Json->addContent(new objectJson('value', $object));

// Det er her problemet er!
$object->joke = $jokesrow['vittighed'];

$Json2->addContent(new propertyJson('type', 'success'));
$Json2->addContent(new objectJson('value', $object));
echo "<html><body>";
// Finally, send the JSON.
json_send($Json);
echo " <br />";
echo $object->joke; //"din mor"-joke
echo " <br /> ";
json_send($Json2);
echo "</body></html>";
?>

Ovenstående giver følgende resultat:
{"type": "success","value": {"id":3,"joke":"en vittighed"}}
Din mor er så fed, at hendes blodtype er Nutella.
{"type": "success","value": {"id":3,"joke":null}}


Hvorfor virker det med en streng og ikke en variabel med en streng i?

Mvh
Jesper
Avatar billede Slater Ekspert
08. april 2015 - 10:40 #1
Uden at have tjekket din kode; har du prøvet lige at bruge var_dump() i stedet for echo, bare for at teste hvilken type variablen har?
Avatar billede skovjuul Nybegynder
08. april 2015 - 22:17 #2
Det har jeg nu :)

Output:
{"type": "success","value": {"id":3,"joke":"en vittighed"}} string(49) "Din mor er så fed, at hendes blodtype er Nutella."
{"type": "success","value": {"id":3,"joke":null}}

Så jeg forstår stadig ikke, hvorfor det ikke virker :(
Avatar billede skovjuul Nybegynder
09. april 2015 - 04:00 #3
Og så fandt jeg langt om længe ud af hvad der forsager problemet - danske bogstaver.

Jeg har tilføjet:
$object->joke = utf8_encode($jokesrow['vittighed']);

Nu får jeg endelig en tekst ud i min json, problemet er bare at den ser sådan her ud:
"Din mor er s\u00e5 fed, at hendes blodtype er Nutella"

Hvordan får jeg det sidste på plads?
Avatar billede skovjuul Nybegynder
13. april 2015 - 00:02 #4
Jeg lukker.
Det blev til en UTF8Encoding når jeg lægger den danske streng ind i min variabel (i .php-filen)
$object->joke = utf8_encode($jokesrow['vittighed']);

Det Json-objekt jeg har i C# laver det så selv om til dansk igen når den bliver parset, så det er jo ganske smart :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester