Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] sprawdzenie a potem query dla if i else
Forum PHP.pl > Forum > Przedszkole
dentopolis
jak powinien wyglądać kod sprawdzający czy wpis w bazie istnieje i następnie przechodzi do if, else w których wykonuje osobne query?

1)sprawdź czy wpis istnieje: (SELECT * FROM DIAGRAM WHERE pacjent=24)
2)jeśli tak: UPDATE...
3)jeśli nie: INSERT...
?

obecnie mam taki kod:

  1. $link = mysqli_connect("localhost", "root", "", "gabinet");
  2. // Check connection
  3. if($link === false){
  4. die("błąd połączenia " . mysqli_connect_error());
  5. }
  6.  
  7. $sprawdz = "SELECT * FROM diagramxxx WHERE pacjent = 24";
  8. $zapisz = "INSERT INTO diagramxxx VALUES ('', '$id', '$oneeight','$oneseven')";
  9.  
  10. if( mysqli_num_rows($result) > 0) {
  11. echo "istnieje";
  12. }
  13. else {
  14.  
  15. }
  16.  
wolguy
  1. <?php
  2. $mysqli = new MySQLi('localhost', 'user', 'pass', 'dbname');
  3.  
  4. $sql = 'SELECT COUNT(*) FROM `table` WHERE `warunek` = 24';
  5. $q = $mysqli->query($sql)
  6. $row = $q->fetch_array();
  7.  
  8. if($q and $row[0] == 1) // istnieje
  9. {
  10. }
  11. else
  12. {
  13. $sql = 'INSERT INTO `table` VALUES(null, "val1", "val2")';
  14. $q = $mysqli->query($sql);
  15. }
  16. ?>


pisane na żywo, także może gdzieś jest błąd
Puszy
Jeżeli chodzi o same operacje na bazie to proponuje INSERT z ON DUPLICATE

http://stackoverflow.com/a/2714653/2621852

http://stackoverflow.com/a/450695/2621852
dentopolis
ten kod działa!dzięki:)

  1. <?php
  2. function connect()
  3. {
  4. $dbhost = "localhost";
  5. $dbuser = "root";
  6. $dbpass = "";
  7. $dbname = "gabinet";
  8.  
  9. // Create connection
  10. $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
  11.  
  12. return $conn;
  13. }
  14.  
  15.  
  16. $conn = connect();
  17. $query = "SELECT * FROM badanie WHERE pacjent = 26";
  18. $polacz = $conn->query($query);
  19. $row = $polacz->fetch_array();
  20.  
  21. if ($polacz and $row['pacjent'] == 26) {
  22. echo $row['pacjent'];
  23. echo "istnieje";
  24.  
  25. }
  26. else {
  27. $sql = "INSERT INTO badanie VALUES ('', '26', 't', 'y')";
  28. $q = $conn->query($sql);
  29. echo "wpis dodany";
  30.  
  31. }
  32. $polacz->close();
  33. ?>
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.