Gå til innhold

æøå problem med php og mysql


Anbefalte innlegg

Jeg er newbie på php og mysql og kjører en engelsk tutorial som tilsynelatende ikke har tatt med i beregningen at det er oss som bruker æøå.

 

Det er hvert fall problemet når jeg henter data i mysql basen via php. Er det noe lett og innlysende ut fra følgende kode som vil løse problemet?

 

<?php
//connect to database
$mysqli = mysqli_connect("***", "***", "***", "***");

if (!$_POST)  {
//haven't seen the selection form, so show it
$display_block = "<h1>Medlemsliste</h1>";

//get parts of records
$get_list_sql = "SELECT id,
                 CONCAT_WS(', ', etternavn, fornavn) AS display_name
                 FROM master_navn ORDER BY etternavn, fornavn";
$get_list_res = mysqli_query($mysqli, $get_list_sql) or die(mysqli_error($mysqli));

if (mysqli_num_rows($get_list_res) < 1) {
	//no records
	$display_block .= "<p><em>Sorry, ingen poster valgt</em></p>";

} else {
	//has records, so get results and print in a form
	$display_block .= "
	<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">
	<p><strong>Velg en post til og se:</strong><br/>
	<select name=\"sel_id\">
	<option value=\"\">-- Velg en --</option>";

	while ($recs = mysqli_fetch_array($get_list_res)) {
		$id = $recs['id'];
		$display_name = stripslashes($recs['display_name']);

		$display_block .= "<option value=\"".$id."\">".$display_name."</option>";
	}

	$display_block .= "
	</select>
	<p><input type=\"submit\" name=\"submit\" value=\"Se valgt post\"></p>
	</form>";
}
//free result
mysqli_free_result($get_list_res);

} else if ($_POST) {
//check for required fields
if ($_POST["sel_id"] == "")  {
	header("Location: selentry.php");
	exit;
}

//get master_info
$get_master_sql = "SELECT concat_ws(' ', fornavn, etternavn) as display_name
                   FROM master_navn WHERE id = '".$_POST["sel_id"]."'";
$get_master_res = mysqli_query($mysqli, $get_master_sql) or die(mysqli_error($mysqli));

while ($name_info = mysqli_fetch_array($get_master_res)) {
	$display_name = stripslashes($name_info['display_name']);
}

$display_block = "<h1>Viser post for ".$display_name."</h1>";

//free result
mysqli_free_result($get_master_res);

//get all addresses
$get_addresses_sql = "SELECT adresse, poststed, postnr
                      FROM adresse WHERE master_id = '".$_POST["sel_id"]."'";
$get_addresses_res = mysqli_query($mysqli, $get_addresses_sql) or die(mysqli_error($mysqli));

	if (mysqli_num_rows($get_addresses_res) > 0) {

	$display_block .= "<p><strong>Adresse:</strong><br/>
	<ul>";

	while ($add_info = mysqli_fetch_array($get_addresses_res)) {
		$address = stripslashes($add_info['adresse']);
		$zipcode = stripslashes($add_info['postnr']);
		$city = stripslashes($add_info['poststed']);


		$display_block .= "<li>$address $zipcode $city  </li>";
	}

	$display_block .= "</ul>";
}

//free result
mysqli_free_result($get_addresses_res);

//get all tel
$get_tel_sql = "SELECT telefon FROM telefon
                WHERE master_id = '".$_POST["sel_id"]."'";
$get_tel_res = mysqli_query($mysqli, $get_tel_sql) or die(mysqli_error($mysqli));

if (mysqli_num_rows($get_tel_res) > 0) {

	$display_block .= "<p><strong>Telefon:</strong><br/>
	<ul>";

	while ($tel_info = mysqli_fetch_array($get_tel_res)) {
		$tel_number = stripslashes($tel_info['telefon']);

		$display_block .= "<li>$tel_number </li>";
	}

	$display_block .= "</ul>";
}

//free result
mysqli_free_result($get_tel_res);


//get all email
$get_email_sql = "SELECT email FROM email
                  WHERE master_id = '".$_POST["sel_id"]."'";
$get_email_res = mysqli_query($mysqli, $get_email_sql) or die(mysqli_error($mysqli));

 if (mysqli_num_rows($get_email_res) > 0) {

	$display_block .= "<p><strong>Email:</strong><br/>
	<ul>";

	while ($email_info = mysqli_fetch_array($get_email_res)) {
		$email = stripslashes($email_info['email']);

		$display_block .= "<li>$email </li>";
	}

	$display_block .= "</ul>";
}

//free result
mysqli_free_result($get_email_res);

//get personal note
$get_notes_sql = "SELECT notater FROM notater
                  WHERE master_id = '".$_POST["sel_id"]."'";
$get_notes_res = mysqli_query($mysqli, $get_notes_sql) or die(mysqli_error($mysqli));

if (mysqli_num_rows($get_notes_res) == 1) {
	while ($note_info = mysqli_fetch_array($get_notes_res)) {
		$note = nl2br(stripslashes($note_info['notater']));
	}

	$display_block .= "<p><strong>Notater:</strong><br/>$note</p>";
}

//free result
mysqli_free_result($get_notes_res);

$display_block .= "<br/>
<p align=\"left\"><a href=\"".$_SERVER["PHP_SELF"]."\">Velg en annen</a></p>";

}
//close connection to MySQL
mysqli_close($mysqli);
?>

Lenke til kommentar
Videoannonse
Annonse
Litt problematisk å si hva du skal gjøre uten å vite hvordan dataene blir lagret (spesielt tegnsett) og ikke minst hvilket tegnsett som er brukt på selve siden.

 

Jeg slettet alt i basen og la det inn igjen, da fikk jeg frem æøå. Jeg vet ikke annet at jeg la inn <meta... utf-8... taggen i head-en på alle php dokumentene.

 

jeg la inn æøå i et notat felt inne fra phpmyadmin, da ble det feil igen, men så lenge funker det å legge inn fra form feltene, og det vises rett, så nøyer jeg meg med det.

 

Ellers skulle jeg gjerne ha forstått hva årsaken var. Gjerne noen tips om hvordan forskjellige data skal lagres. Det feltet som jeg fikk problem med var et varchar utf8_general_ci felt

 

Nå lastet jeg alt dette opp på en ekstern webhost og der lå det en php.ini i rot mappa. Jeg ringte support for jeg så i phpinfo at default_charset ikke hadde verdi. Å endre php.ini hjalp ikke, men siden jeg hadde php 5 versjon, så måtte jeg endre php.ini til php5.ini

 

Jeg nevner dette hvis andre har/får samme problem.

Endret av snekkis2
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...