SQL lekérdezés

Sir_Csavar képe

Sziasztok!

A kérdésem a következő lenne. Kell egy adatbázis lekérdezést írnom, ami kb így néz ki:

SELECT SUBSTR(valami, 3)
FROM tabla
WHERE valami = 'x';

kérdésem, ezt hogy tudom úgy megírni, hogy egy specifikus oldalon jelenjen meg. mondjuk a node/6 on

enne lehet létrehozni külön fájlt? ha igen hogy kell rá hivatkozni? vagy elég csak ha bekapcsolom a PHP filtert és beküldöm szimplán?

Köszi előre is fejtágítást :)

Drupal verzió: 
alippai képe

Nagyjabol megy az amit irsz, de ha az 'x' valtozo, akkor nezd meg elotte ezt: http://drupal.org/node/101496 .

0
0

Lippai Ádám
young element

Lavjaman képe

spec nem világos, hogy mit szeretnél :)
De előre is csak annyit javasolok: ne használj php/mysql kódot az oldalon filterezve.
Én legalábbis nem szoktam, inkább írok rá egy modult ^^

*----*----*

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

Sir_Csavar képe

hogyan tovább? :)

jelenleg így néz ki a kód

$result = db_query("SELECT fok_node.title, fok_node.nid, fok_signup_log.nid, fok_signup_log.form_data FROM fok_node inner join fok_signup_log ON fok_node.nid = fok_signup_log.nid
ORDER BY fok_node.title");
$items = array();
while ($row = db_fetch_object($result)) {
$items[] = ($row->title);
}
 
return theme('item_list',$items);

de ha ezt csak egy adott oldalon akarod megjeleníteni akkor hogy néz ki az a modul?:)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

gergely képe

Blockot akarsz letrehozni vagy oldalt? Mert ha blockot akkor ajanlom az api.drupal.org-on a hook_block fuggvenyt, ha pedig oldalt akkor esetleg a hook_menu-t. De ezek elofeltetele, hogy egy modulban manifesztalodjanak ami irasahoz a zinterneten nagyon sok leiras talalhato masreszt pedig ajanlhatom a bibliat is.

0
0

---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.

Sir_Csavar képe

hogy valójában oldalra kell tennem, de küzdök mint disznó a jégen ez sql-el :)

Amúgy a Biblia egy elég jó könyv, ez se lehet rossz amit te linkeltél, de hamarabb kész kell, hogy legyen mint a megrendelési idő, vagy megkeresem interneten :)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Lavjaman képe

csinálsz egy modult, aminek lesz két függvénye:

az egyik a fenti függvény, ez legyen mondjuk "mymodule_block_content", a másik pedig a block hook

szóval:

<?php
 
function mymodule_block_content() {
  /* ide kerül a kódod, amit fentebb írtál*/
  $result = db_query("SELECT fok_node.title, fok_node.nid, fok_signup_log.nid,   fok_signup_log.form_data FROM fok_node inner join fok_signup_log ON fok_node.nid = fok_signup_log.nid
ORDER BY fok_node.title");
$items = array();
while ($row = db_fetch_object($result)) {
$items[] = ($row->title);
}
 
return theme('item_list',$items);
}
 
function mymodule_block($op = 'list', $delta = 0, $edit = array()) {
  if ($op == 'list') {
    $blocks[0] = array(
      'info' => t(''),
      'weight' => 0,
      'status' => 1,
      'region' => 'left'
    );
 
    return $blocks;
  }
  else if ($op == 'view') {
    switch($delta) {
      case 0:
        $block = array(
          'subject' => t(''),
          'content' => mymodule_block_content(),
        );
        break;
    }
    return $block;
  }
}
?>
0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

Sir_Csavar képe

vészesnek, de nem akarom elhamarkodni ezt a kijelentést.

viszont témánál maradva. nem megy! :D

$result = db_query("SELECT fok_node_type.type, fok_menu_links.link_title FROM fok_menu_links, fok_node_type
WHERE fok_node_type.type = ('f2')
ORDER BY fok_menu_links.link_title ");
$items = array();
while ($row = db_fetch_object($result)) {
$items[] = $row->link_title;
}
return theme('item_list',$items);

a lényege annyi lenne, hogy csak azok sorok jelennek meg aminek a menu tipusa "f2". de megjelenik az össze menu minden eleme. és ahogy egy volt osztálytársam írta, 'Milyiért?' :D

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Lavjaman képe

ránézni azokra a linkekre, amiket a drupalos rókák beillesztenek :) *gondolva arra, hogy szép sql-t hogyan is írunk drupalban*

sql-ben pedig nem tudok segíteni, hisz saját táblákat használsz, saját felépítéssel, saját kapcsolódásokkal ^^

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

Sir_Csavar képe

hiába szép valami ha teljesen hasztalan. foggalmam nincs arról, hogy hol hibáztam el és így javítani sem tudom. kicsit elkeserítő a helyzet :)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

