Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]INSERT INTO w OOP
kudo
post 8.02.2013, 18:55:13
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.01.2013

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


Witam,

chciałem przepisać swój kod do rezerwacji pokoju hotelowego na OOP, jednak pojawił się problem z INSERT INTO. Działał on w takiej postaci w kodzie strukturalnym, a teraz wywala standardowy błąd że mysql_num_rows oczekuje 1 parametru. Bardzo proszę o pomoc.

Plik główny
  1. <?php
  2. require_once 'rezerwacja.php';
  3. $id_pokoje=$_POST['id_pokoje'];
  4. $imie=$_POST['imie'];
  5. $nazwisko=$_POST['nazwisko'];
  6. $pobyt_od=$_POST['pobyt_od'];
  7. $pobyt_do=$_POST['pobyt_do'];
  8. $telefon=$_POST['telefon'];
  9. $pokoj=$_POST['id_pokoje'];
  10.  
  11. $db = new Rezerwacja('localhost', 'root', '', 'hotel');
  12. $db->query ("SELECT * from rezerwacja WHERE odkiedy<='$pobyt_od'
  13. and dokiedy >='$pobyt_od' AND idpokoju='$pokoj' UNION ALL (SELECT * from rezerwacja WHERE odkiedy between
  14. '$pobyt_od' and '$pobyt_do' AND idpokoju='$pokoj')
  15. UNION ALL (SELECT * from rezerwacja WHERE dokiedy between
  16. '$pobyt_od' and '$pobyt_do' AND idpokoju='$pokoj')");
  17.  
  18. if ($db->numRows()==0){
  19. $db->id();
  20. $db->query ("INSERT INTO `gosc` (goscid, imie, nazwisko, telefon) VALUES ('$tmp[max]','$imie','$nazwisko','$telefon')");
  21. }
  22. else {
  23. echo '<center><h2>Niestety pokój jest zarezerwowany</center></h2>';
  24. echo 'Pokój zostanie opuszczony: ';
  25. foreach ($db->rows() as $rezerwacje){
  26. echo $rezerwacje['dokiedy']. '<br />Wybierz inną datę lub pokój ';
  27.  
  28. }
  29.  
  30. }
  31.  
  32.  
  33.  
  34. ?>


Plik z metodami

  1. <?php
  2. class Rezerwacja {
  3.  
  4. protected $_polaczenie, $_result, $_numRows;
  5.  
  6. public function __construct($host, $username, $password, $dbName){
  7. $this->_polaczenie = mysql_connect($host, $username, $password);
  8. mysql_select_db($dbName, $this->_polaczenie);
  9. }
  10.  
  11. public function query($sql){
  12. $this->_result = mysql_query($sql, $this->_polaczenie);
  13. $this->_numRows = mysql_num_rows($this->_result);
  14. }
  15.  
  16. public function disconnect(){
  17. mysql_close($this->_polaczenie);
  18. }
  19.  
  20.  
  21. public function numRows(){
  22. return $this->_numRows;
  23. }
  24.  
  25. public function rows(){
  26. $rows = array();
  27. for($x = 0; $x < $this->numRows(); $x++){
  28. $rows[] = mysql_fetch_assoc($this->_result);
  29. return $rows;
  30. }
  31.  
  32. }
  33.  
  34. public function id (){
  35. $tmp=mysql_fetch_assoc(mysql_query("SELECT MAX(goscid) as max FROM gosc"));
  36. $tmp['max']++;
  37. }
  38.  
  39. public function rowsonly(){
  40. $rowsonly[] = mysql_fetch_assoc($this->_result);
  41. }
  42. }
  43.  
  44. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- kudo   [MySQL][PHP]INSERT INTO w OOP   8.02.2013, 18:55:13
- - sajegib   sprawdź co siedzi w $result   8.02.2013, 19:02:46
- - kudo   Po wykonaniu INSERT INTO w _result mam "1...   8.02.2013, 19:20:02
- - sajegib   No tak, bo uzywasz num rows do liczenia BOOL (czyl...   8.02.2013, 19:23:04
- - sajegib   albo if'a wrzuc i jesli result trzyma wyniki z...   8.02.2013, 19:26:57
- - kudo   Wielkie dzięki   8.02.2013, 19:31:16


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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:02