Problém v nahravaní údajov do DB. Keď je tam mäkčeň – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém v nahravaní údajov do DB. Keď je tam mäkčeň – PHP – Fórum – Programujte.comProblém v nahravaní údajov do DB. Keď je tam mäkčeň – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
zelenac10
Návštěvník
18. 9. 2014   #1
-
0
-

 Dobry deň,

mam taký problém, že do Mysql sa mi nechce nahrať udaj keď tam mam mäkčeň. 

Tabuľka je kodovaná  utf8_unicode_ci..

A už som zúfali.

//Udaje do MysQl
require_once ('db.inc.php');
 do {
 if (!OpenDB()) break;
 
 
  // Kontrola formulára či je všetko vyplnené.
   if ($meno != "" AND $priezvisko != "" AND $email != "")
     {
    
     
        //Kontrola E-mailu ci sa uz nenachadza v MySQL
        $sql = "select * from uzivatelia where email = '$email'";
        $result = mysql_query($sql);                         
        while ($row = mysql_fetch_object($result)): 
         $hodnota_email = "1"; // Ak bude uz email v DB nahraty a script ho najde tak vypise hodnotu hodnota_email bude 1
        endwhile;
             
       // Podmienka kontrolujuca email ci uz nahodnou nie je u Nas pouzivany
        if ($hodnota_email != "1")
        {
         // Zapis do DB
         $sql= mysql_query ("INSERT INTO uzivatelia VALUES ('$id','$meno','$priezvisko','$email','$prava','$veduci','$podnik','$majitel','$heslo_konecne')");
       
         $db = "1"; // zapis sa podaril
          }
        else
         {
         $db = "0"; // ak nepojde nahrat do Mysql zazam
         }
         
     }

Ďakujem za rady :)

Nahlásit jako SPAM
IP: 195.91.11.–
Vkuse sa len učím :)
Reklama
Reklama
Kit+11
Guru
18. 9. 2014   #2
-
0
-

#1 zelenac1
Prvním SQL příkazem po otevření databáze musí vždy být 

SET NAMES utf8;

BTW: Používáš zastaralý ovladač databáze. V další verzi PHP nebude.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
zelenac10
Návštěvník
19. 9. 2014   #3
-
0
-

ale ja ho mam v DB.inc.php

definované

<?php
function OpenDB($hostitel = "localhost", $meno = "", $heslo = "", $db = "")
  {
   $false = false;
   @$spojenie = mysql_connect($hostitel, $meno, $heslo);
    if (!$spojenie)
     echo "Nepodarilo sa vytvorit spojenie s hostitelom($hostitel)!";
    else{
     @$false = mysql_select_db($db);
     mysql_query("SET NAMES 'utf8'");
     if (!$false)
      echo "Nepodarilo sa nastavit pracovnú databázu $db!";
    }
   return $false;
  } 
?>

to nestači? a ako sa po novom to ma programovať?

Nahlásit jako SPAM
IP: 188.121.182.–
Vkuse sa len učím :)
Kit+11
Guru
19. 9. 2014   #4
-
0
-

#3 zelenac1 

Databázi standardně otevírám a obsluhuji tímto způsobem:

$pdoptions = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
);
$db = new PDO(
    "mysql:host=$hostitel;dbname=$db",
    $meno,
    $heslo,
    $pdoptions
);
if ($meno == "") 
    throw new Exception('Chybí meno');
if ($priezvisko == "") 
    throw new Exception('Chybí priezvisko');
if ($email == "") 
    throw new Exception('Chybí email');
$insert = $db->prepare("INSERT INTO uzivatelia
     VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$insert->execute(array(
    $id,
    $meno,
    $priezvisko,
    $email,
    $prava,
    $veduci,
    $podnik,
    $majitel,
    $heslo_konecne,
));

Je v tom obsaženo vše, co máš ve svém příkladu. Jen je potřeba dopsat UNIQUE k definici sloupce `email` v databázi.

String "utf8" nemá být v apostrofech, ale nemělo by to vadit.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 65 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý