konto usunięte

Temat: zapytanie mysql - województwa, miasta

Witam,

dopiero zaczynam uczyć się mysql'a, ale potrzebuję coś na szybko... nie mogę znaleźć odpowiedniego rozwiązania googlując - na razie raczkuję;) może ktoś z Was mi pomoże...

w bazie mam tabelę uzytkownicy, a w niej województwa i miasta
chodzi mi o to, żeby utworzyć zapytanie tak, aby miasta z bazy podpowiadane były wg województwa w polu <select> i żeby nie było np. dwa razy

łódź
łódź
warszawa

województwa wpisane są ręcznie tak, że jak je zmienię strona przeładowuje się, a zmienna $wojewodztwo zapisuje sie

i teraz chodzi o to, zeby po przeladowaniu strony wyswietlane byly w polu <select> miasta uzaleznione od zmiennej $wojewodztwo (takie samo pole w tabeli)

pozdr,
Tomek
Jakub L.

Jakub L. Programista

Temat: zapytanie mysql - województwa, miasta

select distinct miasto from tabela where województwo = $województwo

tak na szybko bez schematu bazy.

konto usunięte

Temat: zapytanie mysql - województwa, miasta

dzięki!

cos takiego zadziała? oczywiście bez <select>, to sobie dorobię

<?php

$polaczenie=mysql_connect("host","uzytkownik","haslobazy");
mysql_select_db("bazadanych",$polaczenie);
$sql="select distinct miasto from tabela where województwo = $województwo";
$wynik=mysql_query($sql);
while($linia=mysql_fetch_array($wynik))
echo "$linia["miasto"]";
mysql_close($polaczenie);

?>

konto usunięte

Temat: zapytanie mysql - województwa, miasta

wyskakuje mi błąd:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING
Jakub L.

Jakub L. Programista

Temat: zapytanie mysql - województwa, miasta

$sql="select distinct miasto from tabela where województwo = '$województwo'";

i poczytaj o sql injection

konto usunięte

Temat: zapytanie mysql - województwa, miasta

wcześniej już dodałem ' ';)

konto usunięte

Temat: zapytanie mysql - województwa, miasta

mysql_fetch_array(): supplied argument is not a valid MySQL result resource

konto usunięte

Temat: zapytanie mysql - województwa, miasta

Tomasz Jabłoński:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Pewnie wystąpił błąd w zapytaniu i nie wiadomo jaki, bo nie obsłużyłeś go:

zamień:
$wynik=mysql_query($sql);
na:
$wynik=mysql_query($sql) or die(mysql_error());

i podaj treść błędu

konto usunięte

Temat: zapytanie mysql - województwa, miasta

Zrób tak jak przedmówca napisał, albo po prostu wyechuj zmienną $sql i powinieneś widzieć co jest nie tak.

W PHP jeszcze raczkujesz. Tutaj masz forum dla żółtodziobów

konto usunięte

Temat: zapytanie mysql - województwa, miasta

Ja osobiście bym usunął polskie znaki ze zmiennych na sam start.

Temat: zapytanie mysql - województwa, miasta

http://php.net/manual/pl/function.mysql-fetch-array.php
Tomasz Zadora

Tomasz Zadora programuję

Temat: zapytanie mysql - województwa, miasta

Rozwiązanie dla Ciebie do rozważenia.

Napisałeś:

"w bazie mam tabelę uzytkownicy, a w niej województwa i miasta"

Zrób trzy relacje/tabele SQL:

1 - na województwa, kolumny: id,nazwa
2 - na miasta, kolumny: id,wojewodztwo_id,nazwa
3 - na użytkowników, kolumny: ...kolumny...,miasto_id

Wtedy po za innymi korzyściami - robisz prosty SELECT z tabeli miasta i już masz miasta, bez obciążającego DISTINCT na tabeli użytkowników która będzie rosnąć.Tomasz Zadora edytował(a) ten post dnia 09.05.10 o godzinie 19:08

konto usunięte

Temat: zapytanie mysql - województwa, miasta

Peter K.:
Tomasz Jabłoński:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Pewnie wystąpił błąd w zapytaniu i nie wiadomo jaki, bo nie obsłużyłeś go:

zamień:
$wynik=mysql_query($sql);
na:
$wynik=mysql_query($sql) or die(mysql_error());

i podaj treść błędu

Skoro kogoś mamy edukować, to chyba dobrze zacząć od rady, aby zaczął korzystać z jakiejś dodatkowej funkcji/klasy do obsługi zapytań SQL. Wtedy możemy w prosty sposób debugować zapytania, łapać błędy ba! kontrolować czas, który absorbuje dane zapytanie.

konto usunięte

Temat: zapytanie mysql - województwa, miasta

Tomasz Jabłoński:
echo "$linia["miasto"]";

w tej linii jest problem
uzyj tylko: echo $linia["miasto"];Paweł P. edytował(a) ten post dnia 12.05.10 o godzinie 10:47
Tomasz Zadora

Tomasz Zadora programuję

Temat: zapytanie mysql - województwa, miasta

Skoro kogoś mamy edukować, to chyba dobrze zacząć od rady, aby zaczął korzystać z jakiejś dodatkowej funkcji/klasy do obsługi zapytań SQL. Wtedy możemy w prosty sposób debugować zapytania, łapać błędy ba! kontrolować czas, który absorbuje dane zapytanie.

Zgadzam się - dobry pomysł i ja np. z takiej klasy sobie korzystam,
dodatkowo obsługuje mi ona "LOCKi" na tabalach (MySQL) i transakcje.

Można by też dać jeszcze dziesiątki innych rad :) Tyle, że autor tego wątku specjalnie o to nie prosił, nawet moja rada była trochę na wyrost :)

Następna dyskusja:

Zapytanie mysql, where




Wyślij zaproszenie do