[ 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: 12449
Témy: 39 | 39

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ý: 29.12.20
Príspevky: 1516
Témy: 3 | 3
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ý: 29.12.20
Príspevky: 1516
Témy: 3 | 3
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!
Offline

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

Registrovaný: 19.03.07
Prihlásený: 29.04.24
Príspevky: 7076
Témy: 85 | 85
Bydlisko: BA
NapísalOffline : 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 R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 &
Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 &
Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN
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: 5404
Témy: 30 | 30
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ý: 29.12.20
Príspevky: 1516
Témy: 3 | 3
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ý: 29.12.20
Príspevky: 1516
Témy: 3 | 3
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

778

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

1136

13.10.2011 10:09

Sunnynko

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

Porovnanie dvoch notebookov

v Notebooky a netbooky

4

191

19.01.2024 12:47

pepkopav

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

porovnanie dvoch cisiel navzajom

v PHP, ASP

2

616

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

493

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

681

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

465

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

628

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

505

30.09.2016 15:12

JanoF

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

prenasanie premennych

v PHP, ASP

25

817

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

595

17.09.2007 15:59

pitrik1

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

Chybne spracovanie premennych

v PHP, ASP

2

323

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

633

07.08.2008 19:08

neutronmind

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

Java - zoznam premennych

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

4

635

29.12.2008 17:12

1231dodo

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

387

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

531

27.08.2012 4:26

Ďuri



© 2005 - 2024 PCforum, edited by JanoF