Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP+PDO]Sprawdzenie czy nie zwraca rekordów.
ZaXaZ
post
Post #1





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


sprawdzałem mój wynik przez print_r($wynik);
i kompletnie NIC nie zwraca (tak miało być)
jednak jak mogę sprawdzić czy nie zwraca, wogóle nic (do die())?

Ten post edytował ZaXaZ 12.04.2014, 18:14:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez fetchAll zwraca tablice....

if (empty( $kto)) echo 'Ojej, tablica jest pusta a przez to nie zwrocono zadnego rekordu...';

ps:
$q->bindParam(':c', $toCheck);
$toCheck=$row['user'];

a co to za potworki? Bindujesz zmienną, ktorej wartosc okreslasz dopiero linijke pozniej....
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #3





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(nospor @ 13.04.2014, 11:46:26 ) *
Przeciez fetchAll zwraca tablice....

if (empty( $kto)) echo 'Ojej, tablica jest pusta a przez to nie zwrocono zadnego rekordu...';

ps:
$q->bindParam(':c', $toCheck);
$toCheck=$row['user'];

a co to za potworki? Bindujesz zmienną, ktorej wartosc okreslasz dopiero linijke pozniej....


1. nadal nie działa, przypominam że wyświetla tylko rekordy jak są, udostępniam cały kod jednak zmieniam dla bezpieczeństwa nazwy w sql ale działa tak samo, ps. autoren kodu sql jest jak się nie mylę trueblue, z tydzień temu gdzieś na forum był taki kod, a ja chce zamienić pobierane wartości user i user2 na nick odpowiedni nick..

  1. <?php
  2. $multi = $PDO->query('SELECT CONCAT(LEAST(who.user,who2.user),GREATEST(who.user,who2.user)) AS multi, who.user, who.user2 FROM `users` who JOIN `users` who2 ON who2.user = who.user2 AND who2.user2 = who.user GROUP BY multi');
  3. echo 'konta multi:'."\r\n\r\n";
  4. while($row = $multi->fetch(PDO::FETCH_ASSOC))
  5. {
  6. $q = $PDO->prepare('SELECT `nick` FROM `users` WHERE `user` = :c');
  7. $q->bindParam(':c', $toCheck);
  8. $toCheck=$row['user'];
  9. $q->execute();
  10. $kto = $q->fetchAll(PDO::FETCH_COLUMN, 0);
  11. $toCheck=$row['user2'];
  12. $q->execute();
  13. $kto2 = $q->fetchAll(PDO::FETCH_COLUMN, 0);
  14. if (empty($kto) && empty($kto2)) die('Brak!.'); //to nie działa :/
  15. echo $kto[0].', '.$kto2[0]."\r\n";
  16. }
  17. ?>


2. wiem, wygląda to BAAARDZO dziwnie, jednak tak było w książce z której się uczę podstaw pdo, i odziwo ani jednego błędu nie wyrzuca, działa poprawnie, pewnie dlatego że jest w prepare [kod] i execute.

jakby co tu daje kod jaki tam jest jakby ktoś chciał wiedzieć.


  1. <?php
  2. $db_conn = new PDO('mysql:host=localhost;dbname=recipes', 'użytkownik-php', 'sekret');
  3.  
  4. // Pobranie jednego przepisu
  5. $sql = 'SELECT recipes.name, recipes.description, categories.name as category
  6. FROM recipes
  7. INNER JOIN categories ON categories.id = recipes.category_id
  8. WHERE recipes.chef = :chef
  9. AND categories.name = :category_name';
  10.  
  11. $stmt = $db_conn->prepare($sql);
  12.  
  13. // Związanie wartości chef, chcemy tylko przepisy Sylwii
  14. $stmt->bindValue(':chef', 'Sylwia');
  15. $stmt->bindParam(':category_name', $category);
  16.  
  17. // Przystawki
  18. $category = 'Przystawka';
  19. $stmt->execute();
  20. $starters = $stmt->fetchAll();
  21.  
  22. // Deser
  23. $category = 'Deser';
  24. $stmt->execute();
  25. $pudding = $stmt->fetchAll();
  26. ?>


Ten post edytował ZaXaZ 13.04.2014, 13:50:22
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 01:47