Moro,
Innoistuin opettelee php ja tietokanta ohjelmointia, mutta yks ongelma tuli eteen.. Tein tämän https://www.ohjelmointiputka.net/oppaat/opas.
Ja kysymys kuuluuki että mitä teen toisin? vai onko phpMyAdminissa joku väärin..
Kokeilepa noudattaa ohjeita merkistön valintaan. Kannattaa lukea koko kyseinen opas sekä myös opassarjan viimeinen osa saman tien huolella.
Jos noilla eväillä ei ongelma ratkea, kerro ongelmasta tarkemmin: miten olet luonut taulun, millainen PHP-koodisi on, oletko asettanut missään mitään merkistöjä, mitä tarkalleen syötät tietokantaan ja mitä sivulla näkyy.
(Jatkossa yritä myös otsikoida kysymykset kunnolla ja lähettää ne oikealle alueelle.)
En saanu vieläkää toimimaan, eli kertokaas et mikäs mättää?? otin kaikki utf8 liittyvät pois koodista.. PhpMyAdminiin muokkasin utf8_general_ci
tarhoukset.php
<?php include("ylapalkki.php"); ?> <br> <h2> <p align="center"> Tarjoukset </p> </h2> <p align="center"><a href="uusitarjous.html">Tee uusi tarjous</a></p> <?php include("yhteys.php"); $sql = "SELECT asiakas, aika, kohde, hinta FROM tarjoukset ORDER BY aika DESC"; $kysely = $yhteys->prepare($sql); $kysely->execute(); while ($rivi = $kysely->fetch()) { $asiakas = htmlspecialchars($rivi["asiakas"]); $aika = $rivi["aika"]; $kohde = htmlspecialchars($rivi["kohde"]); $hinta = htmlspecialchars($rivi["hinta"]); $hinta = nl2br($hinta); echo "<hr>"; echo "<p><b>Asiakas:</b> {$asiakas}</p>"; echo "<p><b>Aika:</b> {$aika}</p>"; echo "<p><b>Kohde:</b> <br> {$kohde}</p>"; echo "<p><b>Hinta:</b> <br> {$hinta}</p>"; } include("alapalkki.php"); ?> </body> </html>
Uusitarjous.html
<!DOCTYPE html> <html> <head> <title>Tee uusi tarjous</title> </head> <body> <h3> <p align="center"> Uusi tarjous </p> </h3> <form action="uusitarjous.php" method="post" > <p>Asiakas: <br> <input type="text" name="asiakas"></p> <p>Hinta: <br> <input type="text" name="hinta"></p> <p>Kohde: <br> <select name="kohde"></p> <option value="Haakuvaus"> Hääkuvaus <option value="Lapsikuvaus"> Lapsikuvaus <option value="Tuotekuvaus"> Tuotekuvaus </select> <p><input type="submit" value="Tee tarjous"></p> </form> </body> </html>
Uusitarjous.php
<?php include("yhteys.php"); $asiakas = $_POST["asiakas"]; $hinta = $_POST["hinta"]; $kohde = $_POST["kohde"]; $sql = "INSERT INTO tarjoukset (asiakas, aika, hinta, kohde) VALUES (?, NOW(), ?, ?)"; $kysely = $yhteys->prepare($sql); $kysely->execute(array($asiakas, $hinta, $kohde)); header("Location: tarjoukset.php"); ?>
HTML <head>:in sisään
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Luot PDO-objektin näin:
Linkkaamasi ohjeen mukaan jos olet tehnyt, niin käytössä on latin1-koodaus. Se ei sovi yhteen htmlspecialchars-funktion kanssa koska et ole tälle määrittänyt merkistökoodausta (epäkelvot merkit häviää) ja se oletuksena käyttää uft-8:aa.
Fixaa tulostukset kuntoon htmlspecialchars-funktion osalta niin homma on sillä selvä.
Yleensä nykyään on kuitenkin viisainta käyttää UTF-8-enkoodausta. Ohjeita tähän on linkittämässäni oppaan osassa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.