Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z kodem
Forum PHP.pl > Forum > Przedszkole
simon111
Witam
Mam taki problem. Wysyłam daną z formularza do pliku index.php. Dana wysyłana jest standartowym kodem:

  1. <?php
  2. <center><form action="index.php" method="post"> 
  3. Podaj numer:<br>
  4. <input type="text" name="numer" /><br><br> 
  5.  
  6. <input type="submit" value="dodaj" /><br><br> 
  7. </form></center>
  8. ?>


W pliku index.php odbieram ją:

  1. <?php 
  2. $numer = $_POST['numer']; 
  3. if($numer) {
  4. ?>


a następnie łącze się z bazą i wysyłam do niej takie zapytanie:

  1. <?php
  2. $ins = @mysql_query("SELECT nazwa FROM tabela WHERE numer='$numer'");
  3. ?>


Jak nie trudno odgadnąć chodzi mi o pobranie informacji względem podanego wcześniej numeru. Dlatego napisałem dalej:

  1. <?php
  2. if($ins) echo
  3. ?>


Ale nie wiem co mam napisać teraz, żeby wyświetliło mi te dane sad.gif. Bardzo proszę o pomoc w tej sprawie i z góry dziękuję za wszelkie opdpowiedzi. Pozdrawiam Simon.
strife
mysql_query" title="Zobacz w manualu PHP" target="_manual jak podaje manual zwraca Resource. Tak otrzymany wynik musisz sobie jeszcze obrobić. Zainteresuj się mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual, mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual itp. smile.gif

Przenoszę na Przedszkole
simon111
No domyślam się że powinieniem tego użyć, ale jak po echo dałem to:

  1. <?php
  2. while ($row = mysql_fetch_array($result)) {
  3. echo "<table border width='120'><TR><TD width='120'>" . $row["nazwa"] ."</TD>
  4. </TR>n</table>";
  5. ?>



To mi wyrzuciło błąd sad.gif
kwiateusz
a jaki konkretnie?
strife
Cytat(simon111 @ 9.05.2007, 20:23:56 ) *
To mi wyrzuciło błąd sad.gif


Jaki błąd? Mamy się domyślać? (klarmy przy pętli nie masz, ale domyślam się że to literówka)
simon111
Dobra oto oryginalny skrypt pliku index.php:

  1. <?php 
  2. // odbieram dane z formularza 
  3. $id_drukarki = $_POST['id_drukarki']; 
  4.  
  5. if($id_drukarki) { 
  6.  
  7. // łączę się z bazą danych 
  8. $connection = @mysql_connect('localhost', 'root', 'krasnal') 
  9. or die('Brak połączenia z serwerem MySQL'); 
  10. $db = @mysql_select_db('serfis', $connection) 
  11. or die('Nie mogę połączyć się z bazą danych'); 
  12.  
  13. // wykonuje zapytanie
  14. $ins = @mysql_query("SELECT nazwa FROM wykonana_czynnosc WHERE id_drukarki='$id_drukarki'"); 
  15.  
  16.  // po poprawnym dodaniu wyświetlam wynik
  17.  
  18.  
  19. if($ins) echo
  20.  
  21.  
  22. while ($row = mysql_fetch_array($result)) {
  23. echo "<table border width='120'><TR><TD width='120'>" . $row["nazwa"] ."</TD>
  24. </TR>n</table>";
  25. ?>


A oto błąd jaki mi wyrzuca:

  1. <?php
  2. Parse error: parse error, expecting `','' or `';'' in c:usrkrasnalwwwstronadfirmaselectzadania specjalneindexh.php on line 22
  3. ?>
strife
Na pierwszy rzut oka to nie pasuje mi to:

  1. <?php
  2. if($ins) echo
  3. ?>

Popraw to. Jeśli nie wiesz jak skorzystaj z manual'a, rozdział o instrukcjach warunkowych. Swoją drogą po co Ci ta linijka, równie dobrze możesz się jej pozbyć.
simon111
Zmodyfikowałem znacznie swój skrypt i wygląda on teraz tak:

  1. <?php 
  2. // odbieram dane z formularza 
  3. $id_drukarki = $_POST['id_drukarki']; 
  4.  
  5. if($id_drukarki) { 
  6.  
  7. $link = mysql_connect("localhost", "root", "krasnal")
  8. or die("Could not connect");
  9.  
  10. mysql_select_db("serfis")
  11. or die("Could not select database");
  12.  
  13. $query = "SELECT nazwa FROM wykonana_czynnosc WHERE id_drukarki='$id_drukarki'";
  14. $result = mysql_query($query)
  15. or die("Query failed"); 
  16.  
  17.  
  18. while ($row = mysql_fetch_array($result)) {
  19. echo "<table border width='120'><TR><TD width='120'>" . $row["nazwa"] ."</TD>
  20. </TR>n</table>";
  21. }
  22.  
  23. mysql_close($link);
  24.  
  25. }
  26. ?>


Teraz już mi wprawdzie nie wyrzuca błędu, ale za to wyświetla pustą stronę blinksmiley.gif
www0_0
nic dziwnego skoro funkcja w 5 linii wygląda tak.
if($id_drukarki)

A co php ma sobie z nią zrobić??
On uznaje że ten if jest fals bo nie wie co z nim zrobić i tego nie wykonuje.

Użyj tam jakiegoś porównania lub funkcji

isset" title="Zobacz w manualu PHP" target="_manual
empty" title="Zobacz w manualu PHP" target="_manual
Cienki1980
Cytat(www0_0 @ 9.05.2007, 23:26:28 ) *
nic dziwnego skoro funkcja w 5 linii wygląda tak.
if($id_drukarki)

A co php ma sobie z nią zrobić??
On uznaje że ten if jest fals bo nie wie co z nim zrobić i tego nie wykonuje.

Użyj tam jakiegoś porównania lub funkcji

isset" title="Zobacz w manualu PHP" target="_manual
empty" title="Zobacz w manualu PHP" target="_manual


Piszesz głupoty. Sprawdź co się będzie działo jak wywołasz taki kod:
  1. <?php
  2. //$zmienna=3;
  3.  
  4. if($zmienna) echo "jest";
  5. else echo "nie ma";
  6. ?>

i taki kod
  1. <?php
  2. $zmienna=3;
  3.  
  4. if($zmienna) echo "jest";
  5. else echo "nie ma";
  6. ?>


Jeżeli nie jesteś pewny czegoś w 100% to lepiej nie pisz.
www0_0
fakt kodu nie sprawdziłem wziołem to na logikę, ale to dowodzi, że formularz jest pusty, i wykonuje się domyślnie else którego tu niema, czyli w gruncie rzeczy pusta strona. Bo nie widać w tym skrypcie błędów.
simon111
Witam Cienki1980
Sprawdziłem tak dla zasady ten kod co mi przysłałeś, jak nie trudno odgadnąć, gdy zmiennej niema wyświetla jej "brak", a gdy jest wypisuje, że "jest". Mam takie jakieś przeczucie, że diabeł tkwi w jakiś znacznikach(średnik, cudzysłów...) no nie wiem, ale może to jest jakiś namiar.
Próbowałem jeszcze takiego kodu, ale zachowuje mi się identycznie:

  1. <?php 
  2. // odbieram dane z formularza 
  3.  
  4. $id_drukarki = $_POST['id_drukarki']; 
  5. if($id_drukarki) {
  6.  
  7. //łącze się z bazą 
  8.  
  9. $link = mysql_connect("localhost", "root", "krasnal")
  10. or die("Could not connect"); 
  11.  
  12. //wybieram rodzaj bazy 
  13. mysql_select_db("serfis")
  14. or die("Could not select database"); 
  15.  
  16. $query = "SELECT nazwa FROM wykonana_czynnosc WHERE id_drukarki='$id_drukarki'"; 
  17. $result = mysql_query($query)
  18. or die("Query failed");
  19.  
  20. while ($row = mysql_fetch_array($result)) {
  21. $nazwa = $row["nazwa"]; 
  22. echo "<table border width='120'><TR><TD width='120'>".$nazwa."</TD> </TR>n</table>"; 
  23.  
  24. } 
  25. mysql_free_result($result); 
  26. mysql_close($link); 
  27. } 
  28. ?>
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.