Export file php

di il
3 risposte

Export file php

Buongiorno a tutti
ho ancora bisogno del vs aiuto.
access 2013 64 bit
maschera con "pulsantino" che alla pressione esegue il codice seguente :

Private Sub Comando0_Click()
Dim db As Database
Dim rs As Recordset
Dim i
Dim stringa As String
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from elabora")
If rs.RecordCount > 0 Then
rs.MoveFirst
For i = 1 To rs.RecordCount
If i = 1 Then
Close #1
Open "C:\GeaVet2017\web\elabora.php" For Output As #1
Print #1, "<?php"
Print #1, "$username = $_POST['username'];"
Print #1, "$password = $_POST['password'];"
Print #1, "if ($username == ; admin; && $password == ; admin; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=FGLMRA82P49G478D.pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"

Print #1, "elseif ($username == ; " & user & "; && $password == ; " & pwd & "; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=" & user & "_" & pwd & ".pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
ElseIf i > 1 Then
Close #1
Open "C:\GeaVet2017\web\elabora.php" For Append As #1
Print #1, "elseif ($username == ; " & user & "; && $password == ; " & pwd & "; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=" & user & "_" & pwd & ".pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
End If
Close #1
rs.MoveNext
Next i
End If
Close #1

tutto om se non fosse che la tabella "elabora" contiene 3 record ma con la funzione print "scrive" solo il primo record sul file elabora.php....
qualcuno di voi riesce ad illuminarmi?

grazie
buona giornata
Andrea

3 Risposte

  • Re: Export file php

    andrea.corciano ha scritto:


    qualcuno di voi riesce ad illuminarmi?
    Facci partire con almeno un lumicino acceso, usando i tag CODE, è dificilissimo leggere il codice quando il carattere e la formattazione sono quelli del testo normale. Occhio anche ai rientri.

    Risposta in senso tecnico: credo che tutto sia collegato a come ti muovi all'interno del recordset.
    Il modo giusto per "passare" tutti i record è questo
    
    If Not rs.EOF Then             'così verifichi che il recorset non sia vuoto
         rs.MoveFirst             'probabilmente non necessario
         Do While Not rs.EOF
              'tutto quello che devi fare
              rs.MoveNext
         Loop
    End If
    
    Per far funzionare il tuo codice dovresti anteporre un MoveLast a questa riga
    If rs.RecordCount > 0 Then
    perché solo in quel momento la proprietà RecordCount contiene davvero il totale dei record, non solo quelli a cui fino a quel momento ha avuto accesso, ricordandosi poi di ritornare all'inizio con un MoveFirst. Operazione "pesante" per grossi recordset e poi visto che esiste un sistema per non fare giri inutili perché complicarsi la vita?
    NB: se non modifichi il contenuto del recordset (come mi sembra di vedere ad un'occhiata molto superficiale) aprilo in modalità sola lettura: ne guadagni in velocità e sicurezza.

    Non mi è chiaro l'uso di Close: vedo delle chiusure del file prima della sua apertura.
  • Re: Export file php

    Scusate .. riposto
    
    Private Sub Comando0_Click()
     Dim db As Database
        Dim rs As Recordset
        Dim i
        Dim stringa As String
        Set db = CurrentDb
        Set rs = db.OpenRecordset("select * from elabora")
        'rs.MoveLast
        If rs.RecordCount > 0 Then
         rs.MoveFirst
        For i = 1 To rs.RecordCount
               If i = 1 Then
                   Close #1
                   Open "C:\GeaVet2017\web\elabora.php" For Output As #1
    Print #1, "<?php"
    Print #1, "$username = $_POST['username'];"
    Print #1, "$password = $_POST['password'];"
    Print #1, "if ($username == ; admin; && $password == ; admin; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=FGLMRA82P49G478D.pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
    
    Print #1, "elseif ($username == ; " & user & "; && $password == ; " & pwd & "; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=" & user & "_" & pwd & ".pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
                 ElseIf i > 1 Then
                 Close #1
                   Open "C:\GeaVet2017\web\elabora.php" For Append As #1
    Print #1, "elseif ($username == ; " & user & "; && $password == ; " & pwd & "; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=" & user & "_" & pwd & ".pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
             End If
           
                Close #1
               rs.MoveNext
           
               
         Next i
    
    
    End If
    
    Open "C:\GeaVet2017\web\elabora.php" For Append As #1
    Print #1, "if ($username == ; admin; && $password == ; admin; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=FGLMRA82P49G478D.pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
    '?>"
     Close #1
    
    End Sub
    

    funziona alla grande ma scrive solo il primo record dopo la "elseif"....ho già usato il codice sopra per le fatture elettroniche e mai avuto problemi....
    boh!
    sicuro che sbaglio!!!
  • Re: Export file php

    Verifica la compilazione del codice presentato, in quanto vi è un evidente errore di sintassi nella riga:
    
    Print #1, "elseif ($username == ; " & user & "; && $password == ; " & pwd & "; )" & "{echo " & "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=" & user & "_" & pwd & ".pdf>Clicca qui per continuare.</a></center>" & "; exit ();}"
    
    Inoltre ha poco senso aprire e chiudere il file per ogni record, ti consiglio di rivedere la logica:
    https://www.thespreadsheetguru.com/blog/vba-guide-text-files
Devi accedere o registrarti per scrivere nel forum
3 risposte