Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Zapis wyniku preg_match do bazy
Forum PHP.pl > Forum > Przedszkole
NEONIX
hej smile.gif
Napisałem sobie w php skrypt który używa curla do poszukiwania tego co chcę na stronie, jednak niemogę tego zapisać zamiast zapisać mi znalezioną zawartość która jest to zapisuje mi "Array"
Kod wygląda tak:
  1. <?php
  2. // Tutaj polecenia cURL
  3.  preg_match_all ("wyrazenie algebraiczne", $pobrane_zrodlo, $wynik);
  4.  print_r ($wynik[1]); 
  5.  $dodaj="insert into linki(`id`,`link`) values('','$wynik[1]')";
  6.  mysql_query($dodaj) or die(mysql_error());
  7. ?>

Wyświetla normalnie wyniki tak jak powinno ale nie dodaje do bazy, co jest nie tak? Oczywiście chcę zapisać wszystkie znalezione wyniki do bazy
phpion
Zapisuje ci Array() bo przekazujesz do INSERTA tablicę. Nie ma w tym nic dziwnego. Jeśli preg_match_* zwraca ci konkretnie jedną wartość (np. pobierasz <title> strony) to użyj preg_match, natomiast jeśli zwraca ci więcej niż jedną wartość (np. przelatujesz jakąś tabelkę z danymi) to użyj preg_match_all ale zapisu do bazu dokonuj w pętli np.
  1. <?php
  2. preg_match_all ("wyrazenie algebraiczne", $pobrane_zrodlo, $wynik);
  3.  print_r ($wynik[1]); 
  4.  foreach ($wynik[1] as $w) {
  5.  $dodaj="insert into linki(`link`) values('$w')";
  6.  mysql_query($dodaj) or die(mysql_error());
  7.  }
  8. ?>

Coś takiego. Aha, jeśli pole id jest kluczem głównym z auto_increment to lepiej pominąć to pole w insercie - wywaliłem co trzeba.

PS: wyrażenie regularne. a nie algebraiczne winksmiley.jpg
vtuner
tablicę zapisuj do bazy tak:

  1. <?php
  2. serialize($wynik[1]);
  3. ?>


a odczytując bierzesz:

  1. <?php
  2. unserialize($odpowiednia_zmienna);
  3. ?>
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.