[ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.06.14
Prihlásený: 02.06.14
Príspevky: 4
Témy: 1 | 1

Zdravim,

som mierne pokrocily v PHP a MySQL a mam taky problem, ze ak dam vypis echo dvoch premennych:

$aka=$row['domaci'];
$aha=$row_akcia['Klub'];

tak mi PHP vypise Košice a Košice. Ale nastava problem ak dam:

if($aha==$aka)

tak mi hodi vlastne ELSE cast. To znamena, ze podla neho sa Košice nerovna Košice.

Oba stlpce aj domaci aj Klub mam typu VARCHAR. Neviete mi s tym prosim poradit ako sa porovnavaju dve premenne typu VARCHAR, pripadne kde moze byt problem ? Velka vdaka.


Offline

Správca fóra
Správca fóra
Porovnanie dvoch premennych typu VARCHAR

Registrovaný: 08.08.09
Príspevky: 12516
Témy: 41 | 41
Bydlisko: Martin

Skús toto:
Kód:
if (strcmp ($aka, $aha) == 0)

btw. prečo je táto téma v databázach?


_________________
always is always wrong
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 11.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 01.06.2014 22:37 | Porovnanie dvoch premennych typu VARCHAR

Skús si tie stringy porovnať sám znak po znaku (cyklom cez všetky znaky) a tiež počet znakov (strlen).
Možno obsahujú nejaký biely znak, ktorý nevidíš.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.06.14
Prihlásený: 02.06.14
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 01.06.2014 22:40 | Porovnanie dvoch premennych typu VARCHAR

Ospravedlnujem za za zaradenie temy a dakujem za odpovede.

if (strcmp ($aka, $aha) == 0) //toto vracia ELSE :(

// Spojený príspevok Ned 01.06.14 22:52

BX: Vdaka, tam bude urcite niekde chyba, lebo nesedia mi pocty, ale nechapem ked dam
echo strlen($aka);
tak mi vrati "8", ale ja tam mam nazov Košice, tak by to malo hodiť len 6 nie? Nechapem. Pre istotu som siel aj do databazy a este raz prepisal nazov Košice na Košice a aj tak mi to hadze ze je tam 8 znakov. Nechapem preco nie 6.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 11.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 01.06.2014 23:01 | Porovnanie dvoch premennych typu VARCHAR

Hoď si tam tento kód a ukáž výstup
Kód:
<?php
$v = "Košice"; // nahrad za tie tvoje premenne
$w = "Košice";

for( $i = 0; $i < strlen($v); $i++ )
   echo $v[$i] ."(". ord($v[$i]) .") ";
echo "<hr>";
for( $i = 0; $i < strlen($w); $i++ )
   echo $w[$i] ."(". ord($w[$i]) .") ";
?>


(btw. správny počet by mal byť 7 pre utf-8 kódovanie, alebo 6 pre windows-1250 kódovanie)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Online

Skúsený užívateľ
Skúsený užívateľ
Porovnanie dvoch premennych typu VARCHAR

Registrovaný: 19.03.07
Prihlásený: 11.12.17
Príspevky: 4013
Témy: 68 | 68
Bydlisko: BA
NapísalOnline : 01.06.2014 23:20 | Porovnanie dvoch premennych typu VARCHAR

Skus miesto echo pouzit print_r($aha); ze ci tam neuvidis rozdiel :)


_________________
Desktop: CPU AMD FX8350@4.514 | Cooling GELID Solutions Tranquillo rev 2 + Noctuaa NF-S12B 1200 | MB ASUS M5A99FX PRO R2.0 | RAM 2x8GB DDR3 Patriot 1600MHz CL9 Viper 3 | VGA Palit 1060 DUAL 6G | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR CX600M | MONITOR iiyama prolite E2473HDS | MOUSE Roccat SAVU + Razer eXactMat | TeamWolf VOD STORM | OS W10Pro x64 &
Server:CPU XEON X5450@3.0 | Cooling ninja Scythe 2 + Noctuaa NF-S12B 700 | MB ASUS P5Q | RAM 2x2+2x1GB A-DATA 800MHz | VGA ASUS 7600GT Silent 256MB | SSD Crucial M4 128GB | PSU EVGA 500B | Corsair K30 US | Archlinux x86_64 &
Notebook: DELL inspiron 7537 i7 4500U, 8GB RAM, nv750, FHD IPS, 1TB HDD | MOUSE Roccat Savu + Roccat Taito | WIN10Pro InsiderPreview x64 + ArchLinux x64 &
Mobil: OnePlus One | FW LineageOS 14.1 Nightly & Mobil: Blackberry Passport | 10.3.2 & Tablet: ASUS TF101 32G + dock | FW Stock
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.06.14
Prihlásený: 02.06.14
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 01.06.2014 23:29 | Porovnanie dvoch premennych typu VARCHAR

