Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378

    Funzione e passaggio parametri $_POST $_SESSION

    ho il seguente script e vorrei trasformarlo in funzione, ma non so come passare e leggere correttamente i parametri:

    contatore_annunci();

    //contatore_annunci
    function contatore_annunci($HTTP_SESSION_VARS[id_membro], $_POST[an_oggetto]) {
    // *** contatore annunci

    if ($_POST['an_oggetto'] == "vendo") {
    mysql_select_db($database_connetti, $connetti);
    $source = "select n_annunci from membri where id = " . $HTTP_SESSION_VARS["id_membro"] . "";
    $rsId = mysql_query($source, $connetti) or die(mysql_error());
    $row_rsId = mysql_fetch_assoc($rsId);
    $next = $row_rsId["n_annunci"] + 1;
    $upd = "update membri set n_annunci = " . $next . ", n_annunci_disp=n_annunci_disp-1 where id = " . $HTTP_SESSION_VARS["id_membro"] . "";
    $rsId = mysql_query($upd, $connetti) or die(mysql_error());
    $rsId = null;
    }

    if ($_POST['an_oggetto'] != "vendo") {
    mysql_select_db($database_connetti, $connetti);
    $source = "select n_annunci from membri where id = " . $HTTP_SESSION_VARS["id_membro"] . "";
    $rsId = mysql_query($source, $connetti) or die(mysql_error());
    $row_rsId = mysql_fetch_assoc($rsId);
    $next = $row_rsId["n_annunci"] + 1;
    $upd = "update membri set n_annunci = " . $next . " where id = " . $HTTP_SESSION_VARS["id_membro"] . "";
    $rsId = mysql_query($upd, $connetti) or die(mysql_error());
    $rsId = null;
    }
    }
    Basta vivere,
    basta amare ogni momento
    e non porsi alcuna domanda
    sul momento che verrà

  2. #2
    scusa, ma non fai la stessa cosa in entrambi i casi?
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378
    in che senso fai la stessa cosa in entrambi i casi?


    Basta vivere,
    basta amare ogni momento
    e non porsi alcuna domanda
    sul momento che verrà

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378
    se modifico l'intestazione della funzione in questo modo:

    function contatore_annunci() {
    // *** contatore annunci


    ricevo questo errore:

    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /Users/asdf/Sites/asdf/annunci/inserisci.php on line 80

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /Users/asdf/Sites/asdf/annunci/inserisci.php on line 82
    Basta vivere,
    basta amare ogni momento
    e non porsi alcuna domanda
    sul momento che verrà

  5. #5
    scusa ma avevo visto male le due query

    da il warning perché all'interno della funzione non ha il valore di $database_connetti e di $connetti
    dovresti dichiararli global all'interno della funzione
    codice:
    //contatore_annunci 
    function contatore_annunci($HTTP_SESSION_VARS[id_membro], $_POST[an_oggetto]) { 
    // *** contatore annunci 
       global $database_connetti, $connetti;
       if ($_POST['an_oggetto'] == "vendo") { 
       ....
    per quanto riguarda la funzione, io ti consiglio di mantenere fuori la connessione al database (in modo da poterla usare anche per altre eventuali query) e farla più o meno in questo modo

    codice:
    function contatore_annunci($id, $oggetto = '') {
          global $connetti;      
          $sql = "UPDATE membri SET n_annunci=n_annunci+1".($oggetto == 'vendo' ? ", n_annunci_disp=n_annunci_disp-1" : "")." WHERE id ='$id'";
          $result = mysql_query($sql, $connetti) or die(mysql_error());
          echo "Sono stati effettuati ".mysql_affected_rows()." aggiornamenti
    ";
          $result = mysql_query("SELECT n_annunci FROM membri WHERE id='$id'", $connetti);
          list($next) = mysql_fetch_row($result);
    
          return $next;
    }
    
    // connessione db
    // selezione db
    $next = contatore_annunci($_SESSION['id'], $_POST['an_oggetto']);
    // chiusura connessione
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378
    Grazie ora funziona correttamente!
    Basta vivere,
    basta amare ogni momento
    e non porsi alcuna domanda
    sul momento che verrà

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.