Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Jak wyszukać i zwrócić wartość z konkretnej kolumny danego rekordu.. ?
Forum PHP.pl > Forum > Przedszkole
umetoo
Sorry gentleman, jeśli zapytanie brzmi banalnie, ale po dwóch dniach poszukiwań w sieci brak mi koncepcji..
Wszystkie opisy wyszukiwania w tabelach (MySQL) które znalazłem dotyczą albo wartości będących już zawiłymi ciągami znaków i nijak nie potrafię ich dopasować do moich prostych tabel z jedynie wartościami liczbowymi lub zwracają wszystkie pola danego rekordu, a ja potrzebują tylko wartość z konkretnej kolumny tego rekordu.

3 tabele liczbowe:

tabela1 / 4kolumny: id (auto_increment), a1, a2, a3 (wartości unikatowe);
tabela2 / 7kolumn: id (auto_increment), b1, b2, b3, b4, b5, b6;

mam też pustą tabelę (tabela3) o strukturze i ilości rekordów jak tabela2:

tabela3 / 7kolumn: id (auto_increment), c1, c2, c3, c4, c5, c6;

do której chcę, żeby php wpisał rzecz następującą:

-> weź wartość z tabeli2, rekord1 (id = 1), kolumna b1 i wyszukaj ją w tabeli1 w kolumnie a3 oraz zwróć (wpisując do tabeli3 rekord1 (id = 1), kolumna c1) wartość z tej samej tabeli w której szukaliśmy (tabela1), z tego samego rekordu, w którym znaleziono szukaną wartość , tylko z kolumny id.

-> weź wartość z tabeli2, rekord1 (id = 1), kolumna b2 i wyszukaj ją w tabeli1 w kolumnie a3 oraz zwróć (wpisując do tabeli3 rekord1 (id = 1), kolumna c2) wartość z tej samej tabeli w której szukaliśmy (tabela1), z tego samego rekordu, w którym znaleziono szukaną wartość , tylko z kolumny id.

-> weź wartość z tabeli2, rekord1 (id = 1), kolumna b3 i wyszukaj ją w tabeli1 w kolumnie a3 oraz zwróć (wpisując do tabeli3 rekord1 (id = 1), kolumna c3) wartość z tej samej tabeli w której szukaliśmy (tabela1), z tego samego rekordu, w którym znaleziono szukaną wartość , tylko z kolumny id.

.. itd.. aż do b6 / c6, a potem ten sam przebieg dla kolejnego rekordu (2), czyli:

-> weź wartość z tabeli2, rekord2 (id = 2), kolumna b1 i wyszukaj ją w tabeli1 w kolumnie a3 oraz zwróć (wpisując do tabeli3 rekord2 (id = 2), kolumna c1) wartość z tej samej tabeli w której szukaliśmy (tabela1), z tego samego rekordu, w którym znaleziono szukaną wartość , tylko z kolumny id.

-> weź wartość z tabeli2, rekord2 (id = 2), kolumna b2 i wyszukaj ją w tabeli1 w kolumnie a3 oraz zwróć (wpisując do tabeli3 rekord2 (id = 2), kolumna c2) wartość z tej samej tabeli w której szukaliśmy (tabela1), z tego samego rekordu, w którym znaleziono szukaną wartość , tylko z kolumny id.

..etc.


Panowie, sprawa zapewne prosta jak drut, ale fizycznie nie mam plana jak to ugryźć.
Experymentowałem już wyszukiwaniem i wpisywaniem do baz, ale tak banalnej analogii w wyszukiwaniu i w wpisaniu wyniku do bazy o identycznej strukturze znaleźć nie mogę
Pls help exclamation.gif
umetoo
Gwoli uzupełnienia - może będzie czytelniej, jeśli podam co już naskrobałem.. komentarz w kodzie wyjaśnia czego gdzie (jak myślę) brakuje..


  1. <?
  2.  
  3. mysql_connect('localhost', 'db_user', 'db_pass') or die ("Couldn't connect to DataBase");
  4. mysql_select_db('db_name') or die ("Couldn't choose DataBase");
  5.  
  6. $con = mysql_connect("localhost", "db_user", "db_pass");
  7. if (!$con)
  8. {
  9. die('Could not connect: ' . mysql_error());
  10. }
  11.  
  12. $db_selected = mysql_select_db("db_name", $con);
  13.  
  14. $tab1 = array(1,2,3,4);
  15. $ilosc = count($tab1);
  16. $count = 1;
  17.  
  18. $tab2 = $tab1;
  19.  
  20. for($x=0;$x<35;$x++)
  21. {
  22.  
  23. $col = 1;
  24.  
  25. for($i=0;$i<$ilosc;$i++)
  26. {
  27.  
  28. $j=$i+1;
  29. while($j<$ilosc)
  30. {
  31.  
  32. $c=$count++;
  33.  
  34. $sql1 = "SELECT c$tab1[$i] FROM test__7_4";
  35. $sql2 = "SELECT c$tab2[$j] FROM test__7_4";
  36.  
  37. $result1 = mysql_query($sql1,$con);
  38. $result2 = mysql_query($sql2,$con);
  39.  
  40. $nr1 = mysql_result($result1,$x);
  41. $nr2 = mysql_result($result2,$x);
  42.  
  43. $kolumna = "c".$col;
  44.  
  45. $col++;
  46.  
  47. $wynik = $nr1.$nr2;
  48.  
  49. $id_nr = $x+1;
  50.  
  51.  
  52. /*
  53.  
  54.   I tu mam blokadę z kodem, który wyszuka wartość $wynik w tablicy test__7_2 w kolumnie c12 i zwróci wartość z kolumny id tejże tablicy.
  55.   Jeżeli zmienną wynikową nazwalibyśmy $endvalue, linijka kodu poniżej wyglądałaby tak:
  56.   $txt = "UPDATE test__6 SET $kolumna = $endvalue where id = $id_nr";
  57.   i byłoby piknie .. any idea?
  58.  
  59. */
  60.  
  61.  
  62. $txt = "UPDATE test__6 SET $kolumna = $wynik where id = $id_nr";
  63. $q = mysql_query($txt);
  64.  
  65. $j++;
  66. }
  67. }
  68. }
  69.  
  70. ?>



Z góry dzięki za pomoc !
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.