Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Zapytanie do bazy danych
Forum PHP.pl > Forum > Przedszkole
gigiooo
Witam jestem początkującym albo raczej raczkującym w temacie php i mysql. Mam problem z wyświetleniem zapytania, które odwoływało by się do zmiennej z formularza. W formularzu wpisujemy id np. 1 ,a skrypt wyszukuje nam z tabeli user i dane wartości dla user.userid-1. Primary key w tabelach są ustawione pod user.userid i dane.id , Foregin key to dane.user . Próbuję zrobić zapytanie łączone:
  1. <?php
  2. $zapytanie1=$zapytanie.$id;
  3. ?>

ale działa tylko jak się zrobi
  1. <?php
  2. $zapytanie1=$zapytanie.print($id);
  3. ?>


lecz tylko dla jendej wartości $id=1.
Proszę o szybką pomoc bo to projekt zaliczający semestr na studiach. Poniżej zamieszczam kod z którego korzystałem.
  1. <?php    
  2. mysql_connect('localhost',$username,$password);  
  3. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");  
  4. ;  
  5. $zapytanie = 'SELECT userid,imie, nazwisko ,km ,koszty FROM user, dane WHERE user.userid = dane.user AND user.userid=' ;  
  6. $id=$_POST['id'];  
  7. // tutaj sklejam stringi zeby utworzyc zapytanie dla konkternego pola ale nie wiem ja uzyskac wartość $id bo wywala bład zapytania  
  8. $zapytanie1=$zapytanie.$id;  
  9. if(!$wynik=mysql_query($zapytanie1))  {  
  10.    echo("Blad w zapytaniu");  
  11.    exit;  
  12.    }  
  13. else  {  
  14.    echo("zapytanie poprawne");  
  15.    }    
  16.    
  17. echo "<b><center>Raport -rozliczenia</center></b><br><br>";
  18. echo "<center><table cellpadding=\"10\" border=\"1px\"></center>";  
  19. while($i = mysql_fetch_assoc($wynik)) {  
  20.        echo "<tr>";  
  21.        echo "<td>".$i['userid']."</td>";  
  22.        echo "<td>".$i['imie']."</td>";  
  23.        echo "<td>".$i['nazwisko']."</td>";        
  24.        echo "<td>".$i['km']."</td>";  
  25.        echo "<td>".$i['koszty']."</td>";  
  26.        echo "</tr>";  
  27.   }  
  28.      echo "</table>";  
  29. ?>
nospor
print($id); da zawsze true, czyli 1, stad masz zawsze tylko dla 1.

skoro nie dziala ci .$id znaczy ze pod $id nic nie ma. ciezko dac echo $id i sprawdzic czy cos tam jest czy nie?

widze ze robisz =$_POST['id'] wiec pewnie postem nie przesylasz tego id
drPayton
  1. <?php
  2. if(isset($_POST['id']) AND is_numeric($_POST['id'])) {
  3.        $zapytanie = 'SELECT userid,imie, nazwisko ,km ,koszty FROM user, dane WHERE user.userid = dane.user AND user.userid='.$_POST['id'];  
  4.  
  5.        if(!$wynik=mysql_query($zapytanie1)) {
  6.            (...)
  7.        }
  8.        (...)
  9. } else {
  10.    echo 'POST pusty lub cos psujesz... o_O';
  11. }
  12. ?>


To tak na początek
gigiooo
Dzięki wielkie pomogliście obaj znalazłem buga w kodzie formularza i wszystko gra jak należy.
Mam jeszcze drugie pytanie otóż mam skrypt odpowiadający za logowanie użytkowników, wykorzystuje on sesje - oto kod:
  1. <?php
  2. if(isSet($_SESSION['zalogowany'])){
  3.    header("Locatio: main.php");
  4. }
  5. else if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
  6.  $_SESSION['komunikat'] = "Wprowadź nazwę i hasło użytkownik:";
  7.  include('form.php');
  8. }
  9. else{
  10.  $val = checkPass($_POST["user"], $_POST["haslo"]);
  11.  $admin= "admin";
  12.  if($val == 0){
  13.    if ($_POST["user"]=="$admin")  {
  14.    $_SESSION['zalogowany'] = $_POST["user"];
  15.    header("Locatio: main.php");
  16.    }
  17.    else {
  18.    $_SESSION['zalogowany'] = $_POST["user"];
  19.    header("Locatio: rozliczenie.php");
  20.   }
  21.  }
  22.  else if($val == 1){
  23.    $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  24.    include('form.php');
  25.  }
  26.  else if($val == 2){
  27.    $_SESSION['komunikat'] = "Nieprawidłowa nazwa lub hasło użytkownika.";
  28.    include('form.php');
  29.  }
  30.  else{
  31.    $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  32.    include('form.php');
  33.  }
  34. }
  35. ?>

Użytkownicy mają możliwość tylko wejścia w plik rozliczenia.php, a admin w main.php i chodzi mi o to żeby z otwartej sesji w pliku rozliczenia wyłuskać pole user, które jest loginem żeby zrobic zapytanie do generowanie raportów. W pliku rozliczenia.php mam taki kod do sesji:
  1. <?php
  2. if(!isSet($_SESSION['zalogowany'])){
  3.  $_SESSION['komunikat'] = "Nie jesteś zalogowany!";
  4.  include('form.php');
  5.  exit();
  6. }
  7. ?>

Czy jeśt taka możeliwość żeby tak to zrobić i uzyskać tą daną?
nospor
no przeciez $_SESSION['zalogowany'] zawiera wlasnie ten login. W czym wiec problem?
gigiooo
Chyba problem tkwi w tym że nie mam za bardzo pojęcia jak do zapytania wstawić tą wartość bo $_SESSION['zalogowany'] zwraca login, a do wyświetlenia potrzebuje w zapytaniu mieć login w cudzusłowie pojedynczym ' '. Próbowałem oprzeć się na poprzedniej poradzie którą od was otrzymałem hmm ale nie mogę z przebrnąć jak je wsadzić. Próbowałem wyprzedzić je w zapytaniach \' $_SESSION['zalogowany'\' ale tak też nie idzie
drPayton
Wariant pierwszy: zapytanie w apostrofach
query('SELECT * FROM tabela WHERE user_login = \' '.$_SESSION['zalogowany'].' \' ');

Wariant drugi: zapytanie w cudzysłowach
query("SELECT * FROM tabela WHERE user_login = ' ".$_SESSION['zalogowany']." ' ");

Spacje tylko dla zwiększenia widoczności. Nie umieściłem tego w bloku php bo forum zjada literki winksmiley.jpg
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.