Skocz do zawartości

Problemy z MySQL - pojedyncze dane na pojedynczej stronie


Driv

Rekomendowane odpowiedzi

Witam

Napisałem sobie skrypt zapisujący jakieś dane do bazy danych oraz skrypt wyświetlający je znajdujący sie w innym pliku i chciał bym aby dzięki funkcji php if'a każdy rekord był wyświetlany pojedynczo pod innym adresem. Mam już wszystko praktycznie przygotowane tylko ni mam pojęcia jak to połączyć. Może mi pomożecie :) chodzi aby każdy pis miał inny adres przez ip np index.php?ip=90 lub index.php?ip=150

Funkcja if'a którą chyba powinienem wrzucić gdzieś w wczytywanie :

<form action="baza.php" method="post">
<br />
<input type="text" name="x1" /><br />
<br />
<input type="text" name="x2" /><br />
<br />
<input type="text" name="x3" /><br />
<br />
<input type="text" name="x4" /><br />
<input type="submit" value="dodaj" />
</form>

<?

// odbieramy dane z formularza
$x1 = $_POST['x1'];
$x2 = $_POST['x2'];
$x3 = $_POST['x3'];
$x4 = $_POST['x4'];

if($x1 & $x2 & $x3 & $x4) { 

include('forum/config.php');
$sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd)
or die('Brak polaczenia');
mysql_select_db($dbname);


   // dodajemy rekord do bazy
   $ins = @mysql_query("INSERT INTO zzz SET x1='$x1', x2='$x2', x3='$x3', x4='$x4'");

   if($ins) echo "Rekord został dodany poprawnie";
   else echo "Błąd nie udało się dodać nowego rekordu";

mysql_close($sql_conn); } 

?>

Wczytywanie

<?

include('forum/config.php');
$sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd)
or die('Brak polaczenia');
mysql_select_db($dbname);

// wybieramy bazę danych
mysql_select_db('zzz');

// wyświetlanie
$zapytanie = "SELECT `id`, `x1`, `x2`, `x3`, `x4` FROM `zzz`";
$idzapytania = mysql_query($zapytanie);
echo '<table>';
while ($wiersz = mysql_fetch_row($idzapytania)) {
echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td><td>'. $wiersz[4] .'</td><td>';
}
echo '</table>';


?>

2bano.png
Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam pojęcia o co autorowi postu chodzi :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Chciał bym użyć funkcji if'a w php, aby każdy wyświetlany rekord bazy był w osobnej stronie zmieniającej jedynie ip - np:

pierwszy wpis index.php?ip=1

drugi wpis index.php?ip=2

trzeci wpis index.php?ip=3

Podałem skrypty, które trzeba jakoś połączyć tylko nie wiem jak - wyświetlanie z tym if'em

Proszę, niech mi ktoś pomoże...

2bano.png
Odnośnik do komentarza
Udostępnij na innych stronach

No to użyj instrukcji warunkowej [a nie funkcji] IF - co za problem https://php.net/manual/en/control-structures.if.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zrobiłem tak ale wywala mi błąd w 12 linni "Function name must be a string"

<?

include('forum/config.php');
$sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd)
or die('Brak polaczenia');
mysql_select_db($dbname);

// wybieramy bazę danych
mysql_select_db('zzz');

// wyświetlanie
$zapytanie('SELECT `id`, `x1`, `x2`, `x3`, `x4` FROM `zzz` WHERE id='.(int)$_GET['id'].' LIMIT 1');
$idzapytania = mysql_query($zapytanie);
echo '<table>';
while ($wiersz = mysql_fetch_row($idzapytania)) {
echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td><td>'. $wiersz[4] .'</td><td>';
}
echo '</table>';

?>

2bano.png
Odnośnik do komentarza
Udostępnij na innych stronach

Po co używasz iteracji czyli funkcji while ($wiersz = mysql_fetch_row($idzapytania)) skoro jawnie pobierasz jeden rekord LIMIT 1 :P

$zapytanie('SELECT `id`, `x1`, `x2`, `x3`, `x4` FROM `zzz` WHERE id='.(int)$_GET['id'].' LIMIT 1'); << TUTAJ JEST BLAD

DAJ NP TAK:

if(is_numeric($_GET['id']) == false)
{
die('Bledny parametr ID'):
}

$zapytanie = mysql_query("SELECT `id`, `x1`, `x2`, `x3`, `x4` FROM `zzz` WHERE id= $_GET['id'] LIMIT 1");
$rekord = mysql_fetch_object($zapytanie);
print_r($rekord);

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli dobrze rozumiem, to chodzi ci o stronicowanie wyników. Tak na szybko: brak jest chyba przede wszystkim, jeśli dobrze spojrzałem, informacji dla select'a od którego rekordu ma wyświetlać dane (jedną daną/wiersz) LIMIT offset, count. Czyli w przypadku jeden rekord jedna strona:

adres.php?page=1 ==> SELECT .... LIMIT $_GET['page'],1

Pomogło?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności