Visualizzazione risultati 1 fino 9 di 9

Discussione: somma

  1. #1
    Guest

    Exclamation somma

    Salve a Tutti.
    Volevo una informazione.
    io ho una tabella sul mio database nella quale una colonna (chiamata prezzo_tot) contiene dei valori.
    ho la necessità di sommare tutti qui valori che sono però corrispondenti al valore $_SESSION['email'] e la cifra salvarla in una variabile php chiamata $prezzo_totale1.


    in poche parole se io ho 3 record
    due con email :abc@alice.it
    ed uno con email: def@alice.it
    e la variabile $_SESSION['email'] è uguale ad abc@alice.it
    il sistema deve fare la somma delle caselle della colonna prezzo_tot solo dei due record corrispondenti a tale email
    come posso fare?
    grazie in anticipo

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Codice PHP:
    // Remember to add security checks (addslashes, etc.)
    $mail = $_SESSION['email'];
    $query = "SELECT SUM(prezzo_tot) FROM your_table WHERE email = '$email';";
    $result = $mysqli->query($query);

    $row = $result->fetch_assoc();
    $prezzo_totale1 = $row['SUM(prezzo_tot)'];

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Codice PHP:
    // Remember to add security checks (addslashes, etc.)
    $mail = $_SESSION['email'];
    $query = "SELECT SUM(prezzo_tot) FROM your_table WHERE email = '$email';";
    $result = $mysqli->query($query);

    $row = $result->fetch_assoc();
    $prezzo_totale1 = $row['SUM(prezzo_tot)'];
    mi genera questo errore:
    Codice:
    Fatal error: Call to a member function query() on a non-object in /membri/tppvergotti/carrello.php on line 380
    dove la riga 380 corrisponde a:
    $result = $mysqli->query($query);

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Avevo dato per scontato che stessi usando mysqli nella sua "versione" ad oggetti, nel qual caso avresti dovuto prima creare un oggetto mysqli:
    Codice PHP:
    $mysqli = new mysqli("localhost", "my_user", "my_password");
    Naturalmente puoi usare mysqli procedurale, pdo, o qualunque strumento utilizzi di solito per interagire col database :)

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Avevo dato per scontato che stessi usando mysqli nella sua "versione" ad oggetti, nel qual caso avresti dovuto prima creare un oggetto mysqli:
    Codice PHP:
    $mysqli = new mysqli("localhost", "my_user", "my_password");
    Naturalmente puoi usare mysqli procedurale, pdo, o qualunque strumento utilizzi di solito per interagire col database :)
    adesso lo ho creato e mi genera un'ulteriore errore:
    Fatal error: Call to a member function fetch_assoc() on a non-object in /membri/tppvergotti/carrello.php on line 385

    ovvero:
    $row = $result->fetch_assoc();

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Quell'errore significa che $result non è un oggetto (come invece dovrebbe essere). Molto probabilmente questo è causato dal fallimento della query.
    Hai controllato che la query andasse a buon fine? Ad esempio usando questo codice subito dopo la query:
    Codice PHP:
    if (!$result) {
    printf("Error: %s\n", $mysqli->error);
    }

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Quell'errore significa che $result non è un oggetto (come invece dovrebbe essere). Molto probabilmente questo è causato dal fallimento della query.
    Hai controllato che la query andasse a buon fine? Ad esempio usando questo codice subito dopo la query:
    Codice PHP:
    if (!$result) {
    printf("Error: %s\n", $mysqli->error);
    }
    infatti vedo ora che la query da come risultato che il database non è selezionato...
    scusa ma il mysqli non lo ho mai usato :D
    come faccio a salezionare il db?

    (io usavo questo, fra l'altro già presente nella pagina)
    Codice PHP:
    $link = mysql_connect('localhost', '', '')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('my_tppvergotti') or die('impossibile selezionare il database database');

  8. #8
    Guest

    Predefinito

    ok risolto
    Grazie mille mzanella :)

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Credo sia meglio usare le funzioni mysql che già stavi usando (sia perché probabilmente le conosci meglio, sia per mantenere il codice consistente). In questo caso, il codice diventa:
    Codice PHP:
    // Remember to add security checks (addslashes, etc.)
    $mail = $_SESSION['email'];
    $query = "SELECT SUM(prezzo_tot) FROM your_table WHERE email = '$email';";
    $result = $mysql_query($query);

    $row = mysql_fetch_assoc($result);
    $prezzo_totale1 = $row['SUM(prezzo_tot)'];
    PS: le "vecchie" funzioni mysql sono deprecate: http://php.net/manual/en/mysqlinfo.api.choosing.php

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •