Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]wyświetlenie umowy z danymi z konkretnego rekordu
Forum PHP.pl > Forum > Przedszkole
hidden
Witam!
Mam blade pojęcie na temat php i mysql, ale rzuciłem się na temat napisania formularza do wypełniania umów. Napisałem sam formularz i połączyłem go z bazą (nawet zapisuje dane), ale nie piszę, żeby się pochwalić - pojawiły się problemy:
1. Na początku nie myślałem o bazie więc kiedy w formularzu (index.php) podałem <form action="umowa.php" method="post">, zmienne zapisywały się w gotowym dokumencie umowa.php. Kiedy już postanowiłem zapisywać jednak dane w bazie, musiałem adres zmienić na index.php, bo inaczej zmienne przekazywały wartości do umowa.php, ale nie zapisywały się w bazie.
2. Postanowiłem zatem wydobywać dane z bazy w posatci listy rekordów, więc napisałem lista.php, który pokazuje rekordy z bazy. Nie mam jednak zielonego pojęcia jak z konkretnego rekordu zrobić link do pliku umowa.php wypełnionego danymi z tego właśnie rekordu. Tak, żebym mógł wreszcie wyświetlić wypełnioną umowę i ją wydrukować.

Czyli chodzi o:
1. Jak konstruuje się taki link <a href="umowa.php?id i co dalej, żeby wypełnił umowę danymi tylko z tego rekordu?
2. Za pomocą jakiej funkcji wypełniać konkretne miejsca danymi w umowie?
3. Czy jest jakiś sposób, żeby jednak przycisk "wypełnij umowę" kierował na umowę i jednocześnie zapisywał dane w bazie (form action="umowa.php")?

Proszę o pomoc i z góry dziękuję.
CuteOne
  1. foreach($result as $row) {
  2.  
  3. echo '<a href="umowa.php?id='.$row['id_umowy'].'">'.$row['nazwa'].'</a>';
  4. }


umowa.php
  1. <?php
  2. //sprawdzamy odebrane id, które wstawimy do zapytania
  3. echo $_GET['id'];
  4. ?>
hidden
Super! Dzięki bardzo, pomogło. Nie wstawiałem wcześniej kropek, ale kierunek miałem jak widzę słuszny smile.gif. Teraz po najechaniu na link rzeczywiście wstawia się adres id rekordu.
echo $_GET['id'] równiez zwraca poprawne id. Pozostaje tylko znależć odpowiedź na pytanie: jak w przeznaczonych do tego miejscach w umowa.php wstawić dane dokładnie z tego rekordu.
Dzięki jeszcze raz.

Wpisuję w google różne pytania i nie moge znaleźć odpowiedzi. Proszę więc jeszcze raz o pomoc.
W dokumencie lista mam (dzięki pomocy) taki kod:
CODE
while ($row = mysql_fetch_array($row_res)) {
echo '<tr>';
echo '<td width="100">'.$row['id'].'</td>';
echo '<td width="150">'.$row[2].'</td>';
echo '<td width="50">'.$row[3].'</td>';
echo '<td width="50">'.$row[4].'</td>';
echo '<td width="250">'.$row[5].'</td>';
echo '<td width="50"><a href="umowa.php?id='.$row['id'].'">pokaż</a></td>';
echo '</tr>';

W umowa.php sprawa wygląda tak:
CODE
//powyżej są dane logowania do bazy i cała reszta

$row_res = mysql_query("SELECT * FROM ngb") or die("Błąd podczas wykonywania zapytania"); //tu pewnie za pomocą WHERE można wskazać id rekordu, z którego pochodzić mają dane, ale jak to zrobić?
if ($row = mysql_fetch_array($row_res)){
echo "UMOWA O ¦WIADCZENIE USŁUG nr ".$_GET['id']." / NGB / ".date('m'). "/ ".date('Y'); //tu pobiera numer id jako numer umowy
}
?>
</p></strong></center>
<p>
Pomiędzy Firma<br />
a<br /> <b>
<?php
if ($row = mysql_fetch_array($row_res)){
echo $row['nazwa_krotka']; //tu zwraca nazwę, ale z rekordu, który sobie wybrał sam
}

?></b>&nbsp;&nbsp;(nazwa krótka firmy)
</p>
<p>
Przedmiotem Umowy jest ¶wiadczenie usług:<br />
<table width="50%">
<tr>
<td> Usługa 1 </td>
<td>........................................</td>
<td><b>
<?php
if ($row = mysql_fetch_array($row_res)){
echo $row[2]; // tu jak wyżej
}
?>
</b></td>
</tr>
<tr>
<td> Usługa 2 </td>
<td>........................................</td>
<td><b>
<?php
if ($row = mysql_fetch_array($row_res)){
echo $row[3]; //tu też
}
?>
</b></td>
</tr>
</table>

Na stronie WWW<br />
<table width="50%">
<tr>
<td>Nazwa Promocji:</td>
<td><b>
<?php
$row_res = mysql_query("SELECT * FROM ngb") or die("Błąd podczas wykonywania zapytania");// tu powtórzyłem, bo już to z początku dokumentu nie działa
if ($row = mysql_fetch_array($row_res)){
echo $row['promocja']; //tu też, przy czym wszystkie pochodzą z tego samego rekordu
}

?>
</b></td>
</tr>
<tr>

// poniżej jest dalsza część kodu, który wygląda podobnie jak ten powyżej


Proszę bardzo o pomoc
CuteOne
  1.  
  2. if(empty($_GET['id'])) { //przekierowanie }
  3.  
  4. $id = (int) $_GET['id'];
  5.  
  6. $query = mysql_query("SELECT * FROM tabela WHERE id = '".$id."'");
  7.  
  8. if(mysql_num_rows($query)) {
  9.  
  10. $row = mysql_fetch_assoc($query);
  11.  
  12. echo $row['nazwa'];
  13. }


ps. zamiast używać mysql_ zapoznaj się z biblioteką PDO
hidden
Dzięki! Działa smile.gif
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.