Szasztok!
Egy kis helyi kábeltévének írok felvételnyílvántartó programot, ún. diszpó-nyílvántartót. Ennek az lenne a lényege, hogy vissza lehet keresni felvételek címeiben, hogy melyik szalagra forgatták, hova lett mentve a vágott anyag vagy esetleg azt is kiírták-e szalagra... stb.
Na most az SQL-ben van egy LOCATE nevű függvény, mely stringekben talál meg egy szövegrészletet, és kiírja, hogy a sztring hanyadik karakerétől található meg a keresendő string. A MySQL parancssoros programjában ezt a
SELECT LOCATE('string','amiben keresni akarok string');
Erre kiírja, hogy: 23 , tehát a 23-adik karaktertől kezdve található meg a 'string' szó. PHP-ben nem kapom vissza ennek a függvénynek az eredményét.
Mert ha rekordok 'nev' mezőiben keresem mondjuk a 'string' szót, és ha megtalálható benne, akokr vissza ad egy értéket, amelyik ha nem 0, akkor meg van benne, és kilistázza azt a rekordot, de ha 0, akkor nem listázza ki.
Please, help!
Thx.
- 943 megtekintés
Hozzászólások
var_dump( mysql_fetch_array(mysql_query("SELECT LOCATE(...")) );
---------
WARNING: Linux requires you to type! After rebooted to Windows, you can safely unplug your keyboard.
szerény blogom -- új címen!
- A hozzászóláshoz be kell jelentkezni
Thx.
Ki fogom próbálni.
- A hozzászóláshoz be kell jelentkezni
Nem lenne jobb külön mezőben tárolni a szalag ID-ját?
és akkor nem kéne n ezer sor * strcmp, hanem egyszerű (sőt, indexelt) keresés lenne.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
<?php
$kapcsolat = mysql_connect("localhost","root","");
var_dump( mysql_fetch_array(mysql_query("SELECT LOCATE('string','Ez itt egy string!')",$kapcsolat) ));
print("
Eredmény: $eredmeny");
mysql_close($kapcsolat);
?>
----------------------------------
Böngésző eredménye:
-------------------
array(2) { [0]=> string(2) "12" ["LOCATE('string','Ez itt egy string!')"]=> string(2) "12" }
Eredmény:
----------------------
Hogyan lehetne azt, hogy nem írja ki a fenti rizsát, és a visszadott értéket egy változóba rakja ($eredmeny), de ne a teljes kimenetet, hanem csak a 12-t ?
- A hozzászóláshoz be kell jelentkezni
a kulcs az AS kulcsszo:
$result=mysql_query("SELECT LOCATE('string','ez egy string') AS pozicio");
$row=mysql_fetch_array($result);
print "Eredmeny: ".$row['pozicio'];
egyebkent erre miert sql-t hasznalsz? ha jol latom tabla nem szerepel a lekerdezesben, igy az strpos fuggveny joval gyorsabb lenne, mint felesleges muveleteket vegeztetni az adatbazissal.
- A hozzászóláshoz be kell jelentkezni
THX. mükszik a dolog. :)
- A hozzászóláshoz be kell jelentkezni