void: Dik za radu ale vypis je totozny.
BX: nechapem, ja som sa pomylil vypisalo mi to 7 a 7 a iba pre istotu Spišská Nová Ves má byť 19 ? pre UTF-8 ?
Uz mi tie pocty sa rovnaju 7=7 a 19=19 ale if hadze ze sa to nerovna :(


Offline

Čestný člen
Čestný člen
Porovnanie dvoch premennych typu VARCHAR

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 29 | 29
Bydlisko: Bratislava

Na zistenie dĺžky multibyte (utf-8) stringov používaj mb_ funkcie: http://www.php.net/manual/en/function.mb-strlen.php


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 11.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 02.06.2014 9:17 | Porovnanie dvoch premennych typu VARCHAR

RolandSura, chcel som vidieť výstup tohoto kódu, čo som poslal (použi tento, trochu som ho ešte upravil)
Kód:
$v = "Košice"; // nahrad tvojou premennou
$w = "Košice"; // nahrad tvojou premennou

echo strlen($v) ." vs. ". strlen($w) ."<br>";
for( $i = 0; $i < strlen($v); $i++ )
   echo $v[$i] ."(". dechex(ord($v[$i])) .") ";
echo "\n<hr>\n";
for( $i = 0; $i < strlen($w); $i++ )
   echo $w[$i] ."(". dechex(ord($w[$i])) .") ";


Neexistuje, aby si nemohol porovnávať utf8 stringy cez ==. Bude to možno treba len znormalizovať, alebo skonvertovať, ale chcem vidieť tento výstup, či tam máš to, čo tam má byť. A potom ti aj vysvetlím to utf-8 ;)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.06.14
Prihlásený: 02.06.14
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 02.06.2014 10:25 | Porovnanie dvoch premennych typu VARCHAR

BX ;)

Obrovska vďaka, cez tie cykly som to prehnal obe premenne a zistil som, ze omylom som tam mal medzeru cize realne to vyzeralo takto "Košice" == "Košice " jasne ze sa to nerovna, velka vdaka za ten kod, urcite vyuzijem nabuduce ked budem porovnavat premenne neobsahujuce cislo, velka vdaka este raz.

Takisto dakujem aj ostatnym za ochotu.

VYRIESENE.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 11.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 02.06.2014 12:07 | Porovnanie dvoch premennych typu VARCHAR

Tušil som to :)

A ešte k tomu počtu znakov, v utf-8 je š kódované do dvoj bajtov, tie ostatné znaky normálne do jedného. Pozri si utf8 tabulku http://utf8-chartable.de/ daj si druhú stranu (Latin1 Supplement) a nájdi si tam znak š. Uvidíš, že je kódovaný do bajtov c5 a1 a rovnaké bajty uvidíš aj vo výstupe toho môjho kódu.
Operátor == porovnáva bajt po bajte, takže neexistuje, aby to zle porovnávalo utf8. Problém by mohol nastať, ak by si nejakým spôsobom dostal Košice v utf8 a Košice vo windows-1250 kódovaní. Vtedy by sa nerovnali, pretože windows-1250 kóduje znak š do jediného bajtu. Vtedy by bola potrebná konverzia, ale v praxi by sa toto nemalo stať (iba ak pri práci so súbormi, alebo nejakými hybridnými/zlúčenými systémami)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46 | 46

Pred porovnanim si obidve premenne mohol prehnat cez trim a potom porovnat


 [ Príspevkov: 12 ] 


Porovnanie dvoch premennych typu VARCHAR



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

porovnanie dvoch modelov

v AMD - Advanced Micro Devices

11

570

23.12.2008 15:29

elsofi

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnanie dvoch datumov

v PHP, ASP

15

720

13.10.2011 10:09

Sunnynko

V tomto fóre nie sú ďalšie neprečítané témy.

porovnanie dvoch cisiel navzajom

v PHP, ASP

2

345

31.08.2009 10:42

László145

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnanie dvoch posledných teplôt

v PHP, ASP

5

209

29.12.2016 23:39

walther

V tomto fóre nie sú ďalšie neprečítané témy.

porovnanie hodnot v dvoch tabulkach

v PHP, ASP

8

395

25.02.2008 20:21

Broko71

V tomto fóre nie sú ďalšie neprečítané témy.

Program na porovnanie dvoch videí.

v Video programy

2

110

14.01.2013 14:41

sekenke

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnanie dvoch Radeoniek a zavazna otazka nakoniec

v ATI/AMD grafické karty

9

374

03.12.2009 9:53

yarzo

V tomto fóre nie sú ďalšie neprečítané témy.

Zoradenie v mysql typ varchar

v Databázy

2

196

30.09.2016 15:12

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

prenasanie premennych

v PHP, ASP

25

517

17.10.2012 22:25

Lier

V tomto fóre nie sú ďalšie neprečítané témy.

Načítavanie premenných

v PHP, ASP

7

408

17.09.2007 15:59

pitrik1

V tomto fóre nie sú ďalšie neprečítané témy.

Java - zoznam premennych

v Assembler, C, C++, Pascal, Java

4

449

29.12.2008 17:12

1231dodo

V tomto fóre nie sú ďalšie neprečítané témy.

Chybne spracovanie premennych

v PHP, ASP

2

131

22.08.2012 9:56

Wor3d

V tomto fóre nie sú ďalšie neprečítané témy.

JS viac premennych

v JavaScript, VBScript, Ajax

1

472

07.08.2008 19:08

neutronmind

V tomto fóre nie sú ďalšie neprečítané témy.

Matlab script inicializácia premenných

v Assembler, C, C++, Pascal, Java

0

88

16.05.2017 12:10

beastiq

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos premennych medzi funkciami

v PHP, ASP

6

318

27.08.2012 4:26

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

predavanie premennych medzi strankami

v PHP, ASP

8

413

26.02.2011 14:20

1daemon1



© 2005 - 2017 PCforum, edited by JanoF