Autor Zpráva
gardener
Profil
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
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
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
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
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
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
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);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: