Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Pobieranie wszytskich pustych rekordów
Forum PHP.pl > Forum > Przedszkole
diamondking
Witam - jestem bardzo początkujący wink.gif

Mam w bazie danych tabelę users obecnie składa się z pól:

Jak mam pobrać wszystkie puste pola z tej tabeli i je zliczyć?



Pyton_000
.... jakich pól ... i co oznacza puste: czy '' czy NULL

WHERE pole IS NULL OR pole = ''
diamondking
Mam tabelę users w niej pola:

1. id
2. user_name
3. user_email
4. website
5. wiek
6. plec (z czasem będzie więcej)

Przy rejestracji uzupełnione zostanie tylko id, unser_name, user_email.

Teraz bym chciał pobrać wszystkie pola, które nie są uzupełnione i je zliczyć.

świeżo po rejestracji bedą trzy (webiste, wiek, plec)

ale później może je uzupełnić wiec będą np 2.



  1. SELECT COUNT(*) FROM users WHERE id='$userid';


Tak może być ?
Jak dodać warunek by pobrało tylko puste pola?
Pyton_000
To jeszcze powiedz do czego Ci taki manewr?
diamondking
Chciałbym na podstawie tego później wyświetlić ile procent profilu jest uzupełnione
Pyton_000
Ehh...

Na szybko:
  1. <?php
  2.  
  3. $sql= "SELECT * FROM users WHERE id = 2";
  4. // Pobieranie danych
  5. // $results = ....
  6.  
  7. $allFields = count($result)-1;
  8. $filledFields = count(array_filter($results))-1;
  9.  
  10. $filledPercent = $filledFields / $allFields *100;
  11.  
diamondking
Dzięki wielkie ale co mam wstawic w miejsce

  1. // Pobieranie danych
  2. // $results = ....


czy to juz gotowe jest ;D ?
daniel1302
Zależy czego używasz do komunikacji z bazą bo jeśli jest to PDO to musisz wstawić coś typu
  1. $q = $pdo -> prepare($sql); $q -> execute(); $result = $q -> fetch();


albo jeśli czyste mysql, w co wątpię to:
  1. $q = mysql_query($sql); $result = mysql_fetch_assoc($q);

A jeśli coś innego, to zobacz do dokumentacji biblioteki.
diamondking
  1. //procent profilu
  2. function procent_profil(){
  3.  
  4. $zapytanie = "SELECT * FROM `users` WHERE `user_id` = 1";
  5. $result = mysql_query($zapytanie);
  6.  
  7. $allFields = count($result)-1;
  8. $filledFields = count(array_filter($results))-1;
  9.  
  10. $filledPercent = $filledFields / $allFields *100;
  11.  
  12. echo $filledPercent;
  13.  
  14. }


BŁĄD:

  1. Warning: array_filter() expects parameter 1 to be array, null given in /home/u416505061/public_html/config.php on line 92 Warning: Division by zero in /home/u416505061/public_html/config.php on line 94 0
Pyton_000
to teraz popatrz jak Ty pobierasz rekordy a jak kolega wyżej...
diamondking
Czy musicie mi to tak utrudniać smile.gif
UCZE SIĘ smile.gif
Czy ktoś mógłby napisać działający kod nerdsmiley.png ?
Ja próbuję i nie umiem :/

  1. //procent profilu2
  2. function procent_profil2(){
  3.  
  4. $sql= "SELECT * FROM users WHERE user_id = 1";
  5. $q = mysql_query($sql);
  6. $result = mysql_fetch_assoc($q);
  7.  
  8. $allFields = count($result)-1;
  9. $filledFields = count(array_filter($results))-1;
  10.  
  11. $filledPercent = $filledFields / $allFields *100;
  12.  
  13. echo $filledPercent;
  14.  
  15. }


nadal błąd:

Warning: array_filter() expects parameter 1 to be array, null given in /home/u416505061/public_html/config.php on line 127 -11.111111111111
SpiritCode
Linia 9.
Napisałeś zmienną $results a w linii 6. deklarujesz $result
diamondking
Dzięki wielkie wszystkim !
Tylko jedna literka a tyle zamieszania !

smile.gif
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.