Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]$row[0] jako wartosc domyslna textarea
Forum PHP.pl > Forum > Przedszkole
starter91php
Witam, baza danych ma 3 pola: id, nazwa i opis. Chcialbym aby po wybraniu nazwy w select, w innym formularzu textarea przyjela wartosc pola opis (z rekordu w ktorym wystepuje nazwa wybrana w select) z tabeli bazy ;] Cos mi nie idzie, wiec:
  1. <?php
  2. Select:
  3.  
  4.   echo '<form action="" method="post">';
  5.   echo '<select name="nameselect">';
  6.   $result = mysql_query("SELECT id, nazwa FROM `baza`") or die(mysql_error());
  7.   while ($row = mysql_fetch_assoc($result))
  8.   {
  9.       echo '<option value="'.$row["nazwa"].'">'.$row["nazwa"].'</option>';
  10.   }
  11.   echo '</select>';
  12.   echo '<br />';
  13.   echo '<input type="hidden" value="1" name="sendedit" />';
  14.   echo '<input type="submit" value="edytuj" />';
  15.   echo '</form>';
  16.  
  17. Odwolanie do opisu:
  18.  
  19. $query = "SELECT `opis` FROM `baza` WHERE `nazwa`='".$_POST['nameselect']."'";
  20. $result1 = mysql_query($query);
  21. $row1 = mysql_fetch_array( $result1, MYSQL_NUM);
  22.  
  23. Textarea w innym formularzu:
  24.  
  25. echo 'Opis: <br> <textarea rows="10" cols="40" name="nameopis">';
  26. echo ' '.$row1[0].' </textarea><br><br>';
  27. ?>
DREEMus
  1. <?php
  2. // Odwolanie do opisu:
  3.  
  4. $query = "SELECT `opis` FROM `baza` WHERE `nazwa`='".$_POST['nameselect']."'";
  5. $result1 = mysql_query($query);
  6. $row1 = mysql_fetch_array ($result1);
  7.  
  8. // Textarea w innym formularzu:
  9.  
  10. echo 'Opis: <br> <textarea rows="10" cols="40" name="nameopis">'.$row1['opis'].' </textarea><br><br>';
  11. ?>

Sprawdź to winksmiley.jpg
starter91php
Po zmianie indeksu w $row1 dalej nic :|
DREEMus
Wartość funkcji mysql_fetch_array też się zmieniła ... wziąłeś to pod uwagę questionmark.gif
Jak tak, to spróbuj tak smile.gif
  1. <?php
  2. // coś ...
  3.  
  4. $result1 = mysql_query ( 'SELECT `opis` FROM `baza` WHERE `nazwa` = "'.$_POST['nameselect'].'"' );
  5. $row1 = mysql_fetch_array ( $result1 );
  6.  
  7. // Textarea w innym formularzu:
  8.  
  9. echo 'Opis: <br> <textarea rows="10" cols="40" name="nameopis">'.$row1['opis'].' </textarea><br><br>';
  10. ?>
starter91php
  1. <?php
  2. $result1 = mysql_query ( 'SELECT `opis` FROM `baza` WHERE `nazwa` = "'.$_POST['nameselect'].'"');
  3. $row1 = mysql_fetch_array( $result1);
  4.  
  5. echo 'Opis: <br> <textarea rows="10" cols="40" name="nameopis">';
  6. echo ' '.$row1['opis'].' </textarea><br><br>';
  7. ?>


i nic.
DREEMus
Jakieś błędy questionmark.gif Sprawdź źródło po wygenerowaniu ...

// Ja odpadam póki co, rano tu zajrzę winksmiley.jpg
starter91php
  1. <?php
  2. var_dump($row1);
  3. ?>

wypluwa: array(2) { [0]=> string(17) "testowy opis" ["opis"]=> string(17) "testowy opis" }

