che stupido che sono, hai ragione.
Funziona tutto e ti ringrazio però è tutta una caccia ad errori, sembro tom e jerry mamma mia che faticaccia non hai idea.
Allora, entro dentro con i vari tipi di login e fa tutto quello che deve fare, vedo le pagine e le tabelle pero sono comparsi una marea di ''Notice: '' che non sono errori pero sono imprecisioni.
Il punto è che da come ho capito da te che quella riga di codice error_reporting(E_ALL); li mostra tutti, ma non capisco come mai è commentata in tutti i file ma appaiono lo stesso non dovrebbero comparire.
Mi interessa almeno farli sparire altrimenti qui non ci salto più fuori.
Te li pubblico a malincuore ma guarda, ogni volta ne spunta uno di nuovo.
Notice: Undefined index: categoria in /membri/progettoditelematica2019/InVendita.php on line 34
Notice: Use of undefined constant bottone - assumed 'bottone' in /membri/progettoditelematica2019/InVendita.php on line 149
Notice: Use of undefined constant bottone_carrello - assumed 'bottone_carrello' in /membri/progettoditelematica2019/InVendita.php on line 216
InVendita.php
(non pubblico tutto il codice per ottimizzare un po)
(ho messo le righe che danno errore)
Codice PHP:
$nomeDaCercare="";
$mysqli = connect();
if(empty($_POST['nomeDaCercare'])){
$categoria = $_POST["categoria"]; // riga 34
$query= $mysqli->query("SELECT Prodotto.Cod_Prodotto, Prodotto.Cod_Categoria, Prodotto.Nome, Prodotto.Prezzo_Vendita, Prodotto.Scorte_Magazzino FROM Prodotto
join Categoria_Prodotti on Categoria_Prodotti.Cod_Categoria = Prodotto.Cod_Categoria
WHERE Categoria_Prodotti.Nome = '$categoria'");
if(!($query->num_rows)>0){//se non esiste query con codice categoria, utilizzo questa query per far stampare tutti i prodotti
$query = $mysqli->query("SELECT Cod_Prodotto, Cod_Categoria, Nome, Prezzo_Vendita, Scorte_Magazzino FROM Prodotto WHERE 1");
}
}
else {
$categoria = $_POST["categoria"];
$nomeDaCercare = $_POST['nomeDaCercare'];
$query = $mysqli->query("SELECT Prodotto.Cod_Prodotto, Prodotto.Cod_Categoria, Prodotto.Nome, Prodotto.Prezzo_Vendita, Prodotto.Scorte_Magazzino FROM Prodotto
join Categoria_Prodotti on Categoria_Prodotti.Cod_Categoria = Prodotto.Cod_Categoria
WHERE LOCATE('$nomeDaCercare',Prodotto.Nome) AND Categoria_Prodotti.Nome = '$categoria'");
if(!($query->num_rows)>0){//se non trova in quella categoria, cerca in tutte le altre
$query = $mysqli->query("SELECT Cod_Prodotto, Cod_Categoria, Nome, Prezzo_Vendita, Scorte_Magazzino FROM Prodotto WHERE LOCATE('$nomeDaCercare',Prodotto.Nome) ");
echo '<p>Non è stato trovato nulla nella categoria selezionata</p>';
}
}
//..
//..
//..
if(isset($_POST[bottone])){ // riga 149
$carrelloBottone = $_POST[bottone];
if (!isset($_SESSION['prodottoInCarrello'])) {//costruisce il carrello
$_SESSION['prodottoInCarrello'] = array();
}
$y = 0;
for($x=0;$x<$query->num_rows; $x++){
if($carrelloBottone[$x] == 'Aggiungi'){
$product = $products[$x];
$productsInCarrello[] = $product;
if(!in_array($product,$_SESSION['prodottoInCarrello'])){//vede se esiste già un oggetto product
array_push($_SESSION['prodottoInCarrello'],$product);//costruisce il carrello
echo 'Il prodoto "'.$products[$x]->getNome_prodotto().'" è stato aggiunto al carrello';
$carrello = $_SESSION['prodottoInCarrello'];//qui creo il mio array di oggetti "carrello" che successivamente verrà salvato nel database come query
//genero la query che salverà il carrello dell'utente
$carrelloInDB = "SELECT Cod_Prodotto, Cod_Categoria, Nome, Prezzo_Vendita, Scorte_Magazzino FROM Prodotto WHERE ";
for ($y = 0; $y<count($carrello);$y++){
if ($y<count($carrello)-1){
$carrelloInDB .= "Cod_Prodotto = " . $carrello[$y]->getCod_prodotto() . " OR ";
}
else {
$carrelloInDB .= "Cod_Prodotto = " . $carrello[$y]->getCod_prodotto() . " ";//lo spazio finale è importante
}
}
//echo $carrelloInDB;
$nickSessione = $_SESSION["nickname"];//solo per la query
//------//Mi servono solo per verificare di non stare sovrascrivendo un carrello precedentemente memorizzato
$queryCarrello2 = $mysqli->query("SELECT Carrello FROM Utenti WHERE Nickname = '$NickS'");
$carrelloSalvato2 = $queryCarrello2->fetch_row();
//------//
//memorizzo il carrello nel database
if($carrelloSalvato2[0][0]!='S'){
$queryCambiamento = $mysqli->query("UPDATE Utenti SET Carrello = '$carrelloInDB' WHERE Nickname = '$nickSessione'");
}
else{
//
$carrelloSalvato2[0] .= "OR Cod_Prodotto = " . $product->getCod_prodotto() . " ";//lo spazio finale è importante
$queryCambiamento2 = $mysqli->query("UPDATE Utenti SET Carrello = '$carrelloSalvato2[0]' WHERE Nickname = '$nickSessione'");
}
}
else{
echo 'Il prodoto "'.$products[$x]->getNome_prodotto().'" è già presente nel carrello';
}
echo '<br>';
break;
}
}
}
//..
//..
//..
$mysqli = connect();
if(isset($_POST[bottone_carrello])){ // riga 216
$nickSessione = $_SESSION["nickname"];//solo per la query
$queryCarrello3 = $mysqli->query("SELECT Carrello FROM Utenti WHERE Nickname = '$nickSessione'");
$carrelloSalvato = $queryCarrello3->fetch_row();
$ottengoCarrello2 = $mysqli->query($carrelloSalvato[0]);
while ($row = $ottengoCarrello2->fetch_row()) {
$prodottoNelCarrello = new Prodotto($row[0], $row[1], $row[2], $row[3], $row[4]);
$oggettiGiustoOrdine[]=$prodottoNelCarrello;//un array che segna gli oggetti nel giusto ordine del carrello
}
$carrelloBottoneElimina = $_POST[bottone_carrello];
$carrelloPulito = array();
for($x = 0; $x < count($oggettiGiustoOrdine); $x++){
if($carrelloBottoneElimina[$x] == 'Rimuovi'){
echo "Hai rimosso dal carrello: " . $oggettiGiustoOrdine[$x]->getNome_prodotto();
for($y = 0; $y < count($oggettiGiustoOrdine); $y++){
if($oggettiGiustoOrdine[$y] != $oggettiGiustoOrdine[$x]){
$carrelloPulito[]=$oggettiGiustoOrdine[$y];
}
}
$oggettiGiustoOrdine = $carrelloPulito;
$_SESSION['prodottoInCarrello'] = $oggettiGiustoOrdine;//è importante aggiornare il valore dei prodotti in carrello, ordinandola di nuovo
//creo e aggiorno la nuova query:
$carrelloInDB = "SELECT Cod_Prodotto, Cod_Categoria, Nome, Prezzo_Vendita, Scorte_Magazzino FROM Prodotto WHERE ";
for ($y = 0; $y<count($oggettiGiustoOrdine);$y++){
$carrelloInDB .= "Cod_Prodotto = " . $oggettiGiustoOrdine[$y]->getCod_prodotto() . " OR ";
}
if(count($oggettiGiustoOrdine)==0){
echo '<br>';
echo "Il tuo carrello è al momento vuoto!\n";
}
$carrelloInDB .= "Cod_Prodotto = 0 "; //non esistono prodotti con chiave 0, lo utilizzo per terminare la query
$queryCambiamento = $mysqli->query("UPDATE Utenti SET Carrello = '$carrelloInDB' WHERE Nickname = '$nickSessione'");
}
}
}