php-val Drupal adatbázisnév kiolvasása

adampajor108 képe

Üdvözlöm a drupal.hu fórumozóit!

Szeretnék pár dolgot kézzel megcsinálni Drupal-ban, amit modul szinten nem tudok, így arra gondoltam, hogy mi lenne, ha kicsi php-t használnék, hogy egyedi oldalakat hozzak létre, amelyekben felhasználnám az adatbázist. Nem is lenne vele gond, illetve nincs is, amíg kézzel beírom a php-ba az adatbázis nevét, hiszen a lekérdezés lefut, táblázatosan megkapom, amit akarok, tökéletesen működik.

Azonban gondolkoztam azon, hogy mi a helyzet, ha költöztetés során valamilyen okból meg kell változtatni az adatbázis nevét. Normál esetben nincs ilyenre szükség, de ennek ellenére előfordulhat, pl. suliban Drupaloztunk, több Drupal oldalunk volt, és más-más adatbázisnevekre kényszerültünk, néha kellett a settings.php-ba belenyúlni, mert az otthonról bevitt oldal adatbázisának neve már foglalt volt.

Tehát a konkrét kérdés, php-n keresztül hogy kaphatnám vissza a Drupal oldalam adatbázisának nevét, melyet egy változóban tárolnék az aktuális oldalakon; költöztetésnél, adatbázis név változtatásnál nem lenne gond?

<?php
$cs = mysql_connect("localhost","root","12345");
if (!$cs)
  {
  die('Nem sikerült a csatlakozás az adatbázishoz: ' . mysql_error());
  }
 
mysql_select_db(drupalA, $cs);
 
$result = mysql_query("SELECT * FROM uc_products");
 
echo "<table border='1'>
<tr>
<th>Termék név</th>
<th>Ár</th>
</tr>";
 
while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['model'] . "</td>";
  echo "<td>" . round($row['sell_price'],2) . " Ft</td>";
  echo "</tr>";
  }
echo "</table>";
 
mysql_close($cs);
?>
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Balogh Zoltán képe

Használd az adatbázis eléréséhez a drupal API-ját.

0
0
pp képe

Ezt betolod a fájl elejére:

define('DRUPAL_ROOT', getcwd());
 
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

aztán elmész és átolvasod az http://api.drupal.org oldalt, mert minek használsz keretrendszert, ha nem használod.

Pl. haszánold a db_query-t, mert akkor nem kell még az adatbázis motort se tudnod.
de a theme függvényt is tudnám ajánlani, meg még milliárd dolgot.

Jobban járnál, ha írnál egy modult szerintem. (kb. kell bele +5 sor, egy hook_menu)

pp

0
0
hosszu.kalman képe

Drupal-osan ez valahogy így néz ki, szerintem próbáld meg:

$header = array(
  t('Product name'),
  t('Price'),
);
 
$rows = array();
 
$result = db_query("SELECT * FROM {uc_products}");
 
while ($row = db_fetch_array($result)) {
  $rows[] = array(
    $row['model'],
    round($row['sell_price'], 2),
  );
}
 
echo theme('table', $header, $rows);
0
0
pp képe

engedélyt kérek egy check_plain($row['model]) módosítási javaslathoz.

pp

0
0
hosszu.kalman képe

york képe

Meg kell egy hook_menut implementalni, es akkor a sajat utvonaladon jelenik meg a kod, igy a sminkelessel sem kell foglalkoznod.

0
0