Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PHP] Wyszukanie danych w bazie MySQL

scy12 16 Maj 2011 12:12 2470 12
  • #1 16 Maj 2011 12:12
    scy12
    Poziom 12  

    wybieranie z dwóch pól koloru i marki samochodu a następnie wyszukanie typu samochodu

    Kod: php
    Zaloguj się, aby zobaczyć kod


    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. - arnoldziq

    0 12
  • #2 16 Maj 2011 12:24
    wujek2009
    Poziom 12  

    Właściwie to nie napisałeś gdzie błąd leży? :>

    Kod: php
    Zaloguj się, aby zobaczyć kod


    Poza tym wyświetlaj sobie błędy, jeśli zapytanie się nie wykonało czy zerwało połączenie z bazą.

    Zobacz w FAQ: http://php.net/manual/en/function.mysql-error.php

    0
  • #3 16 Maj 2011 12:53
    scy12
    Poziom 12  

    Problem jest z tą częścią kodu reszta działa znakomicie błąd polega na tym że po naciśnięciu przycisku z wcześnie wybranym kolorem i makrą samochodu wyświetla mi wszystkie typy samochodów dostępne w bazie a nie wybrane z okna

    Code:

    $sql="SELECT k.id_kolor as id_k, k.kolor_auta as kolora ,m.id_marki as id_m , m.marka_auta as markam, m.typ
    FROM kolor k, marka m ";

    $wynik=mysql_query($sql, $con);


    while($z = mysql_fetch_array($wynik))
    {
    if ($z["id_k"]==$z["id_m"]) {
    echo'typy samochodow to ',$z["typ"],'kolor to ',$z["kolora"] '<br />';
    }
        }

    0
  • #4 16 Maj 2011 13:48
    wujek2009
    Poziom 12  

    ponieważ nie zastosowałeś WHERE w zapytaniu - aby sprecyzować co dokładnie ma szukać.
    Np.

    Kod: mysql
    Zaloguj się, aby zobaczyć kod

    0
  • #5 17 Maj 2011 10:13
    scy12
    Poziom 12  

    Jeśli tak wrzuce do kompilatora to wyskakuje mi błąd że zmienne kolora i markam są nie zadeklarowane

    Code:

    $sql="SELECT k.id_kolor as id_k, k.kolor_auta as kolora ,m.id_marki as id_m , m.marka_auta as markam, m.typ
    FROM kolor k, marka m
    WHERE k.kolor_auta = '$kolora' AND m.marka_auta = '$markam' ";

    0
  • #6 17 Maj 2011 10:28
    wujek2009
    Poziom 12  

    To jest zdeklaruj. Formularz wysyłasz metodą $_POST, więc:

    Kod: php
    Zaloguj się, aby zobaczyć kod


    I powinieneś odebrać dwie zmienne z formularza, który pokazałeś w pierwszym poście.

    0
  • #7 17 Maj 2011 16:23
    scy12
    Poziom 12  

    jeszcze coś jest nie tak ponieważ jak wybiorę w jednym oknie kolor w drugim markę nacisnę wyszukaj to program nie znajduje typu który już istnieje w bazie (nic nie wyświetla)

    Dodano po 1 [godziny] 47 [minuty]:

    Code:

    $kolora = $_POST['id_kolor'];
    $markam = $_POST['id_marki'];

    Obstawiam że w tym przekazaniu zmiennych jest błąd bo nic mi nie wyświetla

    0
  • #8 17 Maj 2011 16:59
    azra
    Poziom 16  

    A wrzuć

    Kod: php
    Zaloguj się, aby zobaczyć kod
    .

    0
  • #9 17 Maj 2011 20:05
    scy12
    Poziom 12  

    Code:

    teraz wyświetla mi
    array(2) { ["id_kolor"]=> string(1) "9" ["id_marki"]=> string(1) "1" }

    0
  • #10 18 Maj 2011 16:35
    azra
    Poziom 16  

    Ręczne wykonanie takiej kwerendy:

    Kod: sql
    Zaloguj się, aby zobaczyć kod
    działa jak powinno? Jakiego typu są w bazie k.kolor_auta i m.marka_auta?

    0
  • #11 19 Maj 2011 10:08
    scy12
    Poziom 12  

    1. Zapytanie selekt działa jak powinno ale nadal nie wiem czemu nie mogę wyświetlić danych z 2 pól wyboru
    2. Zmienne k.kolor_auta i m.marka_auta to varchar

    0
  • #12 26 Maj 2011 16:59
    scy12
    Poziom 12  

    Zrobiłem pole wyboru między fiatem a audi, jak wybiorę fiata i wpiszę kolor to wyświetli się lista dostępnych modeli.

    Code:

    /*
    baza
    */
    <form action="" method="post">
    <select name="auto">
    <option value="fiat"> marka</option>
    <option value="audi"> kolor</option>
    </select>
    wpisz kolor szukania: <input type="text" name="szukanie" />
     <input type="submit" value="szukaj" />

    <php
    if (@$_POST['auto'] == 'fiat')
    { "fiat = '$_POST[szukanie]' ";


     $zapytanie=mysql_query("SELECT * from fiat='$szukanie' " );
     
     }
     
    if (@$_POST['auto'] == 'audi')
    { "audi = '$_POST[szukanie]' ";


     $zapytanie=mysql_query("SELECT * from audi='$zukanie' " );
     
     }

    while($row = mysql_fetch_array($zapytanie))
    { echo "marka to ",$row['lista_samochodów'];
    }

    błąd
    Code:

    while($row = mysql_fetch_array($zapytanie))
    mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

    0
  • #13 26 Maj 2011 20:22
    wujek2009
    Poziom 12  

    mysql_error() - Twoją odpowiedzią.

    Gdy wykonujesz zapytanie to zadbaj, aby w razie niepowodzenia wyświetliło Ci dokładny błąd.

    PS. SELECT (CO) FROM (SKĄD) WHERE (CO) = (CO);

    Zjadłeś nazwę tabeli, skąd ma pobierać wyniki gdzie kolumna audi = $zukanie

    Oczywiście pomijam fakt prawdopodobniej literówki w zmiennej $zukanie, której nie widzę no i przede wszystkim czy na pewno masz kolumnę "audi" w danej tabeli ?

    Jednak jak wspomniałem wyżej - poczytaj o mysql_error() dołączanych do zapytania.

    0