Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mySQL][PHP]
Forum PHP.pl > Forum > Bazy danych > MySQL
Piotrek666
Witam

Mam problem z kodem który powinien pobrać dane z bazy na temat użytkownika o 'podanym' mailu.

nie mogę dostać odczytu danych użytkownika z bazy.
Domyślam się ze nadmiar zawiasów albo złe zapytanie stanowi przyczynę mojego problemu :/

  1. <?php
  2. require("run.php");
  3. $sql = $DB->Query("SELECT '".$_POST['email']."' FROM `users` ");
  4. //$sql = $DB->Query("SELECT * FROM `users` WHERE `email` = '".$_POST['email']."'");
  5.  
  6. $result = $DB->ToArray($sql);
  7. echo "ID:&nbsp;".htmlspecialchars($result['idusers'])."<p>";
  8. ?>


Ponieważ nie jestem dobry w te klocki, nie jestem w stanie wychwycić co jest przyczyną błędu.
kod nie wyświetla mi żadnych błędów.
pojawia się jedynie.
"ID:"

Czy ktoś może widzi problem?
lukasz.adamczewski
Cytat(Piotrek666 @ 23.02.2010, 23:04:49 ) *
Witam

Mam problem z kodem który powinien pobrać dane z bazy na temat użytkownika o 'podanym' mailu.

nie mogę dostać odczytu danych użytkownika z bazy.
Domyślam się ze nadmiar zawiasów albo złe zapytanie stanowi przyczynę mojego problemu :/

  1. <?php
  2. require("run.php");
  3. $sql = $DB->Query("SELECT '".$_POST['email']."' FROM `users` ");
  4. //$sql = $DB->Query("SELECT * FROM `users` WHERE `email` = '".$_POST['email']."'");
  5.  
  6. $result = $DB->ToArray($sql);
  7. echo "ID:&nbsp;".htmlspecialchars($result['idusers'])."<p>";
  8. ?>


Ponieważ nie jestem dobry w te klocki, nie jestem w stanie wychwycić co jest przyczyną błędu.
kod nie wyświetla mi żadnych błędów.
pojawia się jedynie.
"ID:"

Czy ktoś może widzi problem?



podaj schemat bazy i wytłumacz po krótce o co chodzi w tym kodzie bo jak narazie to zgaduje że to zapytanie ma wyświetlić email z tabeli userów jeśli pod $_POST['email'] jest nazwa kolumny (w takiej formie to teraz masz napisane). natomiast zakomentowane masz według mnie dobre zapytanie wybierające usera o danym mailu. i potem tylko kwestia wybrania identyfikatora tego usera - jaka nazwa klucza? i skoro masz funkcje toArray to może ona zwraca najpierw tablice wyników od 0 do konca
a potem dopiero w każdym wierszu kolumny tabeli
więc moze powinno być $result[0]['idusers'] ale daj lepiej var_dump($result); przed tym echem i zobacz co masz w ogóle w tej zmiennej.
Piotrek666
Zauważyłem że ten post powininen raczej znajdować się w "przedszkolu".
Za pomyłkę przepraszam admina.

Chcę napisać kod któremu jak podam email użytkownika, załaduje mi wszystkie dane z bazy tego użytkownika i wyswietli mi na ekranie.

co do shematu bazy
nazwa bazy: `users`
nazwy kolumn w tabeli bazy:
idusers name surname gender email

Co do kodu var_dump($result);

  1. array(2) { [0]=> string(0) "" [""]=> string(0) "" }
zzeus
  1. $sql = "SELECT idusers, name, surname, gender FROM users WHERE email = '".$_POST['email'].'";
Piotrek666
  1. require("run.php");
  2. //$sql = $DB->Query("SELECT '".$_POST['email']."' FROM `users` ");
  3. //$sql = $DB->Query("SELECT * FROM `users` WHERE `email` = '".$_POST['email']."'");
  4. $sql = "SELECT idusers, name, surname, gender FROM `users` WHERE email = '".$_POST['email']."'";
  5. //$result = $DB->ToArray($sql);
  6. //var_dump($result);
  7. echo "<h3>USER</h3><ol>";
  8. echo "'.$name.'";


wyświetla ".."

ja już zaczołem myśleć że coś umiem w tym zagadnieniu :/
lukasz.adamczewski
nie obrażaj ludzi jeśli nie masz ku temu podstaw (najlepiej w ogóle nie obrażaj)

kolega powyżej dał Ci dobry kod ale ty nie masz pojęcia jak się później przetwarza dane z bazy.
skąd niby php ma wiedzieć co powinno być pod zmienną $name skoro nie określiłeś jej wartości.

przeanalizuj tą stronę http://www.php.net/manual/en/function.mysql-db-query.php
Piotrek666
Jeśli chodzi o "przedszkole" to miałem na myśli swój post(cały wątek).
cała sprawa z jednym zapytaniem do bazy to raczej początki sql raczej.


Co do niewiedzy na temat sql to owszem zgadza się - mam zielone pojecię - dopiero się uczę.

Cały kod próbowałem różnymi sposobami (mowa o typie nawiasu i zapytanie) sprawdzić.
Wszędzie zawsze dostaje puste dane. var_dump($result); zwraca mi null.
Wnioskuje że mam problem z zapytaniem do bazy gdzie moja sieczka nawiasowa robi swoje.

jak mam napisać zapytanie w którym email usera byl by podawany metodą post z linku do tego kodu??

mam inny kod który mi działa bez zarzutu
Służy do wyświetlenia wszystkich userów:

  1. // USERS
  2. $sql = $DB->Query("SELECT * FROM `users` ORDER BY idusers ASC");
  3. if($DB->Count($sql)>0){
  4. echo "<h3>USERS</h3><ol>";
  5. while($result = $DB->ToArray($sql)){
  6. $sql1 = $DB->Query("SELECT COUNT(email) FROM `users`");
  7. echo "<li>ID:&nbsp;".htmlspecialchars($result['idusers'])."&nbsp;".htmlspecialchars($result['name'])."&nbsp;";
  8. echo "".htmlspecialchars($result['email'])."";
  9. echo "</li>";
  10. }
  11. echo "</ol>";
  12. }


Zapytania do bazy typu

SELECT * FROM `users` WHERE email = '".$_POST['email']."'
SELECT idusers, name, surname, gender FROM users WHERE email = '".$_POST['email'].'"

nie dają mi żadnych wyników
nospor
Cytat
email usera byl by podawany metodą post z linku do tego kodu
linki wysylają dane GETem a nie POSTem
Patrzyles wogole czy dostajesz ten email? przeciez to piersza rzecz ktora nalezało sprawdzic...
Piotrek666
Działa to bylo pierwsze co sprawidziłem...

Tylko że przy początkowych próbach napisania poprawnego zapytania do bazy, z funkcji get mi się zrobił post.
zwracając uwagę na ilość nawiasów nie zwróciłem uwagi co się znajduje w tych nawiasach. A dalej to już poszło... tracąc już calą nadzieje że się uporam z problemem, napisałem na forum.

Zrobiłem banalny błąd - pomylilem funkcje get z postem i na odwrót.

Zapytanie
  1. $sql = $DB->Query("SELECT * FROM `users` WHERE email = '".$_GET['email']."' ");

działa poprawnie teraz.

Chyba sobie daruje php i bazy bo moja dysleksja wykończy psychicznie mnie i każdego kto chciałby mi pomóc.

Wszystkim dziękuję za pomoc 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.