Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    19

    mysql - restituzione risultati in un array

    è possibile avere tutte le righe di una select in un' array di array, in cui l' array componente è la riga del record (come con mysql_fetch_array) ?
    se non è possibile, come costruire una array del genere partendo dalla select ? va dimensionata prima sul num_row ?
    a me serve per caricare i valori di un insieme di record su una form, consentirne la modifica per poi riportarli sulla tabella di origine. esistono soluzioni alternative ?
    grazie

  2. #2
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ciao

    il modo più semplice è creare dimamicamente una tabella utilizzando mysql_fetch_array

    per esempio
    Codice PHP:
    $sql "select * from tabella;";
    $res mysql_query($sql);

    //creo una variabile che conterrà tutta la tabella costruita con attraverso il ciclo
    $str "<table>";

    //ciclo con mysql_fetch_array il risultato della query
    while($row mysql_fetch_array($res)){
        
        
    //concateno i risultati in tabella
        
    $str .= "<tr>";
        
    $str .= "<td>{$row['campo1']}</td>";
        
    $str .= "<td>{$row['campo2']}</td>";
        
    $str .= "<td>{$row['campo3']}</td>";
        
    $str .= "</tr>";
    }

    //chiudo la tablella
    $str .= "</table>";

    //visualizzo la stringa
    echo $str
    spero di esserti stato d'aiuto

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    19
    la soluzione è ok per la creazione di una tabella che visualizza i record, ma a me serve una form con campi di input
    in particolare la mia stringa deve contenere per ogni campo che voglio presentare in modifica un qualcosa del genere:

    "<input name='$CAMPONAME' value='$CAMPOVALUE'>"

    per cui devo creare un valore in $CAMPONOME che distingua un record dall'altro, ad esempio, nel while che hai fatto tu, $CAMPONOME="Articolo$row[campo1]" se campo1 contiene una chiave univoca della riga
    e comunque non ho bisogno di array, grazie, mi sei stato di aiuto...

  4. #4
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ciao

    secondo me potresti fare una pagina in cui visualizzi i record, e per ogni record un pulsante "modifica" che punta ad un form per la modifica. In questa pagina avrai tutti i campi input necessari.
    ti faccio un breve esempio:
    Codice PHP:
    //visualizza.php
    $sql "select * from tabella;"
    $res mysql_query($sql); 

    //creo una variabile che conterrà tutta la tabella costruita con attraverso il ciclo 
    $str "<table>"

    //ciclo con mysql_fetch_array il risultato della query 
    while($row mysql_fetch_array($res)){ 
         
        
    //concateno i risultati in tabella 
        
    $str .= "<tr>"
        
    $str .= "<td>{$row['campo1']}</td>"
        
    $str .= "<td>{$row['campo2']}</td>"
        
    $str .= "<td>{$row['campo3']}</td>";
        
    //aggiungo il link,pulsante,immagine che ti porterà al form di modifica. Nell'href concateni la pagina all'id del record in querystring    
        
    $str .= "<td><a href =\"modifica.php?id={$row['id']}\">modifica</a></td>";
        
    $str .= "</tr>"


    //chiudo la tablella 
    $str .= "</table>"

    //visualizzo la stringa 
    echo $str
    Codice PHP:
    //modifica.php

    //tramite $_GET prendi l'id del record
    $id = (int) $_GET['id'];
    //estrai il record
    $sql "select * from tabella where id = $id;"
    $res mysql_query($sql);
    $row mysql_fetch_array($res); 

    //crei il form con i valori contenuti nei campi del record della tabella
    $str "<form action=\"modifica.php\" method=\"post\">";
    $str .= "Campo 1:<input type=\"text\" name=\"campo1\" value=\"{$row['campo1']}\">";
    $str .= "Campo 1:<input type=\"text\" name=\"campo2\" value=\"{$row['campo2']}\">";
    $str .= "Campo 1:<input type=\"text\" name=\"campo3\" value=\"{$row['campo3']}\">";
    $str .= "<input type=\"hidden\" name=\"id\" value=\"$id\">";
    $str .= "<input type=\"submit\" value=\"submit\" name=\"submit\">";
    $str .= "</form>";
    echo 
    $str;

    //se c'è il submit fai l'update e rimandi alla pagina di visualizzazione
    if(isset($_POST['submit'])){

        
    $sql "update tabella set ";
        
    $sql .= "campo1 = '{$_POST['campo1']}', ";
        
    $sql .= "campo2 = '{$_POST['campo2']}', ";
        
    $sql .= "campo3 = '{$_POST['campo3']}', ";
        
    $sql .= "where id = {$_POST['id']}";
        
    $res mysql_query($sql);
        
        
    header("Location: visualizza.php");

    ho capito bene il tuo problema?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.