Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PROSTA tabela
Forum PHP.pl > Forum > Bazy danych
Waldek
Witam,

jestem po nocce walki z baza i pozostal mi jeden problem, byc moze "zakalapuckalem" sie i nie moge sobie dac z nim rady:

tabela jest mniej wiecej taka
Kod
nr_kat           id



12345            1

12346            2

12347            1

12348            3

12349            5

22222            2

33333            1

itd...

PROBLEM jaki mam:
MUSZE wyszukiwac wg nr_kat tak aby rezultatem zapytania byly wszystkie nr_kat z id powtarzajacym sie np 1
czyli na zapytanie o: 12345 odpowiedz powinna byc:
12345, 12347, 33333 czyli wszystkie nr_kat ktory laczy wspolne id w tym wypadku 1

Zgłupiałem całkowicie, i zatarlem sie...

pozdrawiam
W.
spenalzo
[sql:1:999bbfdceb]SELECT nr_kat FROM nazwa_tabeli WHERE ID='1'[/sql:1:999bbfdceb]
Waldek
Dzieki z odpowiedz, ale zupelnie nie o to chodzi...
wywolanie mam w zalozeniu takie:
Kod
$query = "SELECT * FROM tabela WHERE nr IN ($nr_kat)";


bo co by bylo jak id jest 3 ?
scanner
Walduś.. z tego co ja wiem, to spenalzo dał Ci dobry kod. Albo Ty źle precyzujesz problem.
Oczywistym jest, że zamiast '1' wstawiasz jakąś zmienną ze skryptu, w której trzymasz ID, według którego filtrujesz.
Polecam się zdrzemnąć.
Waldek
No witam, zmienna mam tylko jedna $nr_kat
w tym caly problem !

PS
nie moge niestety spac pracuje
scanner
No teraz to problem wygląda inaczej (czytelniej) niż przed chwilą.
Na moje oko albo robisz dwa zapytania, z czego pierwsze wybiera tylko szukane id a drugie nr_kat wg. id , albo subquery (link dla MySQL)
Waldek
Dzieki..... no mam problem, z reguly nie jestem czlowiekiem ktory prosi o gotowce... ale gdyby cos blizej..... bylbym wdzieczny i odrobie.... pomoge lub inna forma odwdzieczenia...
to polecenie jest dla mnie nowe...
scanner
Zacznij od tego, że powiedz, na jakiej bazie pracujesz i w jakiej wersji.
Waldek
baza: MySQL 3.22.32-log
php 4.1.2 (Zend: 1.1.1)

tak jest na serwie..
scanner
[php:1:8b5d9c18dd]<?php
// (...)
$strSqlQuery = sprintf( "SELECT id FROM table_name WHERE nr_kat = %d", $nr_kat );
$resSqlResult = mysql_query( $strSqlQuery ) or die( mysql_error() );
$intID = mysql_result( $resSqlResult, 0, 'id' );
$strSqlQuery = sprintf( "SELECT nr_kat FROM table_name WHERE id = %d", $intID );
$resSqlResult = mysql_query( $strSqlQuery ) or die( mysql_error() );
// (...)
?>[/php:1:8b5d9c18dd]Pisane z palca tongue.gif

__
Dla MySQL > 4.1 można by:
[php:1:8b5d9c18dd]<?php
// (...)
$strSqlQuery = sprintf( "SELECT nr_kat FROM table_name WHERE id = (SELECT id FROM table_name WHERE nr_kat = %d)", $nr_kat );
$resSqlResult = mysql_query( $strSqlQuery ) or die( mysql_error() );
// (...)
?>[/php:1:8b5d9c18dd]
spenalzo
[php:1:607e05c936]<?php
$q=mysql_query("SELECT id FROM tabela WHERE nr_kat='".$nr_kat."' LIMIT 1");
$t=mysql_fetch_array($q);
$q=mysql_query("SELECT nr_kat FROM tabela WHERE id='".$t["id"]."'");
?>[/php:1:607e05c936]
Waldek
dzieki, zaraz wyprobuje...
Waldek
Scaner:

w obydwu przypadkach:
You have an error in your SQL syntax near 'SELECT id FROM tabela WHERE nr_kat = 15020)' at line 1
scanner
Cytat
WHERE nr_kat = 15020)' at line 1
a skąd się wziął ten nawias?questionmark.gif
Waldek
tak mi "wychodzi po odpaleniu skryptu
scanner
Cytat
[php:1:4fcbb4069f]<?php
// (...)
$strSqlQuery = sprintf( "SELECT id FROM table_name WHERE nr_kat = %d", $nr_kat );
$resSqlResult = mysql_query( $strSqlQuery ) or die( mysql_error() );
$intID = mysql_result( $resSqlResult, 0, 'id' );
$strSqlQuery = sprintf( "SELECT nr_kat FROM table_name WHERE id = %d", $intID );
$resSqlResult = mysql_query( $strSqlQuery ) or die( mysql_error() );
// (...)
?>[/php:1:4fcbb4069f]
Niemożliwe. w treści zapytań nie ma ani jednego nawiasu.
Waldek
TO JEST TO !!
przepraszam ze sie nie odzywalem, ale szef...
Wielkie Dzieki dziala tak jak trzeba, prosze okreslic forme odwdzieczenia sie...
Waldek
scanner
Wystarczy jak będziesz na bieżąco z technologiami i czasem zajrzysz do manuala smile.gif
Waldek
Mam w jednej domenie ustabilizowana od 2 lat baze, w chwili obecnej musialem ja troche przerobic i wrocic myslami do projektu sprzed 2 lat, a to co dzis - wymyslil klient, baza ma w chwili obecnej 23 MB i jest "rozwojowa". Trzy tygodnie pracy i w sobote ja oddaje, choc przyznam ze zajelo by mi to duzo czasu szczegolnie dzis...

jeszcze raz dzieki

i pozdrawiam serdecznie...

Waldek
uboottd
Slyszeliscie o self joinach ? smile.gif

[sql:1:d94e9b084c]
SELECT t2.nr_kat
FROM table_name as t1, table_name as t2
WHERE t2.id = t1.id AND t1.nr_kat='$id'
[/sql:1:d94e9b084c]
scanner
uboottd: no właśnie zapomniałem jak to ugryźć z tej strony, a po co podawac coś, co nie zadziała i tylko mącić w głowie.
Na szczęście są tu też mądrzejsi odemnie smile.gif
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.