Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] Fickowaty problem
Forum PHP.pl > Forum > Przedszkole
kogutPHP
  1. <?PHP
  2.  $conn = mysql_connect('localhost', 'root', 'kogut');
  3.  mysql_select_db('php');
  4. ?>
  5. <?PHP
  6.  if (isset($_GET['menu']))
  7.  @$menu = $_GET['menu'];
  8.  else $menu = home;
  9.  
  10.  $query = 'SELECT text FROM pages where menu='.$menu.';';
  11.  $wynik = mysql_query($query);
  12.  $rekord = mysql_fetch_assoc($wynik);
  13.  echo '<p>'.$rekord['text'].'</p>';
  14.  
  15.  mysql_close($conn);
  16. ?>


Problem następujący. Gdy kolumna w bazie danych menu ma wartości numeryczne (int) to wszystko jest ok, jednakże gdy zmienię jej typ na varchar i tam wpisze jakieś nazwy (zamiast liczb, np. teraz domyślnie jest aby wczytał home) to wyświetla się następujący błąd:

Cytat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/w/php/php_mail.php on line 19


19ta linia to:

Cytat
$rekord = mysql_fetch_assoc($wynik);


Reasumując chodzi o to że nie chodzi, a że skorzystałem z gotowca nie wiem co jest źle... Siedzę już nad tym sporo i nie wiem czemu gdy są wartości liczbowe w tej kolumnie wszystko gra a jak już nazwy to nie chce.
JaRoPHP
  1. <?php
  2. else $menu = home;
  3. ?>

A może:
  1. <?php
  2. else $menu = 'home';
  3. ?>
?

Poza tym, jak nie działa zapytanie sql-a, to najpierw je sobie wyświetl, i upewnij się, że wygląda poprawnie:
  1. <?php
  2. $query = 'SELECT text FROM pages where menu='.$menu.';';
  3. echo $query;
  4. $wynik = mysql_query($query) or die(mysql_error());
  5. ?>
kogutPHP
Cytat(JaRoPHP @ 22.06.2007, 21:23:51 ) *
  1. <?php
  2. else $menu = home;
  3. ?>

A może:
  1. <?php
  2. else $menu = 'home';
  3. ?>
?


Nic nie daje...

Cytat(JaRoPHP @ 22.06.2007, 21:23:51 ) *
Poza tym, jak nie działa zapytanie sql-a, to najpierw je sobie wyświetl, i upewnij się, że wygląda poprawnie:
  1. <?php
  2. $query = 'SELECT text FROM pages where menu='.$menu.';';
  3. echo $query;
  4. $wynik = mysql_query($query) or die(mysql_error());
  5. ?>


Cytat
SELECT text FROM pages where menu=home;Unknown column 'home' in 'where clause'
koodlaty
szukaną wartość w ciapki weź:

  1. <?php
  2. $query = "SELECT text FROM pages where menu='$menu';";
  3. ?>

albo tak, jeśli chcesz ładnie - z zachowaniem konkatenacji:

  1. <?php
  2. $query = "SELECT text FROM pages where menu='" . $menu . "';";
  3. ?>
kogutPHP
thx smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.