Prune Skrevet 1. juli 2008 Del Skrevet 1. juli 2008 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
Ernie Skrevet 1. juli 2008 Del Skrevet 1. juli 2008 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. Lenke til kommentar
Prune Skrevet 1. juli 2008 Forfatter Del Skrevet 1. juli 2008 (endret) 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 1. juli 2008 av snekkis2 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å