csg képe

A saját tábláidba én sem látok bele, de több probléma is van a lekérdezéseddel.

1. Két mezőt kérdez le, de csak egyet használ. Ez nem végzetes hiba, csak felesleges. Ahhoz, hogy a WHERE klauzában feltételt adhass meg valamelyik mezőre vonatkozóan, nem szükséges lekérdezni az adott mezőt, tehát a fok_node_type.type-ot kiveheted nyugodtan.

2. Felesleges a zárójel is az 'f2' körül.

3. Az igazi hiba pedig ott van, hogy két különböző táblából kérdezel le, de semmilyen módon nem kapcsolod össze őket, emiatt az egyik mezőre vonatkozó szűrőfeltételek nem vonatkoznak a másikra. Valami ilyesmi kéne inkább:

SELECT fl.link_title
FROM fok_menu_links AS fl, fok_node_type AS ft
WHERE ft.type = 'f2' AND ft.id = fl.tid
ORDER BY fl.link_title

Ez a kód azt feltételezi, hogy a fok_node_type tábládban van egy id nevű mező, és a fok_menu_links-ben van egy tid nevű, ami arra hivatkozik.
0
0

--
Csonka Gergely
http://cheppers.com

Sir_Csavar képe

viszont a bibi :)

a node_type tálában ezek az ID-k vannak

type
name
module
description
help
has_title
title_label
has_body
body_label
min_word_count
custom
modified
locked
orig_type

nem látom át, hogy mi alapján lehetne összekötni a 2 táblát. de talán a megoldás az eredeti drupal elképzelésben rejlik, ami... ? :D

a dolog úgy szeretne kinézni, hogy a signup_form_log ból kell kinyerni adatot még pedig a form_date mezőt, viszont megjelenítéskor a node title kellene, hogy látszódjon. túl bonyolítottam a dolgokat?:)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Lavjaman képe

pontosan mi az, amit meg akarsz valósítani?

Azokat a node_title-eket szeretnéd megjeleníteni, melyek időbélyege egyezik a signup_form_log időbélyegével?

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

Sir_Csavar képe

$result = db_query("SELECT s.link_title as idopont,fok_signup_log.form_data
FROM fok_signup_log join (select link_title,substr(fok_menu_links.link_path,6,2) as nid,options from fok_menu_links) s on fok_signup_log.nid=s.nid
WHERE s.options like '%akarmi -%' and fok_signup_log.form_data like '%sz reszlet%'
ORDER BY idopont");
 
$items = array();
while ($row = db_fetch_object($result)) {
  $items[] = ($row->idopont);
}
return theme('item_list', $items);

nagyon úgy tűnik, hogy a $result nem töltődik fel értékkel
print_r ($result); ra ezt kapom vissza "mysqli_result Object ( )"

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

gergely képe

eddig ezt senki nem javasolta pedig ez kellett volna hogy legyen az elso: sql coding conventions

0
0

---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.

Sir_Csavar képe

kössz a segítségeket!

most már csak egy kereső doboz kell ami beilleszti az értéket a lekérdezés feltételébe és kidobja egy oldalra :D

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Kger képe

Sziasztok!

Egy kész sql táblát szeretnék drupál alá importálni, mely tartalmát,
egy táblázatban szeretném egy oldalon megjeleníteni, de úgy hogy bizonyos mezők módosíthatóak legyenek...
Erre létezik valamilyen modul?
Előre mis köszönöm a segítséget

0
0
Sk8erPeter képe