Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][MYSQL]problem ze zmienna?
xyxy
post 30.01.2009, 00:03:41
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


dlaczego wywala mi błąd? Jak wpisze id normalnie zamiast ".$_POST['sortowanie1']." to działa, ale chce to wstawiać do zapytania przez zmienna, dlaczego sie nie da?
Kod
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...


  1. <form action="klienci.php" method="post">
  2. <select name="sortowanie1">
  3. <option value="id" >id</option>
  4. <option value="imie" >imie</option>
  5. </select><input type="submit" name="button_sortuj" value="sortuj">
  6. </form>


  1. <?php
  2. $R = mysql_query(&#092;"SELECT * FROM `klienci` ORDER BY `\".$_POST['sortowanie1'].\"` ASC\");
  3. while ($row = mysql_fetch_array($R, MYSQL_ASSOC)) // wyswietlanie listy klientow
  4. {
  5.  
  6. ...
  7.  
  8. }
  9. ?>


Ten post edytował xyxy 30.01.2009, 00:12:54
Powód edycji: [erix] MySQL!=MSSQL
Go to the top of the page
+Quote Post
isso
post 30.01.2009, 00:56:57
Post #2





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


Yyyy a co to jest?:
  1. <?php
  2. $R = mysql_query(&#092;"SELECT * FROM `klienci` ORDER BY `\".$_POST['sortowanie1'].\"` ASC\");
  3. ?>


raczej robiłbym to tak:
  1. <?php
  2. $query = "SELECT * FROM klienci ORDER BY ".$_POST['sortowanie1']." ASC";
  3. $R = mysql_query($query);
  4. ?>


--------------------
Go to the top of the page
+Quote Post
xyxy
post 30.01.2009, 01:28:26
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Cytat(isso @ 30.01.2009, 00:56:57 ) *
Yyyy a co to jest?:
  1. <?php
  2. $R = mysql_query(&#092;"SELECT * FROM `klienci` ORDER BY `\".$_POST['sortowanie1'].\"` ASC\");
  3. ?>


raczej robiłbym to tak:
  1. <?php
  2. $query = &#092;"SELECT * FROM klienci ORDER BY \".$_POST['sortowanie1'].\" ASC\";
  3. $R = mysql_query($query);
  4. ?>


cos sie zle przekleiło, ale tak jak podajesz tez probowałem wczesniej, kombinuje i wiecznie ten sam błąd

próbowałem tak:
  1. <?php
  2. $R = mysql_query("SELECT * FROM `klienci` ORDER BY `".$_POST['sortowanie1']."` ASC");
  3. ?>


próbowałem tak:
  1. <?php
  2. $query = "SELECT * FROM klienci ORDER BY ".$_POST['sortowanie1']." ASC";
  3. $R = mysql_query($query);
  4. ?>


i zawsze błąd:
Kod
Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ......

w linii:
  1. <?php
  2. while ($row = mysql_fetch_array($R, MYSQL_ASSOC))
  3. ?>

a jak wpisze normalnie id lub imie to działa
Go to the top of the page
+Quote Post
piotrooo89
post 30.01.2009, 01:33:44
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. $query = 'SELECT * FROM klienci ORDER BY "'.$_POST['sortowanie1'].'" ASC';
  3. ?>


spróbuj tak.


--------------------
Go to the top of the page
+Quote Post
xyxy
post 30.01.2009, 01:57:26
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


no prawie działa, błędu już nie ma, ale dalej nie sortuje, jak daje: print "$query"; to wyskakuje mi:
Kod
SELECT * FROM klienci ORDER BY "id" ASC
a powinno być chyba:
Kod
SELECT * FROM klienci ORDER BY id ASC
Go to the top of the page
+Quote Post
isso
post 30.01.2009, 02:05:45
Post #6





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


powinno być to drugie smile.gif czyli wystarczy usunąć " z zapytania smile.gif


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 30.01.2009, 02:07:34
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




zrobiłem to trochę łopatologicznie:

  1. <?php
  2. $co = $_POST['sortowanie1'];
  3. $query = "SELECT * FROM klienci ORDER BY $co ASC";
  4. $R = mysql_query($query);
  5. ?>


u mnie hula... tylko jest problem bo zanim wyślesz wywala błąd ale zrobisz sobie prostego if'a i powinno zadziałać.


--------------------
Go to the top of the page
+Quote Post
xyxy
post 30.01.2009, 02:08:22
Post #8





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


jesli chodzi o odpowiedz isso:
tez tak myslalem, ale wtedy znowu ten blad wyskakuje
Kod
mysql_fetch_array(): supplied argument is not a valid MySQL result resource


Ten post edytował xyxy 30.01.2009, 02:09:25
Go to the top of the page
+Quote Post
isso
post 30.01.2009, 02:47:17
Post #9





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


;/

last one:

  1. <?php
  2. $query = "SELECT * FROM klienci ORDER BY '".$_POST['sortowanie1']."' ASC";
  3. ?>


jak przy tym wywali bład to sie postrzele w kolano;]

weź jeszcze spróbuj wyświetlić sobie co zwraca to zapytanie bo coś jakiś tu problem jest smile.gif Nie wiem jak to się może odnosić do: MYSQL_ASSOC <- jesteś pewien, że ta opcja powinna byc?

Ten post edytował isso 30.01.2009, 02:50:42


--------------------
Go to the top of the page
+Quote Post
xyxy
post 30.01.2009, 03:00:58
Post #10





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


ok, dzieki piotrooo89, działa. Zrobiłem tak:
  1. <?php
  2. if(!empty($_POST['button_sortuj']))
  3. {
  4. $co = $_POST['sortowanie1'];
  5. $query = "SELECT * FROM klienci ORDER BY $co ASC";
  6. $R = mysql_query($query);
  7. }
  8. elseif(empty($_POST['button_sortuj']))
  9. {
  10. $query = "SELECT * FROM klienci ORDER BY imie ASC";
  11. $R = mysql_query($query);
  12. }
  13. ?>


Co do rozwiązania isso, zapyanie po wykonaniu wyglada tak:
Kod
SELECT * FROM klienci ORDER BY 'imie' ASC

i nie działa, ale to rozwiazanie od isso:
  1. <?php
  2. $query = "SELECT * FROM klienci ORDER BY ".$_POST['sortowanie1']." ASC";
  3. ?>

działa, ale dopiero teraz jak jest w if

Ten post edytował xyxy 30.01.2009, 03:09:07
Go to the top of the page
+Quote Post
isso
post 30.01.2009, 09:29:23
Post #11





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


Eeee... no ja nie przypuszczałem, że ktoś może wywoływać zmienną bez przesyłania jej uprzednio do skryptu - mój błąd smile.gif tak czy inaczej działa, więc ok.

aaa no i nie musisz "button_sortuj" sprawdzać, wystarczy, że sprawdzisz "$_POST['sortowanie1']" i jako, że nie masz wartości 0 to możesz to równie dobrze sprawdzać jako:

  1. <?php
  2. if($_POST['sortowanie1']){
  3. ...
  4. }
  5. ?>


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 30.01.2009, 09:51:36
Post #12


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




warto w tym momencie poruszyć problem sprawdzania zmiennych: empty i isset


--------------------
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: 24.04.2024 - 18:28