Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Sprawdzenie pustego rekordu.
harbii
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


Wiem, że temat 100 razy wałkowany ale nie moge sobie z tym poradzić.
Kod odczytuje w tabeli2 nr id, który sprawdza w tabeli1 czy istnieje. Jeżeli nie istnieje w tabeli2 ma wywalić brak kodu.

mam coś takiego:

  1. $zapytanie = "SELECT * FROM tabelka2";
  2. $wykonaj = mysql_query($zapytanie);
  3. while($dane = mysql_fetch_array($wykonaj))
  4. {
  5. $id = $dane['id'];
  6. $test = $dane['test'];
  7. $q = mysql_query('SELECT count(*) FROM tabelka1 WHERE id=$test');
  8. if(mysql_num_rows($q) == 0)
  9. {
  10. echo 'brak '.$id;
  11. }
  12. }


Dlaczego to nie działa?

Ten post edytował harbii 16.07.2014, 09:09:29
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


W przypadku liczenia rekordów, mysql_num_rows zwraca 1 rekord z liczbą rekordów
Go to the top of the page
+Quote Post
harbii
post
Post #3





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


Ok. I jak to sie ma do powyższego kodu? Dlaczego to nie działa?
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Masz zrobić
Go to the top of the page
+Quote Post
harbii
post
Post #5





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


Nie bardzo mi to pomogło może źle zastosowałem tą funkcję. Ale obszedłem to zmienną która liczy sobie ile pętli wykonała.

zamiast
  1. $q = mysql_query('SELECT count(*) FROM tabelka1 WHERE id=$test');
  2. if(mysql_num_rows($q) == 0)
  3. {


dałem sobie tak:

  1. $saa=0;
  2. $zapytanie2 = "SELECT * FROM tabelka1 WHERE id=$test";
  3. $wykonaj2 = mysql_query($zapytanie2);
  4. while($dane2 = mysql_fetch_array($wykonaj2))
  5. {
  6. $saa=$saa+1;
  7. }
  8. if($saa == 0){...


Może mega amatorskie ale działą wink.gif
Go to the top of the page
+Quote Post
golabow
post
Post #6





Grupa: Zarejestrowani
Postów: 53
Pomógł: 17
Dołączył: 4.07.2014

Ostrzeżenie: (0%)
-----


  1. $q = mysql_query('SELECT count(*) FROM tabelka1 WHERE id=$test');


Użyłeś pojedynczych apostrofów, należy użyć podwójnych jeśli chcesz aby tekst uległ interpolacji ( PHP zamieni wszystkie wystąpienia zmiennych ich wartościami )

czyli takie coś:
  1. $q = mysql_query("SELECT count(*) FROM tabelka1 WHERE id=$test");
Go to the top of the page
+Quote Post
Turson
post
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


  1. $q = mysql_query('SELECT count(*) as ile FROM tabelka1 WHERE id='.$test);
  2. $row = mysql_fetch_assoc($q);
  3. var_dump($row);


Ten post edytował Turson 16.07.2014, 10:52:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:54