Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]sprawdzenie, czy dany wiersz istnieje
Forum PHP.pl > Forum > Przedszkole
beatZB
Witam, mam coś w rodzaju "dodaj do ulubionych" działa, ale chciałam dodatkowo zrobic funkcję, która sprawdza, czy dany użytkownik już polubił wpis, jesli tak- to niech nie dodaje do bazy wiersza, a jeśli nie- to żeby dodał odpowiednie dane do bazy, Jednak nie wiem, jak to zrobic to jak próbuję- nie działa.
Może Ktoś z was będzie wiedział, co robię źle?

  1. <?php
  2. include'połączenie.php';
  3.  
  4. if($_SERVER['REQUEST_METHOD'] == 'POST'&& isset($_POST))
  5. {
  6. $id= $_POST['id'];
  7. $nazwa= $_POST['nazwa'];
  8. $nick= $_SESSION['login'];
  9.  
  10. $stmt = $pdo -> prepare("SELECT * FROM ulubione WHERE login= '$login' and id_wpisu='$id_wpisu'");
  11. if($stmt->fetch(PDO::FETCH_NUM) > 0){
  12. echo 'juz lubisz'; die();}
  13. else{
  14.  
  15. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16. $stmt = $pdo -> prepare('INSERT INTO `ulubione` (`login`,`id_wpisu`,`nazwa`) VALUES(
  17. :login,
  18. :id,
  19. :nazwa)');
  20.  
  21. $stmt -> bindValue(':login', $login, PDO::PARAM_STR);
  22. $stmt -> bindValue(':id', $_POST['id'], PDO::PARAM_STR);
  23. $stmt -> bindValue(':nazwa', $_POST['nazwa'], PDO::PARAM_STR);
  24. $stmt->execute();
  25. echo '<input name="id" type="hidden" value="'.$id.'">';
  26. }}
  27. ?>


Chciałam, żeby zapytanie sprawdzało czy to "polubienie" już było, na podstawie nicku użytkownika i id wpisu.
Będę wdzięczna za wszelką pomoc i sugestie.
mmmmmmm
Popatrz na 7 i 11 linijkę kodu. W którejś z nich jest błąd.
ctom
Cytat(beatZB @ 14.03.2015, 13:43:46 ) *
ale chciałam dodatkowo zrobic funkcję, która sprawdza, czy dany użytkownik już polubił wpis, jesli tak- to niech nie dodaje do bazy wiersza, a jeśli nie- to żeby dodał odpowiednie dane do bazy,


zapytaj google o : mysql INSERT IGNORE INTO

wnioskuję, że dbasz o czystość języka ... ale bez przesady (linia 3) ;-)
beatZB
Dzięki! Wszystko było by pięknie, gdyby nie to, że nie działa... dodaje wszystko co mu powiem, jak by ignorował że w ogóle to 'ignore' tam jest...

  1. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  2. $stmt = $pdo -> prepare('INSERT IGNORE INTO `ulubione` (`nick`,`id_przepis`,`nazwa`) VALUES(
  3. :nick,
  4. :id,
  5. :nazwa)');
  6.  
  7. $stmt -> bindValue(':nick', $_POST['nick'], PDO::PARAM_STR);
  8. $stmt -> bindValue(':nick', $nick, PDO::PARAM_STR);
  9. $stmt -> bindValue(':id', $_POST['id'], PDO::PARAM_STR);
  10. $stmt -> bindValue(':nazwa', $_POST['nazwa'], PDO::PARAM_STR);
  11. $stmt->execute();
  12.  


Dlaczego to jest źle?
Pyton_000
a masz założony klucz unique na pola "nick, id_przepis" ?
beatZB
Dziękuję, teraz już wszystko działa, tak- jak chciałam.
Pozdrawiam!
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.