Czyli chyba to, co powinien ; p wiec kompletnie nie wiem ocb :]
DREEMus
A próbowałeś tak questionmark.gif
  1. <?php
  2. // Dla sprawdzenia :)
  3. $row2 = 'test';
  4. echo 'Opis: <br> <textarea rows="10" cols="40" name="nameopis">' . $row1['opis'] . $row2 . '</textarea><br><br>';
  5. ?>


Sprawdź czy Ci $row2 pokaże ...
starter91php
Zrobilem jak wyzej, a to pole dalej jest puste grrrr... :|
erix
Pokaż lepiej cały kod, jak są te formularze względem plików położone.
starter91php
Oto kody formularzy w 1 pliku, w zaleznosci od wybrania opcji w select inne domyslne wartosci maja sie pojawic w polach drugiego forma. Pole nazwa dziala prawidlowo, problem mam z opisem.
W kodzie od razu wrzucilem glowne zadanie skryptu, czyli aktualizowanie rekordów w bazie, ktore sie nie wykonuje. Plik dziala na zasadzie: opcja z select = > wypelnienie formularza = > update bazy.


  1. <?php
  2. //select:
  3. function ShowForm($komunikat=""){    
  4.   echo $komunikat."<br />";
  5.   echo '<form action="" method="post">';
  6.   echo '<select name="partyedit">';
  7.   $result = mysql_query("SELECT id, nazwa FROM `baza`") or die(mysql_error());
  8.   while ($row = mysql_fetch_assoc($result))
  9.   {
  10.       echo '<option value="'.$row["nazwa"].'">'.$row["nazwa"].'</option>';
  11.   }
  12.   echo '</select>';
  13.   echo '<br />';
  14.   echo '<input type="hidden" value="1" name="sendedit" />';
  15.   echo '<input type="submit" value="edytuj" />';
  16.   echo '</form>';
  17. }
  18.  
  19. //formularz pokazujacy sie po wybraniu opcji w select
  20. function Editform($komunikat1=""){    
  21.   echo $komunikat1."<br />";
  22.   echo '<form action="" method="post">';
  23.   echo 'Nazwa: <input type="text" name="nazwa" value="'.$_POST['partyedit'].'" /><br><br>';
  24.   echo 'Opis: <br> <textarea rows="10" cols="40" name="partyopis">';
  25.   echo ' '.$row1["opis"].'</textarea><br><br>';
  26.   echo '<input type="hidden" value="1" name="partychange" />';
  27.   echo '<input type="submit" value="ZMIEN" />';
  28.   echo </form>;  }
  29.  
  30.  
  31. //instrukcja glowna
  32. $result1 = mysql_query ( 'SELECT `opis` FROM `baza` WHERE `nazwa` = "'.$_POST['partyedit'].'"');
  33. $row1 = mysql_fetch_array( $result1);
  34.  
  35. if($_POST['sendedit']==1)
  36. {
  37. Editform();
  38. }
  39. if($_POST['partychange']==1)
  40. {
  41.       mysql_query("UPDATE `baza` SET `nazwa` = '".$_POST['nazwa']."' WHERE `nazwa`=".$_POST['partyedit']);
  42.       mysql_query("UPDATE `baza` SET `opis` = '".$_POST['partyopis']."' WHERE `nazwa`=".$_POST['partyedit']);
  43.       mysql_query("UPDATE `baza2` SET `nazwa` = '".$_POST['nazwa']."' WHERE `nazwa`=".$_POST['partyedit']);
  44. ?>


dodalem klamre zamykajaca tak jak powinna byc ; ]
erix
  1. <?php
  2. echo '</form>';
  3.  
  4. $result1 = mysql_query ( 'SELECT `opis` FROM `baza` WHERE `nazwa` = "'.$_POST['partyedit'].'"');
  5. $row1 = mysql_fetch_array( $result1);
  6.  
  7. //formularz pokazujacy sie po wybraniu opcji w select
  8. function Editform($komunikat1=""){
  9. ?>

Trochę masz bałagan w tym kodzie... Nie widać, gdzie się jedna funkcja kończy, gdzie zaczyna...

Poza tym - polecam lekturę kursu PHP w rozdziale ZASIĘG ZMIENNYCH.
starter91php
Dodalem ta klamre i przenioslem instrukcje wywolania rekordu, zeby bylo czytelniej :].
erix
  1. <?php
  2. //formularz pokazujacy sie po wybraniu opcji w select
  3. function Editform($komunikat1=""){    
  4.  echo $komunikat1."<br />";
  5.  echo '<form action="" method="post">';
  6.  echo 'Nazwa: <input type="text" name="nazwa" value="'.$_POST['partyedit'].'" /><br><br>';
  7.  echo 'Opis: <br> <textarea rows="10" cols="40" name="partyopis">';
  8.  echo ' '.$row1["opis"].'</textarea><br><br>';
  9.  echo '<input type="hidden" value="1" name="partychange" />';
  10.  echo '<input type="submit" value="ZMIEN" />';
  11.  echo </form>;  }
  12. ?>


