N1ghtW0lf Δημοσ. 30 Απριλίου 2009 Μέλος Δημοσ. 30 Απριλίου 2009 Αυτός ψάχνει ένα αντικείμενο με όνομα Flights και το property price. Είμαι περίεργος τις άλλες τιμές πως τις ανάθεσες?Γράψε λίγο το query που σου δίνει το Flights.Price. Και γενικώς γράφε τα queries που σχετίζονται με τα λάθη. Σου επισυναπτω ολοκληρο το κωδικα... > <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include file="Connections/Project.asp" --> <% Request.Form("search") Dim conn Dim Recordset1 Dim Recordset1_cmd Dim Recordset1_numRows Set Recordset1_cmd = Server.CreateObject ("ADODB.Command") Recordset1_cmd.ActiveConnection = MM_Project_STRING Recordset1_cmd.CommandText = "SELECT Flights.destination, Flights.departure, Schedule.FlightDate, departtime, price FROM Flights INNER JOIN Schedule ON Flights.flightid=Schedule.flightID WHERE (((Flights.destination)='" & Request.Form("flyto") & "') AND ((Flights.departure)='" & Request.Form("from")& "' )) AND Schedule.FlightDate BETWEEN #" & Request.Form("datebox") &"# AND #" & Request.Form("datebox2") & "#;" Recordset1_cmd.Prepared = true Set Recordset1 = Recordset1_cmd.Execute Recordset1_numRows = 0 %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Flights</title> </head> <body> <p style="color:#636"> </p> <p style="color:#636"> </p> <table width="942" height="99" border="2"> <tr> <th scope="col">Check Flight</th> <th scope="col">Departure</th> <th scope="col">Destination</th> <th scope="col">Date</th> <th scope="col">Price</th> </tr> <tr> <th scope="col"><form id="form1" name="form1" method="post" action=""> <label> <input type="radio" name="radio" id="flightchoose" value="flightchoose" /> </label> </form></th> <th scope="col"><p> <% Response.write Request.Form("from") %> </p></th> <th scope="col"><% Response.write Request.Form("flyto") %> </th> <th scope="col"><% Response.write Request.Form("datebox") %> </th> <th scope="col"> <% Dim fromField,flytoField fromField=Request.form("from") flytoField=Request.form("flyto") if (isNull(fromField)=false and isempty(fromField)=false AND isNull(flytoField)=false and isempty(flytoField)=false) then response.Write Flights.price end if %> </th> </tr> </table> <p style="color:#636"> </p> </body> </html> <% Recordset1.Close() Set Recordset1 = Nothing Set Recordset1_cmd = Nothing %> Οταν λες τις αλλες τιμες πως τις ανεθεσα...τι εννοεις ακριβως? To price, υπαρχει μεσα στο ηδη υπαρχον query Recordset1.cmd που φτιαξαμε τις τελευταιες δυο μερες ---------- Post added at 21:44 ---------- Καταφερα να να εμφανιζει επιτυχως αυτο που ζηταω...μονο που δεν εμφανιζει σωστα...εμφανιζει την πρωτη καταχωρηση που υπαρχει στον πινακα και οχι την ζητουμενη... πχ. Ο πινακας flights... flightid destination departure departtime arrivingtime price 1 ATH THE 8:00:00 9:00:00 95.00€ 2 ATH THE 15:00:00 16:00:00 80.00€ 3 ATH THE 20:00:00 21:00:00 90.00€ 4 ATH AXD 11:00:00 12:20:00 95.00€ 5 ATH AXD 18:00:00 19:30:00 90.00€ 6 ATH CFU 10:20:00 11:20:00 75.00€ 7 ATH CFU 14:00:00 15:10:00 85.00€ Εχει αυτες τις τιμες...και κανουμε αναζητηση για πτηση ATH - CFU, η τιμη και η ωρα που θα βγει θα ειναι 8:00:00 και 95€ απο το πρωτο πεδιο.Καπου κανω κατι λαθος με το if...καπου πρεπει να κανω καποιο verification το οποιο δεν κανω σωστα μαλλον.
kostas_crete Δημοσ. 2 Μαΐου 2009 Δημοσ. 2 Μαΐου 2009 Γράψε τον καινούργιο κώδικα για να βγάλουμε άκρη. Απλά FYI: όταν κάνεις ένα select query, π.χ. >Select flightid,destination,departure,departtime from flights σε ένα recordset π.χ. rs, για να τυπώσεις π.χ. το departure γράφεις >response.write rs("departure") ή response.write rs(2) (ξεκινάς το μέτρημα από το [b]0[/b]). Άντε καλό βράδυ.
N1ghtW0lf Δημοσ. 2 Μαΐου 2009 Μέλος Δημοσ. 2 Μαΐου 2009 Γράψε τον καινούργιο κώδικα για να βγάλουμε άκρη.Απλά FYI: όταν κάνεις ένα select query, π.χ. >Select flightid,destination,departure,departtime from flights σε ένα recordset π.χ. rs, για να τυπώσεις π.χ. το departure γράφεις >response.write rs("departure") ή response.write rs(2) (ξεκινάς το μέτρημα από το [b]0[/b]). Άντε καλό βράδυ. Κωστα, καλησπερα... Εγραψα αυτο εδω συμφωνα με την προηγουμενη σου βοηθεια και απλα προσθεσα στο τελος το "response.Write (Recordset2.Fields.Item("price").Value)" ...και μου εμφανιζει το πρωτο πεδιο απο τον πινακα που αντιστοιχει στο πεδιο price, οπως ειπα στο παραδειγμα πιο πανω (εφτιαξα λιγο τον πινακα γιατι δεν ηταν ευδιαβαστος και δεν το ειχα καταλαβει, και ευχομαι να καταλαβενεις τωρα ποιο ειναι το προβλημα)... Λοιπον...αυτο ειναι που εχω γραψει... <% Dim fromField1,flytoField1 fromField1=Request.form("from") flytoField1=Request.form("flyto") if (isNull(fromField1)=false and isempty(fromField1)=false AND isNull(flytoField1)=false and isempty(flytoField1)=false) then response.Write (Recordset2.Fields.Item("price").Value) response.Write ("€") end if %> Αν ας πουμε διαλεξω...ΑΤΗ-RHO και η τιμη της πτησης κανει 80...και η πρωτη εμφανιση τιμης στον πινακα ειναι 95, θα μου εμφανισει την τιμη 95€ και οχι την ενδειξη τη σωστη... Μηπως καποιο λαθος παιζει με το if? Μηπως καπου δεν κανει σωστο verification και το condition δεν ειναι σωστο? Θα προσπαθησω τη βοηθεια που εδωσες τωρα να δω τι θα βγαλει με αυτο... EDIT: Με το rs μου βγαζει το ακολουθο error... Microsoft VBScript runtime error '800a000d' Type mismatch: 'rs' /Project/flightsearch.asp, line 84
kostas_crete Δημοσ. 2 Μαΐου 2009 Δημοσ. 2 Μαΐου 2009 Όπως έχεις γράψει το query σου λογικό είναι αν βρεθούν παραπάνω από μια πτήσεις στα αποτελέσματα να σου δείξει την πρώτη. Αν θές να σου τυπώσει την επόμενη κάνεις πρώτα >recordset1.movenext Από ότι κατάλαβα εφόσων βγαίνουν παραπάνω του ενός αποτελέσματα ενώ εσυ περιμένεις μόνο ένα ίσως να μην έχεις καταχωρήσει σωστά τις τιμές στους πίνακες σου. Πάντως δε μου φαίνεται παράλογο να επιστρέφονται παραπάνω του ενός αποτελέσματα. Αυτό είναι και το νόημα του search. Όταν έχεις πολλά αποτελέσματα, κάνε το εξής για να τα τυπώσεις όλα: >do while recordset1.eof<>true fromField1=Request.form("from") flytoField1=Request.form("flyto") if (isNull(fromField1)=false and isempty(fromField1)=false AND isNull(flytoField1)=false and isempty(flytoField1)=false) then response.Write (Recordset2.Fields.Item("price").Value) response.Write ("€") recordset1.movenext end if loop και τα υπόλοιπα κατά τα γνωστά. To rs που σου έγραψα είναι ένα παράδειγμα ονόματος μεαβλητής τύπου recordset και είναι μόνο για demonstration...
N1ghtW0lf Δημοσ. 3 Μαΐου 2009 Μέλος Δημοσ. 3 Μαΐου 2009 Όπως έχεις γράψει το query σου λογικό είναι αν βρεθούν παραπάνω από μια πτήσεις στα αποτελέσματα να σου δείξει την πρώτη. Αν θές να σου τυπώσει την επόμενη κάνεις πρώτα >recordset1.movenext Από ότι κατάλαβα εφόσων βγαίνουν παραπάνω του ενός αποτελέσματα ενώ εσυ περιμένεις μόνο ένα ίσως να μην έχεις καταχωρήσει σωστά τις τιμές στους πίνακες σου. Πάντως δε μου φαίνεται παράλογο να επιστρέφονται παραπάνω του ενός αποτελέσματα. Αυτό είναι και το νόημα του search. Όταν έχεις πολλά αποτελέσματα, κάνε το εξής για να τα τυπώσεις όλα: >do while recordset1.eof<>true fromField1=Request.form("from") flytoField1=Request.form("flyto") if (isNull(fromField1)=false and isempty(fromField1)=false AND isNull(flytoField1)=false and isempty(flytoField1)=false) then response.Write (Recordset2.Fields.Item("price").Value) response.Write ("€") recordset1.movenext end if loop και τα υπόλοιπα κατά τα γνωστά. To rs που σου έγραψα είναι ένα παράδειγμα ονόματος μεαβλητής τύπου recordset και είναι μόνο για demonstration... Καλημερα, ευχαριστω και παλι για τη βοηθεια αλλα τζιφος....ο κωδικας ειναι μεν σωστος, αλλα δεν εμφανιζει κανενα αποτελεσμα... Δεν με καταλαβες μαλλον, θελω να εμφανιζω και περισσοτερα αποτελεσματα...αλλα θα τα εμφανισω με repeat region για ολα τα αποτελεσματα που θελω... Απο... Departure - Airport - Date - DepartingTime - ArrivingTime - Price μολις καταφερω και αρχιζει να εμφανιζει σωστα τα departingTime, Arrivingtime και Price, θα του βαλω ενα repeat region και θα εμφανιζει ολα τα αποτελεσματα (ευχομαι). Προς το παρων δεν καταφερνω με τιποτα να το κανω να εμφανιζει αυτα που ανεφερα...Καπως πρεπει νομιζω να αλλαχτει το if statement, ετσι ωστε να κανει σωστη την αντιστοιχιση μεταξυ των "from" και "flyto" με το price...
Elric_The_Melnibonian Δημοσ. 5 Μαΐου 2009 Δημοσ. 5 Μαΐου 2009 > do while recordset1.eof<>true fromField1=Request.form("from") flytoField1=Request.form("flyto") if (isNull(fromField1)=false and isempty(fromField1)=false AND isNull(flytoField1)=false and isempty(flytoField1)=false) then response.Write (Recordset2.Fields.Item("price").Value) response.Write ("€") recordset1.movenext end if παίζει να είναι πρωί ακόμα και είμαι μόλις στο 2ο καφέ αλλά το Recordset2 που είναι ? μόνο recordset1 βλέπω να ανοίγεις και να έχει field [price].
N1ghtW0lf Δημοσ. 5 Μαΐου 2009 Μέλος Δημοσ. 5 Μαΐου 2009 Η λυση βρεθηκε με εντελως διαφορετικο τροπο και να ειναι καλα ο καθηγητης μου στη σχολη που ειναι τσακαλι... Παραθετω τη λυση...με ολοκληρο το κωδικα ... Με Bold ειναι οι αλλαγες στον κωδικα απο τον καθηγητη μου, και με κοκκινο ειναι ενα comment που μου εβαλε το οποιο και μου δημιουργει προβλημα.. γιατι στην επομενη σελιδα οταν κανω response.write request.form("outtim") οπως λεει το αποτελεσμα ειναι αυτο εδω... χωρις τα υπολοιπα τα οποια νομιζω πως θα επρεπε να κρατιουνται... Times, Destinations, Departures, Prices κτλ κτλ... >[b]departtime=#[/b]αποτελεσμα απο την [b]Request.Form("datebox")#[/b] > <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include file="Connections/Project.asp" --> <% Dim Recordset2 Dim Recordset2_cmd Dim Recordset2_numRows [b]Dim Query1 Query1 = "SELECT Flights.destination, Flights.departure, Schedule.FlightDate, departtime, arrivingtime, priceflight, Flights.flightid FROM Flights INNER JOIN Schedule ON Flights.flightid=Schedule.flightID WHERE (((Flights.destination)='" & Request.Form("flyto") & "') AND ((Flights.departure)='" & Request.Form("from")& "' )) AND Schedule.FlightDate = #" & Request.Form("datebox") & "#;" [/b] Set Recordset2_cmd = Server.CreateObject ("ADODB.Command") Recordset2_cmd.ActiveConnection = MM_Project_STRING Recordset2_cmd.CommandText = Query1 Recordset2_cmd.Prepared = true Set Recordset2 = Recordset2_cmd.Execute [b]Recordset2_numRows = Recordset2.RecordCount[/b] %> <% Dim Recordset3 Dim Recordset3_cmd Dim Recordset3_numRows [b]Dim Query2 if Request.Form("checksinglereturn")<>"single" then Query2 = "SELECT Flights.destination, Flights.departure, Schedule.FlightDate, departtime, arrivingtime, priceflight, Flights.flightid FROM Flights INNER JOIN Schedule ON Flights.flightid=Schedule.flightID WHERE (((Flights.destination)='" & Request.Form("from") & "') AND ((Flights.departure)='" & Request.Form("flyto")& "' )) AND Schedule.FlightDate = #" & Request.Form("datebox2") & "#;" [/b] Set Recordset3_cmd = Server.CreateObject ("ADODB.Command") Recordset3_cmd.ActiveConnection = MM_Project_STRING Recordset3_cmd.CommandText = Query2 Recordset3_cmd.Prepared = true Set Recordset3 = Recordset3_cmd.Execute [b]Recordset3_numRows = Recordset3.RecordCount[/b] [b]end if[/b] %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Flights</title> </head> <body> <p style="color:#636"> </p> <div align="center"> <p><div align="left"><strong>Choose Your Flight </strong></div></p> <form id="form1" name="form1" method="post" action="chosenflights.asp"> <table width="942" height="99" border="2"> <tr> <th scope="col">Check Flight</th> <th scope="col">Departure</th> <th scope="col">Destination</th> <th scope="col">Date</th> <th scope="col">Departing Time</th> <th scope="col">Arriving Time</th> <th scope="col">Price</th> </tr> [b] <% do while NOT Recordset2.EOF %> [/b] <tr> <th scope="col"> <label> [b] <input type="radio" name="outtim" id="outtim" value="<% Response.write "departtime=#" & Recordset2("departtime") & "#" %>" />[/b] [color=DarkRed]<!-- sent to next form as request.form("outtim") -->[/color] </label> </th> <th scope="col"><p> <% Response.write Recordset2("departure") %> </p></th> <th scope="col"><% response.Write Recordset2("destination") %> </th> <th scope="col"><% Response.write Recordset2("FlightDate") %> </th> <th scope="col"> <% response.Write Recordset2("departtime") %> </th> <th scope="col"><% response.Write Recordset2("arrivingtime") %></th> <th scope="col"><% response.Write Recordset2("priceflight") %></th> </tr> [b] <% Recordset2.movenext loop %> [/b] </table> <label> [b] <%if Request.Form("checksinglereturn")<>"return" then %> [/b] <input type="submit" name="SingleSubmit" id="SingleSubmit" value="Submit" /> [b]<script language="javascript"> function set_outbutton(n) { if (n==1) document.getElementById("SingleSubmit").style.visibility="visible" else document.getElementById("SingleSubmit").style.visibility="hidden" } </script> <% end if %> </label> [/b] </form> <p> </p> [b]<%if Request.Form("checksinglereturn")<>"single" then %> [/b] <p><div align="left"> <strong> Choose Your Return Flight </strong> </div></p> <form id="form2" name="form2" method="post" action="chosenflights.asp"> <table width="942" height="99" border="2"> <tr> <th scope="col">Check Flight</th> <th scope="col">Departure</th> <th scope="col">Destination</th> <th scope="col">Date</th> <th scope="col"> Departing Time</th> <th scope="col">Arriving Time</th> <th scope="col">Price</th> </tr> [b] <% do while NOT Recordset3.EOF %> [/b] <tr> <th scope="col"> <label> <input type="radio" name="rettim" id="rettim" value="<% Response.write "departtime=#" & Recordset3("departtime") & "#" %>" /> </label> </th> <th scope="col"><p> <% Response.write Recordset3("departure") %> </p></th> <th scope="col"><% response.Write Recordset3("destination") %> </th> <th scope="col"><% Response.write Recordset3("FlightDate") %> </th> <th scope="col"> <% response.Write Recordset3("departtime") %> </th> <th scope="col"><% response.Write Recordset3("arrivingtime") %></th> <th scope="col"><% response.Write Recordset3("priceflight") %></th> </tr> [b] <% Recordset3.movenext loop %> [/b] </table> <label> <input type="submit" name="ReturnSubmit" id="ReturnSubmit" value="Submit" /> </label> </form> </div> <% Recordset3.Close() Set Recordset3 = Nothing end if %> <p style="color:#636"> </p> <script language="javascript">FlashSolver()</script> </body> </html> <% Recordset2.Close() Set Recordset2 = Nothing %>
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.