• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pobieranie danych z bazy - rozdzielenie

0 głosów
70 wizyt
pytanie zadane 4 dni temu w PHP, Symfony, Zend przez robert251346 Nowicjusz (190 p.)
zamknięte 9 godziny temu przez robert251346

Dzień dobry, 

Mam problem w swoim programie PHP. Skrypt ma za zadanie pobierać z bazy danych phpMyAdmin dane odnośnie hostów (nazwy np fb.com). Następnie ma nazwy hostów wrzucić do funkcji, która sprawdza czy port danego hosta działa prawidłowo. Problem w tym, że przy zapytaniu SQL (wyborze hostów z tabeli) i wyświetleniu ich za pomocą echo wyrzuca wszystkie wyniki wypisane w jednym ciągu (nierozdzielone np. wp.plfb.cominteria.pl). Kiedy w zapytaniu stwierdzę, że np. ma być to host o id=3 (np. fb.com) to wtedy skrypt działa prawidłowo ale kiedy chce wziąć wszystkie dane z tabeli (kolumna 'adres') to wtedy łączy wynik w jeden ciąg.. Chciałbym aby skrypt pobierał z bazy danych adres hosta, sprawdził go po czym w kolumnie obok (status) wpisał wartość OK bądź AWARIA. W tabeli mam 5 nazw hostów. 

}
$host1 = mysqli_query($polaczenie, "SELECT adres FROM domeny") or die ("Błąd zapytania do bazy: $dbname");

while ($host2 = mysqli_fetch_row($host1)) {
$host3= $host2[0];
print $host2[0];
$port = '80';
}
function sprawdzenie() {
	global $host3, $port;
$fp = @fsockopen($host3, $port, $errno, $errstr, 30);
if ($fp) { return 'OK'; } else { return 'Awaria'; }
// echo 'Host '.$host3.':'.$port.' jest: ';
// if ($fp) { echo 'OK'; } else { echo 'Awaria'; }
// if (!$fp) { echo "$errstr ($errno)"; }
}
$dolar=sprawdzenie();
$status = mysqli_query($polaczenie, "UPDATE domeny SET Status='$dolar' WHERE id between 0 and 5");

W jaki sposób mogę skonstruować zapytanie SELECT aby rozdzielało zaczerpnięte z tabeli dane? 
Przepraszam, jeżeli coś źle wytłumaczyłem.

 

 

 

komentarz zamknięcia: Rozwiązane

2 odpowiedzi

0 głosów
odpowiedź 3 dni temu przez Rocket Obywatel (1,450 p.)
wybrane 9 godziny temu przez robert251346
 
Najlepsza

Cześć.

Użyłeś funkcji print, analogiczną do niej jest println która za każdym razem wypisuje to co podajesz "w nowej linii".

https://forum.pasja-informatyki.pl/249230/println-vs-print-w-czym-jest-roznica

Zamiast while (choć niezbyt rozumiem składni przez Ciebie zastosowanej, to nie będe się wgłębiać), polecam funkcje foreach która elegancko spełni zadanie.

https://www.php.net/manual/en/control-structures.foreach.php

P.S. Twoją bazą danych nie jest phpMyAdmin, lecz MySQL (dokładniej to rodzaj bazy) do której się łączysz za pośrednictwem panelu phpMyAdmin.

Zachęcam Cię także do zapoznania się z PDO, co do połączenia z bazą danych.

 

Pozdrawiam,

Rocket.

 

0 głosów
odpowiedź 9 godziny temu przez robert251346 Nowicjusz (190 p.)
Dziękuję a odpowiedź. Wszystko działa :)

Podobne pytania

0 głosów
1 odpowiedź 60 wizyt
0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 4 grudnia 2017 w PHP, Symfony, Zend przez OdsetekGlupoty Stary wyjadacz (14,250 p.)
0 głosów
1 odpowiedź 74 wizyt
pytanie zadane 27 maja w PHP, Symfony, Zend przez michal_php Gaduła (3,950 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

66,984 zapytań

113,890 odpowiedzi

241,334 komentarzy

46,942 pasjonatów

Przeglądających: 239
Pasjonatów: 9 Gości: 230

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...