Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem
qwant1
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Witam,

Nie moge poradzić sobię z budową zapytania do mysql a mianowicie tworzę zapytanie wynik otrzymuje w postaci tablicy, ale zarazm chcę aby te wyniki z tablicy stanowiły zmienną do kolejnego zapytania do bazy danych.
Może ma ktoś jakiś pomysł

To część kodu.


  1. <?php
  2.  
  3.  
  4. $result = mysqli_query($dbc,"SELECT * FROM variables21 WHERE name LIKE 'lvl.%'ORDER BY value DESC LIMIT 100") or die("Bład w zapytaniu!");
  5. while($row = mysqli_fetch_array($result))
  6. {
  7.  
  8. $klasa = "$row["type"]";
  9.  
  10.  
  11. $result2 = mysqli_query($dbc,"SELECT * FROM variables21 WHERE name='$klasa'") or die("Bład w zapytaniu!"); // chcę żeby te dane z pierwszej tablicy posłużyły jako zmienna w tym kolejnym zapytaniu
  12. }
  13. while($row2 = mysqli_fetch_array($result2))
  14. {
  15. echo $row2["type"];
  16.  
  17. }
  18.  
  19.  
  20. mysqli_close($dbc);
  21. ?>
  22.  
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na chwile obecną to ty lezysz na php a nie mysql.... przenosze.

nie: $klasa = "$row["type"]";
a: $klasa = $row["type"];
To są podstawy php
Go to the top of the page
+Quote Post
qwant1
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Tak oczywiście zaczynam się w to bawić to prawda.

Głównie chodzi mi o te drugie zapytanie żeby korzystało z wyników pierwszej tablicy.
Go to the top of the page
+Quote Post
aniolekx
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


  1. SELECT * FROM variables21 WHERE name IN (SELECT type FROM variables21 WHERE name LIKE 'lvl.%' ORDER BY value DESC LIMIT 100)
Go to the top of the page
+Quote Post
qwant1
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


A co ta odpowiedź wnosi do mojego pytania ?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wnosi to że zamiast 2 zapytań masz jedno.
Go to the top of the page
+Quote Post
qwant1
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Wyskakuje mi błąd w zapytaniu !
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zamiast sie wykrzyknikowac, to pokaz łaskawie jak to wstawiles do swojego kodu i jaki konkretnie błąd. Nie zachowuj się jak małe dziecko (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
qwant1
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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



Ten wykrzyknik to nie moje zdenerwowanie tylko taką zwraca warttość.


  1. $result = mysqli_query($dbc,"SELECT * FROM variables21 WHERE name IN (SELECT type FROM variables21 WHERE name LIKE 'lvl.%' ORDER BY value DESC LIMIT 100") or die("Bład w zapytaniu!");
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To zamiast nic nie mowiacego "Bład w zapytaniu!" wyswietl sobie błąd zapytania. W manualu php przy mysqli masz napisane jak sie pobiera błąd aktualnie wykonywanego zapytania.

ps: A na przyszlosc uzywaj cudzysłowi gdy cytujesz jakis tekst (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
aniolekx
post
Post #11





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


@qwant1, nic nie poradzę na to ze nie umiesz zrobić copy/paste jednej linijki kodu... Sprawdź dokładnie co ja podałem z co ty podałeś.

Mala podpowiedz, chodzi o samo zapytanie SQL

Ten post edytował aniolekx 20.01.2015, 13:19:34
Go to the top of the page
+Quote Post
qwant1
post
Post #12





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


@aniolekx To może jednak coś podpowiesz? bo ja jednak chyba mało kumaty jestem
Go to the top of the page
+Quote Post
aniolekx
post
Post #13





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


brakuje nawiasu przed cudzysłowem, na końcu zapytania SQL
Go to the top of the page
+Quote Post
qwant1
post
Post #14





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Czyli linijka powinna wyglądać tak

  1. $result = mysqli_query($dbc,"SELECT * FROM variables21 WHERE name IN (SELECT type FROM variables21 WHERE name LIKE 'lvl.%' ORDER BY value DESC LIMIT 100)") or die("Bład w zapytaniu!");


Ale nadal błąd w zapytaniu wyskakuje
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Mowilem ci... wyswietl sobie blad zapytania a nie durny tekst a bedziesz wiedzial jaki baza zwraca ci blad... Naprawde przez tyle godzin nie mozna bylo tego zrobic?
Go to the top of the page
+Quote Post
aniolekx
post
Post #16





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


tutaj mala podpowiedz: http://php.net/manual/en/mysqli.error.php
Go to the top of the page
+Quote Post
qwant1
post
Post #17





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Przeczytałem uważnie twoją odpowiedź dzięki bardzo w pracy jestem i cały czas się tym nie zajmuję.

Jak już się tak udzielasz za co z góry dziękuję to podaj mi ten kod na sprawdzenie tego zapytania.
Jestem początkujący i szukam pomocy.
Go to the top of the page
+Quote Post
adamt87
post
Post #18





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 20.01.2015

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


Popraw sobie końcówkę kodu na:

  1. or die("Bład w zapytaniu!" . mysqli_error($dbc));
Go to the top of the page
+Quote Post
qwant1
post
Post #19





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.01.2015

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


Dziękuję za pomoc @adamt87

Wyskoczył mi błąd "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'"

Czyli wykasowałem warunek LIMIT 100 ale takie zapytanie będzie trwało z godzinę bo baza ma 400 tyś rekordów
Go to the top of the page
+Quote Post
aniolekx
post
Post #20





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


to moze tak:

  1. SELECT * FROM variables21 JOIN (SELECT type FROM variables21 WHERE name LIKE 'lvl.%' ORDER BY value DESC LIMIT 100) t ON name = t.type
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:58