Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] [mysql] Fickowaty problem
kogutPHP
post 22.06.2007, 19:28:22
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.06.2007

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
JaRoPHP
post 22.06.2007, 20:23:51
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  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. ?>


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
kogutPHP
post 22.06.2007, 23:35:03
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.06.2007

Ostrzeżenie: (0%)
-----


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'
Go to the top of the page
+Quote Post
koodlaty
post 23.06.2007, 09:50:52
Post #4





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
-----------------------
My hovercraft is full of eels!
Go to the top of the page
+Quote Post
kogutPHP
post 23.06.2007, 11:44:54
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.06.2007

Ostrzeżenie: (0%)
-----


thx smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:00