Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    [PHP-MySql] Dove tutte le righe =0

    Salve ragazzi,

    come al solito (quasi sempre riguarda MySql) ho una domanda per MySql.

    Ho un campo di tipo int che chiameremo "quantità". Io dovrei verificare se di tutti i "prodotti" (cioè righe) è a 0 oppure ce ne è anche solo uno ancora che ha più di 0. Quando tutti sono a 0 devo far eseguire il codice apposito in php, altrimenti prendo quei dati che ci sono anche se 9 su 10 sono uguale a 0.

    Spero di essermi spiegato, vorrei sapere se nella query posso fare questa verifica.

    Avevo già pensato ad una query con la clausola "WHERE quantità!=0"

    e poi in php verificare quante row sono e se sono 0 row fa partire il codice. Non c'è una modalità per snellire la cosa?

    Grassie, sempre gentili

  2. #2
    Certo che la puoi utilizzare quella sintassi, ovviamente è consigliato di non utilizzare caretteri accentati.

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    con questa query ottieni il numero di campi diversi da 0:
    "SELECT COUNT(quantità) AS totale FROM tabella WHERE quantità != 0";
    think simple think ringo

  4. #4
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    altra cosa

    Vi ringrazio entrambi, ed aggiungo, già che ci sono, un'altra domanda.

    Una volta che tutti sono 0 (ipotetizziamo di esserci arrivati) io devo fare l'update di tutte le righe.

    Il problema è che ho "quantità" diverse per ogni tipo di "prodotto".

    Cioè quando tutti sono 0, io devo rimettere, per esempio, quantità di Coca=20, quantità di Carta=50, quantità di Piatti=200.

    I prodotti sono in un campo che chiamiamo "prodotto".

    Ora vorrei evitare di fare 10 query se ho 10 prodotti, magari con un while.

    Non c'è un modo per fare (provo a scrivere un codice così dal nulla e vediamo se si può, almeno rendo l'idea) tipo:

    codice:
    UPDATE tabella SET quantita=20 WHERE prodotto='Coca', SET quantita=50 WHERE prodotto='Carta', SET quantita=200 WHERE prodotto='Piatti'
    ??

    Grassie ancora

    PS: So che magari l'utilità di questa cosa può sembrare poco sensata, ma per i miei scopi lo è credetemi gh

  5. #5
    Puoi fare:

    $query = "UPDATE tabella SET quantita=20 WHERE prodotto='Coca';
    UPDATE tabella SET quantita=50 WHERE prodotto='Carta';
    UPDATE tabella SET quantita=200 WHERE prodotto='Piatti'";

    il tutto con una sola chiamata a mysql_query.....


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

  6. #6
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Grazie Piero, coem sempre mi aiuti

    Ora ho ancora un dilemma e poi dovrei aver finito (per oggi):

    Io vorrei con un foreach ricreare la query di Piero:

    Codice PHP:
    $query "UPDATE tabella SET quantita=20 WHERE prodotto='Coca'; 
    UPDATE tabella SET quantita=50 WHERE prodotto='Carta'; 
    UPDATE tabella SET quantita=200 WHERE prodotto='Piatti'"

    Ho provato così ma non funzica:

    Codice PHP:
    $pro_qua=array("Coca"=>"20","Carta"=>"50","Piatti"=>"200");

    foreach(
    $pro_qua as $pro => $qua){//aggiorno il database
    $query .= (empty($query)) : "UPDATE tabella SET quantita=$qua WHERE prodotto='$pro';";
    }
    echo 
    $query
    Cosa sbaglio?

    L'errore che mi dà è:

    Parse error: parse error, unexpected ':' in root\file.php on line 66 (la riga imputata è quella del foreach sopra)

  7. #7
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ok ho risolto facendo così:

    Codice PHP:
    $pro_qua=array("Coca"=>"20","Carta"=>"50","Piatti"=>"200");

    foreach(
    $pro_qua as $pro => $qua){//aggiorno il database
    $query .= (empty($query)) ? "UPDATE tabella SET quantita=$qua WHERE prodotto='$pro'" ";UPDATE tabella SET quantita=$qua WHERE prodotto='$pro'";

    Grassie cmq

  8. #8
    Intravedo bisticci con il ;

    Io farei come fa il popolo php.... quello "normale". Con le virgolette sui numeri dell'array .. quei numeri sono stringhe. Per coerenza o metti le virgolette in entrambi oppure a nessuno.
    Codice PHP:
    $pro_qua=array("Coca"=>"20","Carta"=>"50","Piatti"=>"200");
    $query "";
    foreach(
    $pro_qua as $pro => $qua){//aggiorno il database
    $query .= "UPDATE tabella SET quantita='$qua' WHERE prodotto='$pro';";
    }
    echo 
    $query


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

  9. #9
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ok, pensavo di aver finito

    Se faccio:

    Codice PHP:
    $pro_qua=array("Coca"=>"20","Carta"=>"50","Piatti"=>"200");

    foreach(
    $pro_qua as $pro => $qua){//aggiorno il database
    $query .= (empty($query)) ? "UPDATE tabella SET quantita=$qua WHERE prodotto='$pro'" ";UPDATE tabella SET quantita=$qua WHERE prodotto='$pro'";

    Ne faccio l'echo, e lui mi restituisce esattamente:

    codice:
    UPDATE tabella SET quantita=20 WHERE prodotto='Coca';UPDATE tabella SET quantita=50 WHERE prodotto='Carta';UPDATE tabella SET quantita=200 WHERE prodotto='Piatti'
    Ora penserete "Si, e il problema qual'è?", lo sapessi...

    Se faccio la query con php mi dà errore near il secondo UPDATE, se lo inserisco a mano nel phpmyadmin me lo prende senza problemi.

    Idee su cosa possa essere?

    PS: Piero aiutami tu

  10. #10
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Originariamente inviato da piero.mac
    Intravedo bisticci con il ;

    Io farei come fa il popolo php.... quello "normale". Con le virgolette sui numeri dell'array .. quei numeri sono stringhe. Per coerenza o metti le virgolette in entrambi oppure a nessuno.
    Codice PHP:
    $pro_qua=array("Coca"=>"20","Carta"=>"50","Piatti"=>"200");
    $query "";
    foreach(
    $pro_qua as $pro => $qua){//aggiorno il database
    $query .= "UPDATE tabella SET quantita='$qua' WHERE prodotto='$pro';";
    }
    echo 
    $query

    Non ce li avevo messi gli apici perché il campo è di tipo INT quindi pensavo fosse errato metterceli... ma mi dà cmq errore

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.