Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
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.
|
|
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 |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
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! |
|
Registrovaný: 01.06.14 Prihlásený: 02.06.14 Príspevky: 4 Témy: 1 | 1 |
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:52BX: 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.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
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! |
|
Registrovaný: 19.03.07 Prihlásený: 26.10.24 Príspevky: 7076 Témy: 85 | 85 Bydlisko: BA |
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 |
|
Registrovaný: 01.06.14 Prihlásený: 02.06.14 Príspevky: 4 Témy: 1 | 1 |
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
|
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 | 30 Bydlisko: Bratislava | |
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
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! |
|
Registrovaný: 01.06.14 Prihlásený: 02.06.14 Príspevky: 4 Témy: 1 | 1 |
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.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
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! |
|
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
|
|
Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Notebooky a netbooky | 4 | 293 | 19.01.2024 12:47 pepkopav | | v AMD - Advanced Micro Devices | 11 | 833 | 23.12.2008 15:29 elsofi | | v PHP, ASP | 15 | 1191 | 13.10.2011 10:09 Sunnynko | | v PHP, ASP | 2 | 649 | 31.08.2009 10:42 László145 | | v PHP, ASP | 5 | 527 | 29.12.2016 23:39 walther | | v Video programy | 2 | 501 | 14.01.2013 14:41 sekenke | | v PHP, ASP | 8 | 715 | 25.02.2008 20:21 Broko71 | | v ATI/AMD grafické karty | 9 | 658 | 03.12.2009 9:53 yarzo | | v Databázy | 2 | 530 | 30.09.2016 15:12 JanoF | | v PHP, ASP | 25 | 840 | 17.10.2012 22:25 Lier | | v PHP, ASP | 7 | 632 | 17.09.2007 15:59 pitrik1 | | v Assembler, C, C++, Pascal, Java | 4 | 662 | 29.12.2008 17:12 1231dodo | | v PHP, ASP | 2 | 351 | 22.08.2012 9:56 Wor3d | | v JavaScript, VBScript, Ajax | 1 | 660 | 07.08.2008 19:08 neutronmind | | v Assembler, C, C++, Pascal, Java | 0 | 416 | 16.05.2017 12:10 beastiq | | v PHP, ASP | 6 | 554 | 27.08.2012 4:26 Ďuri |
|