Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]problem ze zmienna?
Forum PHP.pl > Forum > Przedszkole
xyxy
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. ?>
isso
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. ?>
xyxy
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
piotrooo89
  1. <?php
  2. $query = 'SELECT * FROM klienci ORDER BY "'.$_POST['sortowanie1'].'" ASC';
  3. ?>


spróbuj tak.
xyxy
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
isso
powinno być to drugie smile.gif czyli wystarczy usunąć " z zapytania smile.gif
piotrooo89
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ć.
xyxy
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
isso
;/

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?
xyxy
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
isso
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. ?>
piotrooo89
warto w tym momencie poruszyć problem sprawdzania zmiennych: empty i isset
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.