Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql][php] count + where 2 kolumn
Forum PHP.pl > Forum > Przedszkole
fr33d0m
  1. //$_SESSION['start'] = 123456
  2. $GetId = $_GET['id'];
  3.  
  4. $ZnajomiAll = mysql_fetch_array(mysql_query("SELECT * FROM znajomi WHERE ja = '".$_SESSION['start']."'"));
  5. $pAll = mysql_fetch_array(mysql_query("SELECT * FROM poufne WHERE id_uni = '$GetId'"));
  6.  
  7. $sql = mysql_query("SELECT COUNT(*) AS liczba FROM znajomi WHERE ja='".$_SESSION['start']."' and on='".$pAll['id_uni']."'");
  8. $result = mysql_fetch_assoc($sql);
  9. print $result['liczba'];


Wyskakuje błąd: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\... on line 8

Chcę aby COUNT zliczył podwójne te same wpisy w tabeli znajomi, ale wyskakuje błąd z którym męczę się kilka dobrych godzin ;/
budowa bazy wygląda tak:
#poufne
id_uni | user
123456 | asdasd
654321 | qweqwe
#znajomi
ja | on
123456 | 654321
123456 | 654321

z góry dziękuję za pomoc.
amii
  1. $sql = mysql_query("SELECT COUNT(*) AS liczba FROM znajomi WHERE on=$pAll['id_uni']"); //przy cudzysłowiu nie musisz stosować ucieczki


Dwa to chyba ta zmienna z sesji jest niepotrzebna liczysz w/g parametru dostarczanego poprzez on. Włącz błędy zarówno SQL jak i wyświetlanie w skrypcie
fr33d0m
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\usr\krasnal\www\...
Wciąż bez rezultatu... włączyłem monity błędów i $zmiennych. Twój kod wywoływał powyższy błąd i domagał się ". .".
Teraz wygląda to tak:
  1. ini_set('display_errors','1');
  2.  
  3. $GetId = $_GET['id'];
  4. $pAll = mysql_fetch_array(mysql_query("SELECT * FROM poufne WHERE id_uni = '$GetId'"));
  5.  
  6. $sql = mysql_query("SELECT COUNT(*) AS liczba FROM znajomi WHERE on=".$pAll['id_uni']."");
  7. $result = mysql_fetch_assoc($sql);
  8. print $result['liczba'];
  9.  
  10. var_dump($sql);
  11. echo '<br />';
  12. var_dump($result);


INFO:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\... on line 8
bool(false)
NULL


O ile dobrze kumam info $sql == 0 -co jest nie prawdą bo tabela jest zapełniona 2pozycjami:
#poufne
id_uni |
123456
654321

a w URL jest .php?id=123456 lub ?id=654321
Nie mam pojęcia jak to rozwiązać;/ poza tym podanie w klauzuli WHERE argumentu tylko jednego tak jak sugerujesz $pAll['id_uni'] nie rozwiąże mojego problemu ze względu na to, że chce aby nie doszło do zdublowania tego samego wpisu pomiędzy "ja" "on".

Tworze dodawanie znajomych do usera i chcę zblokować możliwość dodania tego samego usera dwukrotnie poprzez policzenie czy user ma juz usera w znajomych i do tego wlasnie chce wykorzystac tego COUNT'a
Coś takiego mniej wiecej mam na mysli:
  1. if ($result['liczba'] == 1 and $cos == dodaj_znajomego){
  2. echo 'user jest juz znajomym';
  3. }else{ ...dodawanie... }


Jeśli ktoś zna coś prostszego to niech mnie chociaż nakieruje z pominięciem bibliotek PDO. Z góry dzięki...
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.