Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Lettura casuale delle righe del DB non voluto??

    Salve,
    ho creato un guestbook che si appoggia ad un DB molto semplice.
    Ogni invio di form inserisce una riga nel DB e le righe sono ordinate automaticamente tramite un contatore che è anche il campo chiave.

    Ho utilizzato la prima volta questo sistema e tutto è andato e va ancora bene.
    Adesso invece l'ho riutilizzato adattandolo per una nuova area del sito, ma mi capita questa cosa che non capisco da dove esce, che in pratica la visualizzazione delle righe mi capita in ordine casuale. (es: la prima riga nel DB appare come ultima, la seconda come prima e la terza come seconda...)

    Cosa posso fare???????????

    Grazie mille.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Dovresti fornire più dettagli.

    Ad esempio, il contatore è sempre lo stesso della precedente tabella; il contatore come lo incrementi; come estrai i dati; hai migrato i dati precedenti nel nuovo db; che db usi?

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamo la query che usi.

    Roby

  4. #4
    Ok, cercherò di scrivere quante più informazioni credo utili per voi.

    Il DB è fatto con access ed è mdb.
    Ci sono due tabelle che sono strutturate in 4 colonne: ID (contatore incremento), Nome, commento, link, data.

    Le funzioni e le variabili hanno gli stessi nomi in pagine differenti, quindi non dovrebbero creare problemi.
    Questa è la prima funzione che imposta alcune variabili, fa la connessione al server, esegue la funzione SQL per prendere le stringhe dal DB.
    Codice PHP:
    <%

    strFile "pagina.asp"                          'il nome di questo file
    strTable = "Post1"                      '
    nome tabella
    strKey 
    "ID"                        'chiave primaria, contatore                


    Set MyConn=Server.CreateObject("ADODB.Connection")
    MyConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/database.mdb")

        MySQL="Select * from " & strTable
        Set MyRs=MyConn.Execute(MySQL)
        numerocampi=MyRs.fields.count -1
    %> 
    Questa è invece la parte di codice che scrive i dati estrapolati dal DB.

    Codice PHP:
    <%
        
    Response.Write(strsql)
        
    MyRs.movefirst
        numeroPost 
    1
        
    Do While Not MyRs.EOF
            Response
    .Write("<tr><td width=""10%"">[b]")
            
    Response.Write(numeroPost)
            
    Response.Write("[/b]</td>")
            
    Response.Write("<td>")
            
    Response.Write(MyRs(1))
            
    Response.Write(" scrive...</td></tr><tr>")
            
    Response.Write("<td width=""10%"" bgcolor=""#eeeeee""></td>")
            
    Response.Write("<td bordercolor=""#000000"" bgcolor=""d4d4d4"">")
            
    Response.Write(MyRs(2))
            
    Response.Write("</td></tr><tr>")
            
    Response.Write("<td width=""10%"" bgcolor=""#eeeeee""></td>")
            
    Response.Write("<td bordercolor=""#000000"" bgcolor=""d4d4d4"">Link<a href="" ")
            
    Response.Write(MyRs(3) & """ target=""_blank"">" MyRs(3))
            
    Response.Write("</a>[/b]</td></tr><tr> ")
            
    Response.Write("<td width=""10%"" bgcolor=""#eeeeee""></td>")
            
    Response.Write("<td bordercolor=""#000000"" bgcolor=""d4d4d4"">Data || ")
            
    Response.Write(MyRs(4))
            
    Response.Write("[/i]</td></tr>")
            
    numeroPost numeroPost 1
            MyRs
    .movenext
        loop

    Response
    .Write("</table>")
    MyRs.Close
    Set MyRs 
    nothing
    %> 
    Quest'è tutto l'asp che uso nella pagina di lettura.
    Usate sia in un'area del sito che in un'altra, ma con la differenza che la variabile strTable e strFile è ovviamente diversa.

    La parte che processa l'asp per l'inserimento in DB funziona bene perchè aprendo il DB ho notato che i dati vengono inseriti correttamente nella seconda tabella.

    Io non ho ancora trovato l'errore in tutto ciò....e voi?

    Grazie del vostro aiuto.

  5. #5
    non puoi MAI fidarti dell'ordinamento di default. Specificalo tu con la clausola ORDER BY, es:

    MySQL="Select * from " & strTable & " ORDER BY ID"


  6. #6
    Hai perfettamente ragione, grazie mille del tuo DIVINO consiglio!!!

    Non pensavo ci potessero mai essere problemi del genere... :P

    Grazie mille!!!!

    Se vuoi vediti pure il risultato quì -> www.anfex.it/badnasorock/

  7. #7

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.