Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 29. 3. 2013, 20:01:14
Mám dotaz do databáze, ale nevím jak z něho dostat výsledek..
Zřejmě tady u zjišťování délky řetězce nelze použít mysqli_fetch_array, protože to očividně nějak nefunguje.. $sql="SELECT LEN(*) FROM seznam WHERE id = '" . $i . "'"; $result = mysqli_query($db_connect, $sql); $row = mysqli_fetch_array($result); |
||
ShiraNai7 Profil |
#2 · Zasláno: 29. 3. 2013, 20:08:24
quatzael:
1) LEN() v MySQL neexistuje 2) LENGTH(*) je nesmysl |
||
quatzael Profil |
#3 · Zasláno: 29. 3. 2013, 20:13:15
ShiraNai7:
podle všeho existuje: www.w3schools.com/sql/sql_func_len.asp jestli teda neslovíčkaříš s SQL a MySQL... Jak se to tedy dá udělat? Potřebuju zjistit délku řetězce v konkrétním řádku a sloupci.. |
||
DJ Miky Profil |
#4 · Zasláno: 29. 3. 2013, 20:25:58
A co se snažíš docílit tou hvězdičkou? Pokud chceš délku jednoho sloupce v MySQL, pak je to
LENGTH(sloupec) .
|
||
quatzael Profil |
#5 · Zasláno: 29. 3. 2013, 20:28:42
DJ Miky:
potřebuju délku dvou sloupců, ale právě nevím jak vzít ten výsledek hledání jinak než prostřednictvím pole, tedy pomocí mysqli_fetch_array.. Jak je teda můžu dostat výsledek přímo ze sloupce?? |
||
Joker Profil |
#6 · Zasláno: 29. 3. 2013, 20:38:31
quatzael:
„potřebuju délku dvou sloupců“ To jako u každého z nich délku, nebo délku obou dohromady? „nevím jak vzít ten výsledek hledání jinak než prostřednictvím pole, tedy pomocí mysqli_fetch_array“ Však tak se to udělá. Při načítání do klasického pole se k tomu dá dostat normálně přes index jako k jakémukoliv jinému sloupci výběru, při načítání do asociativního pole by to asi chtělo nějak pojmenovat, SELECT LENGTH(sloupec) AS delka …
|
||
ShiraNai7 Profil |
#7 · Zasláno: 29. 3. 2013, 20:44:37
quatzael:
„jestli teda neslovíčkaříš s SQL a MySQL...“ Samozřejmě že myslím MySQL, když se ptáš na MySQL. To nemá se slovíčkařením co do činění. |
||
quatzael Profil |
#8 · Zasláno: 29. 3. 2013, 20:55:12
Joker:
To jako u každého z nich délku, nebo délku obou dohromady? délku dohromady dvou řeťezců (ze dvou sloupců).. Asi by se hodilo například tohle: SELECT LENGTH(sloupec1, sloupec2) AS delka1, delka2 Při načítání do klasického pole se k tomu dá dostat normálně přes index jako k jakémukoliv jinému sloupci výběru, při načítání do asociativního pole by to asi chtělo nějak pojmenovat, SELECT LENGTH(sloupec) AS delka … Pak se to tedy bere z proměnné $row['delka']?? Já jsem myslel, že když chci jen jednu hodnotu tak je nesmysl používat pole.. ShiraNai7: „Samozřejmě že myslím MySQL, když se ptáš na MySQL. To nemá se slovíčkařením co do činění.“ Takže teda funkce LEN() existuje jen v SQL ale ne v MySQL?? Já jsem měl za to, že MySQL používá jako jazyk přímo SQL jako každá jiná databáze.. |
||
Tori Profil |
#9 · Zasláno: 29. 3. 2013, 21:02:46
quatzael:
Pokud pracujete s MySQL, je logické používat i manuál k MySQL. V některých věcech (třeba i u joinů) se liší od standardu SQL. A jestli používáte utf-8, berte v úvahu rozdíl mezi LENGTH a CHAR_LENGTH. |
||
ShiraNai7 Profil |
#10 · Zasláno: 29. 3. 2013, 21:07:20
quatzael:
„Já jsem měl za to, že MySQL používá jako jazyk přímo SQL jako každá jiná databáze..“ Z něj vychází, ale to vůbec neznamená že tam je vše 1:1. Každá "databáze" má své odlišnosti. |
||
Joker Profil |
#11 · Zasláno: 29. 3. 2013, 21:12:59
quatzael:
„délku dohromady dvou řeťezců (ze dvou sloupců)..“ …a vzápětí ukázka má zase dvě hodnoty. Ale pokud to tedy má být délka obou sloupců dohromady, jde počítat délka jejich spojení: SELECT LENGTH(CONCAT(prvni, druhy)) … „Pak se to tedy bere z proměnné $row['delka']?“ Ano. „Já jsem myslel, že když chci jen jednu hodnotu tak je nesmysl používat pole..“ Výsledkem mysqli_fetch_(array/assoc/row) je pole. Kdyby to vracelo různé datové typy podle počtu vybíraných hodnot v SQL dotazu (přičemž SQL dotaz nemusí být součástí PHP skriptu a může se v čase měnit), bylo by dost složité s tím pracovat. |
||
Tori Profil |
#12 · Zasláno: 29. 3. 2013, 21:31:58
quatzael:
„Já jsem myslel, že když chci jen jednu hodnotu tak je nesmysl používat pole..“ Přímo to jde jen v PDO nebo mysql. V mysqli snad bind_result, ale musíte zavolat i $result->fetch() .
|
||
DJ Miky Profil |
#13 · Zasláno: 30. 3. 2013, 11:38:00
Joker:
„SELECT LENGTH(CONCAT(prvni, druhy)) …“ Možná bude o fous rychlejší pouze sečíst délky obou řetězců: SELECT (LENGTH(prvni) + LENGTH(druhy)) AS delka … |
||
quatzael Profil |
#14 · Zasláno: 30. 3. 2013, 13:44:16
DJ Miky:
Jo, díky. Já už jsem to udělal přes ten CONCAT.. Tohle teď nebylo pro řešení, který by sloužilo nějaký aplikaci na mým webu, ale prostě jsem potřeboval z jedný databáze zjistit maximální délku řetezce, který se skládá ze dvou řetězců, abych věděl jak široký udělat inputy, do kterých se to bude automaticky vkládat.. |
||
Časová prodleva: 11 let
|
0