Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie do bazy i pobranie danych z formularza.
Klimek
post 28.08.2017, 09:48:35
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

Ostrzeżenie: (0%)
-----


Witajcie,

Chciałbym aby dane pobierane z formularza PHP zostały wykorzystane do wyszukania odpowiednich rekordów w bazie. Fragment kodu wygląda następująco:
Kod
if (!empty($_POST))
{    $miesiac=$_POST['miesiac'];
$rok=$_POST['rok'];
        echo"<b><font size='+2'><h1>Statistic for $miesiac - $rok</h1></font></b>";    

?>
<table id="newspaper-a" border="1" width="100%">
    <tr>
        <td bgcolor=\"ffff00\">The amount of all requests</td>
        <?php

                    $zapytanie = "SELECT sum(ilosc) as ile FROM `zamowienie` WHERE `data_zlecenia`  >= data_zakonczenia_badania ='$rok' AND data_zakonczenia_badania='$miesiac' && `status`='4' && `termin_zakonczenia`>`data_zakonczenia_badania`";

        
    
                    $sql_query = mysql_query($zapytanie);
        $dane = mysql_fetch_array($sql_query);
        
            if($dane[0]==NULL)
        {
        echo"<td bgcolor=\'ffff00\'><font size='+1'><b>0</b></font></td>";
        $liczba_all=0;
        }
        else
        {
        echo"<td bgcolor=\'ffff00\'><font size='+1'><b>$dane[0]</b></font></td>";
        $liczba_all=$dane[0];

        }
    

}

        ?>


Go to the top of the page
+Quote Post
viking
post 28.08.2017, 09:55:23
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Najpierw sobie odpowiedź na pytanie co to za bzdury `data_zlecenia` >= data_zakonczenia_badania ='$rok'
https://dev.mysql.com/doc/refman/5.7/en/dat...-functions.html Pewnie ci chodzi o year()


--------------------
Go to the top of the page
+Quote Post
Klimek
post 28.08.2017, 10:07:47
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

Ostrzeżenie: (0%)
-----


Kod
$zapytanie = "select sum(ilosc) as ile from `zamowienie` where `data_zlecenia` >= year(data_zakonczenia_badania)='$rok' AND  month(data_zakonczenia_badania)='$miesiac' && `status`='4' && `termin_zakonczenia`>`data_zakonczenia_badania`  ";


Próbowalem to tak sklepać ale również 0 efektu...
Go to the top of the page
+Quote Post
Pyton_000
post 28.08.2017, 10:11:28
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


nie && tylko AND.
Go to the top of the page
+Quote Post
viking
post 28.08.2017, 10:18:12
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Na początek zastanów się co chcesz wybrać a nie na ślepo wbijasz jakieś losowe warunki. Nam też możesz opisać bo nie czytamy w myślach.


--------------------
Go to the top of the page
+Quote Post
Klimek
post 28.08.2017, 10:26:18
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

Ostrzeżenie: (0%)
-----


Mam formularz, w którym wybieramy miesiąc

Kod
echo"<form action='test.php' method='post'>";
echo"<p>";
echo"<b>Month: </b>";
echo"<select name='miesiac' size='1'>";
echo"<option></option>";
echo"<option value='1'>January</option>";
echo"<option value='2'>February</option>";
echo"<option value='3'>March</option>";
echo"<option value='4'>April</option>";
echo"<option value='5'>May</option>";
echo"<option value='6'>June</option>";
echo"<option value='7'>July</option>";
echo"<option value='8'>August</option>";
echo"<option value='9'>September</option>";
echo"<option value='10'>October</option>";
echo"<option value='11'>November</option>";
echo"<option value='12'>December</option>";
echo"</select>";
echo"<b>Year: </b>";
echo"<select name='rok' size='1'>";
echo"<option></option>";
for($i=2014;$i<=date('Y');$i++)



Chciałbym aby po wybraniu odpowiedniego miesiąca i roku wyszukiwano w bazie danych rekordy. Ogólnie zależy mi na sformułowaniu stwierdzenia, który pobierze z formularza dane w tym wypadku miesiąc i rok.
Te dane przekazywane będą do bazy danych i ona sumuje badania, które zostały wykonane w terminie. Muszę zrobić to samo dla badań które nie są wykonane w terminie.
Go to the top of the page
+Quote Post
viking
post 28.08.2017, 10:34:37
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A te daty w bazie to pola date? Skoro chcesz wyszukać rok równy temu podanemu w formularzu to bierzesz year(pole z bazy) = ?, gdzie ? to rok z formularza. O prepared statements już ci mówiłem wcześniej. A nie x >= y = z.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 06:53