Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 27. 1. 2009, 21:40:40
Zdravím mám otázku, jelikož bych chtěl udělat vyhledávání záznamu ve všech dostupných sloupcích v DB jak zapsat správně tento zápis?
$sql = mysql_query("SELECT * FROM seznam WHERE intepreret= 'Hledany vyraz' ORDER BY id DESC LIMIT 10",$id_spojeni); S tím rozdilem, ze bych chtěl prohledávat všechny dostupné sloupce.. existuje na to nějaký SQL příkaz, podobný třeba * ktera vybere vse? Nebo musim psat seznam sloupcu ktere chci prohledavat? A ještě jeden dotaz, jakým způsobem by bylo možné updatovat auto incrementované ID..časem budu nějaké hodnotz mazat, tak budou vznikat číselné mezery a já bych potřeboval čas o času indexy "doplnit a srovnat". Díky za každou radu.. |
||
AM_ Profil |
#2 · Zasláno: 27. 1. 2009, 21:44:54
To první nevím, spíše neexistuje.
Druhý dotaz - ID jsou právě od toho, aby byla unikátním identifikátorem každého řádku - který se nezmění, ani když jiný řádek smažeš. To, že vzniknou mezery, ničemu nevadí. Pokud ti to v nějakém kusu kódu vadí, spíš by bylo dobré nějak promyslet ten kus kódu, nenapsal si, na co to potřebuješ, ale nevím, v jakém případě by to nešlo. |
||
gardener Profil |
#3 · Zasláno: 27. 1. 2009, 21:56:43
To první je škoda, takže musím všude použít OR?
A co se týče toho druhého..máš pravdu..ničemu by to ve výsledku zřejmě nevadilo.. |
||
AM_ Profil |
#4 · Zasláno: 27. 1. 2009, 22:04:51
Asi je to tak. Osobně bych si udělal funkci, které předám jako parametr pole názvů sloupců a ona mi vygeneruje příslušnou část dotazu, teda pokud to chceš používat nějak pružněji nebo na víc místech.
|
||
gardener Profil |
#5 · Zasláno: 27. 1. 2009, 23:25:31
To by bylo asi nejlepší ale mám problém tu fci sestavit, prvně jsem chtěl použít num_fields, ale to bych nemohl měnit názvy sloupců
Tak asi nějak takto bych to udělal, ale nevím zda je to správný postup, zaráží mne tam použítí mysql_fetch_array($sql); jelikož ten SQL dotaz se vlastně bude generovat na základě tohoto... function gen_query() { $data['interpret']; $data['album']; $data['styl']; $data['rok_vydani']; $data['obal']; $data = mysql_fetch_array($sql); //foreach().... } |
||
nightfish Profil |
#6 · Zasláno: 28. 1. 2009, 08:29:37
gardener
obávám se, že tebou uvedený postup fungovat nebude... těch 5 výrazů ve skutečnosti nic neprovede, proměnné $data a $sql nejsou definovány osobně si myslím, že se snažíš vymyslet postup, který je ve výsledku k ničemu, ručním vypsáním sloupců tě neubyde... (mimochodem máš indexy na všech sloupcích, podle kterých hledáš?) |
||
AM_ Profil |
#7 · Zasláno: 28. 1. 2009, 15:25:44
function gen_query($pole_sloupcu, $hledany_vyraz){ $firstpass = true; $q = ''; foreach ($pole_sloupcu as $val){ if ($firstpass){ $firstpass = false; } else { $q .=' OR '; } $q .= "$val='$hledany_vyraz'"; } return $q; } $pole_sloupcu = array('a', 'b', 'c'); $query = "SELECT * FROM tabulka WHERE ".gen_query($pole_sloupcu, 'foobar')." ORDER BY id DESC LIMIT 10"; $result = mysql_query($query); |
||
Časová prodleva: 15 let
|
0