Έχω 'ενα directory system για τηνκαλύτερη οργάνωση links.
Στην Database στον πίνακα υπάρχει μιά στήλη CAT_ID με το ID της κάθε κατηγορίας που εμφανιζεται με αριθμό.
ΠΧ. Η κατηγορία "Μηχανές αναζήτησης" είναι το 5 κλπ.
Αυτό που θέλω να κάνω είναι να παρουσιάζω τον αριθμό των εγγραφών κάθε κατηγορίας.
Χρησιμοποίηση το παρακάτω script αλλα μου εμφανίζει την καταμέτρηση μιας κατηγορίας.
Το script είναι το ακόλουθο.
<%
Dim strCode,rsCountCode,Mycodeconn
set Mycodeconn =server.createobject("ADODB.connection")
Mycodeconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/dir.mdb")
SET rsCountCode = Server.CreateObject("ADODB.Recordset")
strCode = "SELECT * FROM LINKS WHERE CAT_ID = 5 "
Set rsCountCode = Mycodeconn.Execute(strCode) 'execute sql call
rsCountCode.MoveFirst
vartotal = 0
Do While Not rsCountCode.EOF
vartotal = vartotal + 1
rsCountCode.MoveNext
Loop
%>
Μηχανές Αναζήτησης: (<%=vartotal%>)
Εκπαίδευση:
Free stuff :
<%
rsCountCode.Close
set rsCountCode = nothing
%>
Πως μπορώ να μετατρέψω το script ώστε να μπορώ να παρουσιάσω δίπλα απο τις αλλες υποκατηγορίες τον αριθμό των εγγραφών;
Το ID της κατηγορίας "Εκπαίδευση" είναι 3 και της κατηγορίας "Free stuff " είναι 1.
Τι μετατροπή πρεπει να κάνω?
Πιο σωστή (και γρήγορη) μέθοδος για να μετρήσεις records είναι αυτή:
Από την τρίτη γραμμή του κώδικά σου και μετά (πες ότι έχεις ορίσει dim intPlh8osEggrafwn:
1. Set rsCountCode = Server.CreateObject("ADODB.Recordset")
2. rsCountCode.CursorType = 1 'αλλιώς θα βγάζει αποτέλεσμα -1
3. strCode = "SELECT * FROM LINKS WHERE CAT_ID = 5;"
4. rsCountCode.Open strCode, Mycodeconn
5. intPlh8osEggrafwn = rsCountCode.RecordCount
6. rsCountCode.Close
Τώρα για να μετατρέψεις το ερώτημα
Άλλαξε τη γραμμή 3 σε:
strCode = "SELECT * FROM LINKS WHERE CAT_ID = 1;"
και επανάλαβε τις γραμμές μέχρι και το 6.
μετά Άλλαξε πάλι τη γραμμή 3 σε:
strCode = "SELECT * FROM LINKS WHERE CAT_ID = 3;"
και επανάλαβε τις γραμμές μέχρι και το 6.
Στο τέλος:
set rsCountCode = nothing
και αν δε χρειάζεσαι πια τη σύνδεση με τη βάση, κλείσε την αμέσως:
Mycodeconn.Close
Set Mycodeconn = Nothing
Αφού πάρεις όλα τα αποτελέσματα σε μεταβλητές, τότε άρχισε να τα βγάζεις σε html.
tip: Gr και διεθνή domain names με Δωρεάν φιλοξενία 1000Mb php - perl για πάντα * F5 για νέο tip