Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    aiuto query UPDATE array

    salve a tutti,
    premetto che ho poca dimestichezza con gli array (praticamente non li ho mai usati).

    Ho questo form che manda alla pagina process.php :

    Codice PHP:
    <form action="process.php" name="scheda" method="post">

    <
    table cellpadding="0" cellspacing="0">
                    <
    tbody><tr><td><input name="nome[142]" id="nome[142]" value="admin" type="text"></td><td>.dominio.it</td><td><input name="ip[142]" id="ip[142]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[145]" id="nome[145]" value="controllo" type="text"></td><td>.dominio.it</td><td><input name="ip[145]" id="ip[145]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[143]" id="nome[143]" value="ftp" type="text"></td><td>.dominio.it</td><td><input name="ip[143]" id="ip[143]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[148]" id="nome[148]" value="mail" type="text"></td><td>.dominio.it</td><td><input name="ip[148]" id="ip[148]" value="85.94.203.10" type="text"></td></tr>

                    <
    tr><td><input name="nome[147]" id="nome[147]" value="pop" type="text"></td><td>.dominio.it</td><td><input name="ip[147]" id="ip[147]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[144]" id="nome[144]" value="sql" type="text"></td><td>.dominio.it</td><td><input name="ip[144]" id="ip[144]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[146]" id="nome[146]" value="webmail" type="text"></td><td>.dominio.it</td><td><input name="ip[146]" id="ip[146]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="nome[141]" id="nome[141]" value="www" type="text"></td><td>.dominio.it</td><td><input name="ip[141]" id="ip[141]" value="85.94.203.10" type="text"></td></tr>
                    <
    tr><td><input name="aggiungi" id="aggiungi" type="text"></td><td style="padding-right: 50px;">.dominio.it</td><td><input name="ip" id="ip" type="text"></td></tr>
            </
    tbody></table>
    <
    form
    dovrei nella pagina process.php fare una query che mi aggiorna ogni campo e mi cancella i campi senza il valore nel nome.
    Qualcuno può aiutarmi??

    Ho iniziato a far qualcosa.. ma ci metto una vita.. non ci capisco molto

    :master:

    Codice PHP:
    foreach ($nome as $id => $valore
            {
            if(
    $valore != ""){ mysql_query("UPDATE $table SET nome = '$valore', ip='$valore-ip', tipo='A' WHERE id = '$id'"); }
            if(
    $valore == ""){ mysql_query("DELETE FROM $table WHERE id = '$id'"); }                                      
            } 
        if(
    $_POST[aggiungi]){ 
            
    mysql_query("INSERT INTO $table (dominio, tipo, nome, ip) VALUES ('$_SESSION[dominio]', 'A', '$_POST[nome]', '$_POST[ip]')"); 
        } 

  2. #2
    foreach ($_POST['nome'] as $id => $valore)

    poi devi scorrere $_POST['ip']

    in pratica avrai un array $_POST multidimensionale.

    Per vedere bene cosa contiene, ad inizio pagina process.php, stampati l'array $_POST


    Codice PHP:
    <?php

    echo "<pre>";
    print_r($_POST);
    exit;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Fatto!
    però ho notato che mi mancano tutti i valori degli IP
    Come mai?

    Codice PHP:
    Array
    (
        [
    action] => update
        
    [nome] => Array
            (
                [
    142] => admin
                
    [145] => controllo
                
    [143] => ftp
                
    [148] => mail
                
    [147] => pop
                
    [144] => sql
                
    [146] => webmail
                
    [141] => www
            
    )

        [
    ip] => 
        [
    aggiungi] => 


  4. #4
    controlla il form. Il tag di chiusura </form> e' errato e non vedo il submit

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    No no, cè tutto, ti posto il codice php


    Codice PHP:
    <form action="process.php" name="scheda" method="post">
    <fieldset>        
    <input type="hidden" name="action" value="update" id="action" />
            <table cellspacing="0" cellpadding="0">
            <?php
            $s
    ="SELECT * FROM $table WHERE dominio='$_SESSION[dominio]'";
            
    $r=mysql_query($s);
            while(
    $d=mysql_fetch_array($r)){
            
    ?>
            <tr><td><input type="text" name="nome[<?php echo $d[id]; ?>]" id="nome[<?php echo $d[id]; ?>]" value="<?php echo $d[nome?>" /></td><td>.<?php echo $_SESSION['nome_dominio'?></td><td><input type="text"  name="ip[<?php echo $d[id]; ?>]" id="ip[<?php echo $d[id]; ?>]" value="<?php echo $d[ip?>"/></td></tr>
            <?php ?>
            <tr><td><input type="text" name="aggiungi" id="aggiungi" /></td><td style="padding-right:50px">.<?php echo $_SESSION['nome_dominio'?></td><td><input type="text" name="ip" id="ip" /></td></tr>
            </table>
            <div class="tasti">
                <div class="salva">[url="javascript:window.document.scheda.submit();"]Salva[/url]</div> 
                <div class="base">[url="../proprieta.phtml"]Propriet&agrave;[/url]</div>
            </div>
            </fieldset>
            </form>

  6. #6
    dovresti usare gli apici per i nomi degli indici dell'array $d

    controlla anche i dati resi dalla query. Prova ad usare una numerazione automatica del name ip..

    name="ip[]"

    tanto per provare cosa ti viene passato in POST.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    ciao piero.mac,
    scusa il ritardo della risposta, ma son tornato oggi da un breve periodo di ferie )

    Ti posto l'array:

    Codice PHP:
    Array
    (
        [
    action] => update
        
    [nome] => Array
            (
                [
    1867] => ad
                
    [1870] => controllo
                
    [1868] => ftp
                
    [1873] => mail
                
    [1872] => pop
                
    [1874] => smtp
                
    [1869] => sql
                
    [1871] => webmail
                
    [1866] => www
            
    )

        [
    ip] => Array
            (
                [
    1867] => 212.103.211.195
                
    [1870] => 212.103.211.195
                
    [1868] => 212.103.211.195
                
    [1873] => 212.103.211.195
                
    [1872] => 212.103.211.195
                
    [1874] => 212.103.211.195
                
    [1869] => 212.103.211.195
                
    [1871] => 212.103.211.195
                
    [1866] => 212.103.211.195
            
    )

        [
    nome2] => 
        [
    ip2] => 
        [
    submit] => Salva modifiche

    Questa invece è la query da modificare:

    Codice PHP:

    foreach ($_POST['nome'] as $id => $valore)
            {
            if(
    $valore != ""){ mysql_query("UPDATE $table SET nome = '$valore', ip='$ip', tipo='A' WHERE id = '$id'"); }
            if(
    $valore == ""){ mysql_query("DELETE FROM $table WHERE id = '$id'"); }                                      
            }
        if(
    $_POST[aggiungi]){
            
    mysql_query("INSERT INTO $table (dominio, tipo, nome, ip) VALUES ('$_SESSION[dominio]', 'A', '$_POST[nome2]', '$_POST[ip2]')");
        } 
    riesci a darmi una mano a sistemarla?
    Ne sarei grato!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    up

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