ďťż

[PHP&MySQL] 2 tabele, błąd z wyświetlaniem powiązanych danych!

       

Podstrony


telcocafe

Witam serdecznie. Mam problem z wyświetleniem w pętli while...
Ale od początku. Chcę zrobić tak że mam 2 tabele (grupy i firma), w grupach oczywiście są stworzone grupy, w formie jest nazwa firmy, przypisana_grupa. Chodzi o to żeby skrypt pobierał nazwę grupy i wyświetlał wszystko według przypisanej grupy. Mam grupy np. alicja, ola, magda, w firmie mam 2 firmy: ZSYP (przypisaną do grupy: alicja) i NO-IP (przypisaną do grupy: ola). Skrypt nie wyświetla mi tego a w zamian otrzymuję "piękny" błąd odnośnie mysql_fetch_array.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

Siedzę już nad tym kodem (i nie tylko) kilka godzin. Być może z przemęczenia nie widzę błędu a jest on oczywisty. Bardzo proszę Was o pomoc!
Błąd wyświetlany jest w 19 linijce czyli:

while($lista=mysql_fetch_array($a))

<? include('../config.php'); mysql_connect(BAZA_HOST,BAZA_LOGIN,BAZA_HASLO); mysql_select_db(BAZA_WYBOR); echo 'Kategorie: <br /><br />'; $pytanie=mysql_query('SELECT * FROM grupy ORDER BY nazwa_grupy ASC'); while($row=mysql_fetch_array($pytanie)) { echo '<a href="admin.php?akcja=firmy&nazwa='.$row['nazwa_grupy'].'"> '.$row['nazwa_grupy'].'<a /><br />'.$row['opis_grupy'].'<br /><br />'; $nazwa_grupy=$row['nazwa_grupy']; } echo '<hr>'; if(isset($_GET['nazwa'])) { $a=mysql_query('SELECT * FROM firmy ORDER BY id_firmy WHERE przypisana_grupa='.$nazwa_grupy.''); while($lista=mysql_fetch_array($a)) { echo 'Firmy: <br />'.$lista['nazwa_firmy'].'<br />'; mysql_error(); } } ?>
Użytkownik bl4ck_b0x edytował ten post 22 sierpień 2007, 20:51


po $a=mysql_query('SELECT * FROM firmy ORDER BY id_firmy WHERE przypisana_grupa='.$nazwa_grupy.'');

napisz
echo mysql_error();

Bo twoj kod zwraca bład ze zapytanie nie zostało wykonane poprawnie.

nic nie wyświetla, próbowałem już tak. cały czas jest ten błąd z mysql_fetch_array

U mnie (nie wiem czemu) w takich przypadkach zmieniałem nazwy zmiennych i dzialalo (sam nie wiem czemu :D) proponuje ci wstawic przy kazdych funkcjach zwiazanych z baza coś takiego:polecenie or die('Błąd nr 1 '.mysql_error())
moze akurat przy mysql_fetch_array tego nie wstawiaj bo masz juz wpisane wyswietlanie bledu w petli ale przy query do jest dobre rozwiazanie
Użytkownik kokoss15 edytował ten post 23 sierpień 2007, 07:09


Tuż po (NIE W WHILE)
$a=mysql_query('SELECT * FROM firmy ORDER BY id_firmy WHERE przypisana_grupa='.$nazwa_grupy.'');
napisz
echo $a;
i jeśli nic nie wyświetli to znaczy, że zapytanie zostało źle wykonane.

$a=mysql_query('SELECT * FROM firmy ORDER BY id_firmy WHERE przypisana_grupa=\''.$nazwa_grupy.'\'');
A może to chodzi o brak apostrofów? Spróbuj taki kod.

Najpierw WHERE, potem ORDER, no i to co powiedział kiperoman - cudzysłowy albo apostrofy:
$a=mysql_query('SELECT * FROM firmy WHERE przypisana_grupa="'.$nazwa_grupy.'" ORDER BY id_firmy');

A może po prostu użyć @ przed mysql_fetch_array() i problem z głowy


A może po prostu użyć @ przed mysql_fetch_array() i problem z głowy
Nooo taaak... błędu nie będziemy mieli, ale też nie będziemy mieli wyniku działania tej funkcji :P

wykonaj sobie tą kwerendę w phpMyAdmin ;] być może w ogóle nie ma rekordów spełniających te kryteria ;]


wykonaj sobie tą kwerendę w phpMyAdmin ;] być może w ogóle nie ma rekordów spełniających te kryteria ;]
Gdyby tak było to nie wykonało by kodu w pętli i nie byłoby błędu...

Wrzuć zapytanie w phpMyAdmin i pokaże ci błąd.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.