Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Pobieranie danych z bazy MySQL
phpoint
post 18.08.2008, 12:06:53
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.08.2008

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


Witam,
Podczas próby pobrania danych z serwera SQL wyskoczył mi komunikat o błędzie:
Cytat
Call to a member function fetch_array() on a non-object

Komunikat wskazuje na linie:
  1. <?php
  2. while ($row = $result->fetch_array(MYSQLI_ASSOC))
  3. ?>


Całość:
  1. <?php
  2. if (mysqli_connect_errno()) 
  3. {
  4. printf("Connect failed: %s\n", mysqli_connect_error());
  5.  exit();
  6.  
  7.  
  8. $result = $mysqli->query("SELECT title, long FROM section WHERE category_section = 1");
  9.  
  10. while ($row = $result->fetch_array(MYSQLI_ASSOC))
  11. {
  12.  echo $row['title'];
  13.  echo $row['long'];
  14. }
  15. ?>

Dlaczego paser twierdzi że to nie jest obiekt? i jak usunąć tą usterkę.
Go to the top of the page
+Quote Post
ViX
post 18.08.2008, 12:08:34
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 9
Dołączył: 19.11.2007
Skąd: Kraków

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


Wystarczy tyle:

<?php
while ($row = $result->fetch_array())
?>

ale wtedy odwołujesz sie tak:

$row[0], $row[1] etc

a w przypadku jak chcesz sie odwoływać:

echo $row['title'];
echo $row['long'];

to proponuje:

<?php
while ($row = $result->fetch_assoc())
?>

jest jeszcze opcja obiektowa:

<?php
while ($row = $result->fetch_object())
?>

i wtedy wyglada to tak:
$row->nazwa_kolumny

Ten post edytował ViX 18.08.2008, 12:11:09


--------------------
Poszukujący wiedzy
Go to the top of the page
+Quote Post
phpoint
post 18.08.2008, 13:44:49
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.08.2008

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


Postąpiłem zgodnie z Twoją sugestią
  1. <?php
  2. $result = $mysqli->query("SELECT title, long FROM section WHERE category_section = 1");
  3. while ($row = $result->fetch_assoc())
  4. {
  5.  echo $row->title;
  6.  echo $row->long;
  7. }
  8. ?>

no i niestety również w tym samym miejscu pojawił się komunikat (ten sam).

Dziękuję za podpowiedź odnośnie odczytywania kolumn.

Lecz kiedy wsadzę to w instrukcję warunkową IF, wyskakuje mi informacja o błędzie.
  1. <?php
  2. if($result = $mysqli->query('SELECT title, long FROM section'))
  3. {
  4. while ($row = $result->fetch_assoc())
  5. {
  6.  $sectionArray = array(
  7. 'sectionTitle'=>$row['title'],
  8. 'sectionLong'=>$row['long']
  9. );
  10. echo $row->title;
  11. echo $row->long;
  12. }
  13.  
  14. exit();
  15. }
  16. ?>

Dlatego problem pojawia się w:
  1. <?php
  2. $result = $mysqli->query('SELECT title, long FROM section')
  3. ?>

co już kompletnie mnie zbija z tropu.

Ten post edytował phpoint 18.08.2008, 14:01:47
Go to the top of the page
+Quote Post
kaem
post 18.08.2008, 13:54:03
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


No nie do końca postąpiłeś jak ViX napisał winksmiley.jpg Musisz użyć
  1. <?php
  2. $result->fetch_object())
  3. ?>
Go to the top of the page
+Quote Post
phpoint
post 18.08.2008, 14:34:59
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.08.2008

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


Cytat(kaem @ 18.08.2008, 14:54:03 ) *
No nie do końca postąpiłeś jak ViX napisał winksmiley.jpg Musisz użyć
  1. <?php
  2. $result->fetch_object())
  3. ?>

A Tak faktycznie, lecz nadal problem występuje w linii:
  1. <?php
  2. if($result = $mysqli->query('SELECT title, long FROM section'))
  3. ?>


  1. <?php
  2. if($result = $mysqli->query('SELECT title, long FROM section'))
  3. {
  4. while ($row = $result->fetch_object())
  5. {
  6. echo $row->title;
  7. echo $row->long;
  8. }
  9.  
  10. exit();
  11. } else {
  12. echo 'blad';
  13. }
  14. ?>
Go to the top of the page
+Quote Post
ViX
post 22.08.2008, 16:48:25
Post #6





Grupa: Zarejestrowani
Postów: 114
Pomógł: 9
Dołączył: 19.11.2007
Skąd: Kraków

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


A czy kolega połączył sie z bazą danych?

  1. <?php
  2. $mysqli = new mysqli('host', 'login', 'haslo', 'baza');
  3. ?>


--------------------
Poszukujący wiedzy
Go to the top of the page
+Quote Post

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: 25.07.2025 - 08:08