Skąd ma się tu wziąć zmienna $row?
Cytat
Poza tym - polecam lekturę kursu PHP w rozdziale ZASIĘG ZMIENNYCH.
starter91php
$row1, mam to:
  1. <?php
  2. $result1 = mysql_query ( 'SELECT `opis` FROM `baza` WHERE `nazwa` = "'.$_POST['partyedit'].'"');
  3. $row1 = mysql_fetch_array( $result1);
  4. ?>

wrzucone przed deklaracja funkcji jak i w instrukcji glownej, zeby wyeliminowac w fazie pracy ten blad.
Wow, cytujesz sam siebie - tak robili tylko najwieksi tego swiata ; )
erix
Cytat
wrzucone przed deklaracja funkcji jak i w instrukcji glownej

To daj var_dump" title="Zobacz w manualu PHP" target="_manual na $row i zobacz, gdzie jest ta Twoja "zmienna".

Cytat
Wow, cytujesz sam siebie - tak robili tylko najwieksi tego swiata ; )

Cytuję sam siebie, ponieważ zignorowałeś to, co napisałem, a jest to kluczowe dla rozwiązania Twojego problemu. Nie masz zielonego pojęcia o zasięgu zmiennych i próbowałem Ci na to delikatnie zwrócić uwagę.
starter91php
Cytat(starter91php @ 24.05.2009, 11:52:39 ) *
  1. <?php
  2. var_dump($row1);
  3. ?>

wypluwa: array(2) { [0]=> string(17) "testowy opis" ["opis"]=> string(17) "testowy opis" }

Czyli chyba to, co powinien ; p wiec kompletnie nie wiem ocb :]


var_dump($row); wypluwa NULL - zmienna w funkcji showform. Chodzilo Ci o var_dump $row czy $row1?

Dzieki, mialem juz przyjemnosc przeczytac o zasiegu zmiennych : ) Bylbym wdzieczny, jesli moglbys mi szczegolowiej naswietlic moj problem - nie siedze w tym dlugo i pewne rzeczy moge jeszcze przeoczyc.

Jakies pomysly? winksmiley.jpg
erix
Cytat
var_dump($row); wypluwa NULL - zmienna w funkcji showform. Chodzilo Ci o var_dump $row czy $row1?

Cokolwiek, wypluje zawsze null, gdyż tych zmiennych NIE MA w zasięgu funkcji.

Cytat
Jakies pomysly?

Przeanalizuj sobie taki kod:
  1. <?php
  2. while(!$ja->rozumiemZasiegZmiennychFunkcjach){
  3.   $material = $manualPHP->getPage('zasiegZmiennych');
  4.   $ja->probujPrzyswoic($material);
  5. }
  6. ?>

I konsekwentnie go wykonuj, bo wciąż nie rozumiesz. A naświetliłem wystarczająco szczegółowo, aby zrozumieć. To są PODSTAWY!
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.