Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]jak odebrac zmienn przesylana $_GET[php]
Forum PHP.pl > Forum > Przedszkole
martino277
czesc!mam pytanie wiem mniej wiecej co w trawie piszczy ale niedokonca niemoge odebrac tak jak trzeba zmiennej przesylanej w adresie przez GET

przesylam zmienna

strona.php?id=$id

a probuje ja odebrac za pomoca takiego kodu
  1. <?php
  2. include "connect.php";
  3.  
  4.  
  5. $id=$_GET['id'];
  6. $pyt=mysql_query("SELECT * FROM anonse WHERE id='$id'");
  7. if(!$pyt) {echo mysql_errno().": "; echo mysql_error()."<br>"; }
  8. if($row=mysql_fetch_array($pyt))
  9. {
  10. $mail=$row['mail'];
  11. $tel=$row['tel'];
  12. }
  13.  
  14. echo("<center><span class=normal>Adres e-mail: </span><a href=mailto:$mail class=linki>$mail</a></center><br>");
  15.  
  16. if($tel!="")
  17. echo("<center><span class=normal>Telefon: <b>$tel</b></span></center>");
  18. ?>

ale to cos jest chyba zle bo powinno pokazywac adres email i telefon a pokazuje tylko adres email: i wiecej nic prosze o jakas podpowiedz pozdrawiam z gory dziekuje
kossa
Nie przesyłasz zmiennej metodą POST (to formularze) a metodą GET (poprzez URL)

  1. <?php
  2. $id=$_GET["id"];
  3. ?>


edit:

bez apostrofów przy $id - id jak się domyślam jest typu int wiec tak szybciej zapytanie zadziała bo z apostrofem to jest najpierw wykoywana konwersja typów zmiennych ze stringa na inta
  1. <?php
  2. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id ");
  3. ?>


Łukasz
Cezar708
Cytat(martino277 @ 10.10.2007, 09:28:59 ) *
przesylam zmienna
  1. <?php
  2. strona.php?id=$id
  3. ?>


to jest zmienna przesłana metodą GET, czyli ją pobierasz za pomocą:

  1. <?php
  2. echo $_GET['id'];
  3. ?>


POST używasz na przykład w formularzach
  1. <form action='plik.php' method="post">
  2. <input type='hidden' name='id' value='<?php echo $id;?>'>
  3. <input type=submit>
  4. </form>
martino277
dzieki za wyjsnienie panowie to sie pomylilem znaczy sie zaraz zmienie to dlatego mi nieodbieraznaczy sie jak zmienie post na get to powinno dzialac zaraz sprawdze

no dalem taki kod
  1. <?php
  2. include "connect.php";
  3. echo $_GET["id"];
  4. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id");
  5. if(!$pyt) {echo mysql_errno().": "; echo mysql_error()."<br>"; }
  6. if($row=mysql_fetch_array($pyt))
  7. {
  8. $mail=$row['mail'];
  9. $tel=$row['tel'];
  10. }
  11.  
  12. echo("<center><span class=normal>Adres e-mail: </span><a href=mailto:$mail class=linki>$mail</a></center><br>");
  13.  
  14. if($tel!="")
  15. echo("<center><span class=normal>Telefon: <b>$tel</b></span></center>");
  16. ?>

ale jest taki blad
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Adres e-mail:
czyli niewiem co jest? sciana.gif
Cezar708
Cytat(martino277 @ 10.10.2007, 09:45:23 ) *
no dalem taki kod
  1. <?php
  2. include "connect.php";
  3. echo $_GET["id"];
  4. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id");
  5. // .. i reszta Twojego kodu
  6. ?>


tu zamiast
  1. <?php
  2. echo $_GET["id"];
  3. ?>

to wyświetla zmienną, a Ty musisz ją przejąć (ja podałem Ci to jako przykład), czyli
  1. <?php
  2. $id = $_GET['id'];
  3. ?>
kossa
tu na pewno jest źle - brak zmiennej id:

  1. <?php
  2. echo $_GET["id"];
  3. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id");
  4.  
  5. //tak:
  6. $id=$_GET["id"];
  7. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id");
  8. ?>


Łukasz
martino277
zmienilem cezary na tak jak powiedziales
  1. <?php
  2. include "connect.php";
  3. $id = $_GET['id'];
  4. $pyt=mysql_query("SELECT * FROM anonse WHERE id=$id");
  5. if(!$pyt) {echo mysql_errno().": "; echo mysql_error()."<br>"; }
  6. if($row=mysql_fetch_array($pyt))
  7. {
  8. $mail=$row['mail'];
  9. $tel=$row['tel'];
  10. }
  11.  
  12. echo("<center><span class=normal>Adres e-mail: </span><a href=mailto:$mail class=linki>$mail</a></center><br>");
  13.  
  14. if($tel!="")
  15. echo("<center><span class=normal>Telefon: <b>$tel</b></span></center>");
  16. ?>

ale nadal mam ten sam blad w pierwszej lini
Cezar708
hmm są dwa wyjścia w tym momencie

1. Twoje ID to nie jest integer tak jak zakładałem, więc możesz w zasadzie w każdym przypadku zmienić odpowiednią linijkę na:
  1. <?php
  2. $pyt=mysql_query("SELECT * FROM anonse WHERE id='$id'"); // $id dałem pomiędzy dwa apostrofy
  3. ?>


2. nie przenosisz do skryptu zmiennej poprzez get, po prostu wywołaj swój skrypt w ten sposób:
Kod
twojskrypt.php?id=xx

gdzie xx to jest Twoje testowe id, dla którego chcesz sprawdzić działanie skryptu
martino277
blad zniknal bezwzgledu jak wywoluje pierwsza metoda czy ta co podales cezar brakowalo apostrofow ale nadal mi niewyswietla informacji zmienna elegancko sie przkazuje jeszcze tylko zeby sie informacje email i adres wyswietlal to by bylo gites bede walczyl dalej az do skutku pozdrawiam guitar.gif
Cezar708
jeśli pobrało z bazy danych to sprawdź czy aby na pewno masz kolumnę mail
vide:
  1. <?php
  2. $mail=$row['mail'];
  3. ?>

oraz czy masz w niej jakąś wartość wpisaną, bo ogólnie to powinno zadziałać

TIP:
często może pomóc wyświetlenie zawartości tablicy $row za pomocą, być może w ten sposób zobaczysz błąd w swoim kodzie:
  1. <?php
  2. echo "<pre>";
  3. print_r($row);
  4. echo "</pre>";
  5. ?>
martino277
ok dzieki cezar bede probowal pozdrawiam

kolumny vide niemam takiej w bazie w pozycji email wogole niema
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.