carrello spesa

bipolare

Nuovo Utente
22 Nov 2012
6
0
0
Ciao a tutti sono nuovo del forum, mi permetto di disturbarvi perche ho bisogno di un piccolo aiuto,

sto realizzando un sito e creando un carrello spesa,cioe dovrei realizzare una prenotazione on-line con ritiro a domicilio nel punto vendita,ho visto il tutorial per il carrello della spesa,ho creato la tabella prodotti,ho creato la pagina mysql,carrello,index,e config,se apro la pagina index seleziono un prodotto mi trasferisce nella pagina carrello ma mi da 3 errori che vi elenco,mi sapreste aiutare per capire dove sbaglio,vi ringrazio anticipatamente.






Notice: Query fallita: No database selected SQL: SELECT * FROM prodotti WHERE id = 5 in D:\Inetpub\webs\saporedipastait\mysql.php on line 45

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Inetpub\webs\saporedipastait\mysql.php on line 62

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Inetpub\webs\saporedipastait\mysql.php on line 77
 
Ciao e benvenuto
No database selected
manca questa funzione
PHP:
$db = mysql_select_db("nomedeltuodatabae");
mettila dopo la mysql_connect();
 
ciao grazie del tuo aiuto,io nella pagina config ho questa voce $db = &new MySQL($host,$user,$password,$data);
quella che mi dici tu dove la devo mettere,

scusa se ti chiedo queste banalità ma non sono un programmatore.
 
da qualche parte dovresti avere anche la class MySQL
inizia cosi:
PHP:
class MySQL {
va inserita qui da qualche parte a questo punto senza $db =
semmai posta il contenuto
 
ciao io ho 5 file:
classe mysql:
PHP:
<?php
class MySQL
{
  var $host;
  var $user;
  var $password;
  var $data;
  var $connessione;
  var $errore;

  function MySQL ($host,$user,$password,$data)
  {
    $this->host=$host;
    $this->user=$user;
    $this->password=$password;
    $this->database=$data;
    $this->connessione();
  }

  function connessione()
  {
    if (!$this->connessione = @mysql_connect($this->host, $this->user, $this->password,$this->database))
    {
    
      trigger_error('Impossibile connettersi a MySQL.');
      $this->errore=true;
    }
    elseif (!@mysql_select_db($this->errore,$this->connessione))
    {
      trigger_error('Impossibile connettersi al database.');
      $this->errore=true;
    }
  }
 
  function notifica_errore()
  {
    if ($this->errore) return true;
    $notifica=mysql_error($this->connessione);
    if (empty($notifica)) return false;
    else return true;
  }
  
  function query($sql)
  {
    if (!$qRes=mysql_query($sql,$this->connessione))
    trigger_error (    'Query fallita: '.mysql_error($this->connessione).    (' SQL: '.$sql));
    return new MySQLResult($this,$qRes);
  }
}

class MySQLResult
{
  var $mysql;
  var $query;
  function MySQLResult(& $mysql,$query)
  {
    $this->mysql=& $mysql;
    $this->query=$query;
  }

  function fetch()
  {
    if ($f=mysql_fetch_array($this->query,MYSQL_ASSOC))
    {
      return $f;
    }
    else if ($this->size() > 0)
    {
      mysql_data_seek($this->query,0);
      return false;
    }else{
      return false;
    }
  }
  
  function size()
  {
    return mysql_num_rows($this->query);
  }
  
  function insertID()
  {
    return mysql_insert_id($this->mysql->connessione);
  }
  
  function notifica_errore()
  {
    return $this->mysql->notifica_errore();
  }
}
?>
index:
PHP:
<?php
@session_start();
@require('mysql.php');
@require('config1.php');
@require('funzioni1.php');
?>

<html>
<head>
<title>Un carrello della spesa con PHP</title>
</head>
<body>
<h1>Carrello in PHP</h1>

<?php

echo usaCarrello();
?>

<h1>Scegli un prodotto</h1>

<?php
$sql = 'SELECT * FROM prodotti ORDER BY id';
$res = $db->query($sql);
$result[] = '<ol>';
while ($f = $res->fetch())
{
  $result[] = '<li>"'.$f['nome']. '"by '.$f['ingredienti']. ': &euro;'.$f['prezzo'].'<br>
  <a href="carrello.php?action=aggiungi&id='.$f['id'].'">Aggiungi al carrello.</a></li>';
}
$result[] = '</ol>';
echo @join('',$result);
?>

</body>
</html>
carrello:
PHP:
<?php
@session_start();
@require('mysql.php');
@require('config1.php');
@require('funzioni1.php');

$carrello = $_SESSION['carrello'];
if(@isset($_GET['action']))
{
  $action = $_GET['action'];
  
  switch ($action)
  {
    case 'aggiungi':
    if ($carrello)
    {
      $carrello .= ','.$_GET['id'];
    }else{
      $carrello = $_GET['id'];
    }
    break;

    case 'cancella':
    if ($carrello)
    {
      $prodotti = @explode(',',$carrello);
      $acquisto = '';
      foreach ($prodotti as $prodotto)
      {
        if ($_GET['id'] != $prodotto)
        {
          if ($acquisto != '')
          {
            $acquisto .= ','.$prodotto;
          }else{
            $acquisto = $prodotto;
          }
        }
      }
      $carrello = $acquisto;
    }
    break;

    case 'aggiorna':
    if ($carrello)
    {
      $acquisto = '';
      foreach ($_POST as $key=>$value)
      {
        if (@stristr($key,'quantita'))
        {
          $id = @str_replace('quantita','',$key);
          $prodotti = ($acquisto != '') ? 
          @explode(',',$acquisto) : @explode(',',$carrello);
          $acquisto = '';

          foreach ($prodotti as $prodotto)
          {
            if ($id != $prodotto)
            {
              if ($acquisto != '')
              {
                $acquisto .= ','.$prodotto;
              }else{
                $acquisto = $prodotto;
              }
            }
          }
  
          for ($i=1;$i<=$value;$i++)
          {
            if ($acquisto != '')
            {
              $acquisto .= ','.$id;
            }else{
              $acquisto = $id;
            }
          }
        }
      }
    }
    $carrello = $acquisto;
    break;
  }
}

$_SESSION['carrello'] = $carrello;
?>

<html>
<head>
<title>Un carrello della spesa con PHP</title>
</head>
<body>
<h1>Carrello in PHP</h1>

<?php
echo usaCarrello();
?>

<h1>Controlla il numero dei prodotti</h1>

<?php
echo mostraCarrello();
?>

<a href="area_riservata.php">Torna allo shop</a><br>
</body>
</html>
config:
PHP:
<?php
$host = host;
$user = 'username';
$password = 'password';
$database = 'database';
$db = &new MySQL($host,$user,$password,$data);
 ?>
qui ho inserito i dati per la connessione.
funzioni:
PHP:
<?php
function usaCarrello()
{
  $carrello = $_SESSION['carrello'];
  if (!$carrello)
  {
    return ' carrello  vuoto.<br>';
  }else{
    $prodotti = @explode(',',$carrello);
    return 'Ci sono <a href="carrello.php">'.
    @count($prodotti). ' prodotti nel carrello.</a><br>';
  }
}

function mostraCarrello()
{
  global $db;
  $carrello = $_SESSION['carrello'];
  $somma = 0;
  if ($carrello)
  {
    $prodotti = @explode(',',$carrello);
    $acquisti = array();
    foreach ($prodotti as $prodotto)
    {
      $acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
    }
    $result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
    $result[] = '<table>';

    foreach ($acquisti as $id=>$quantita)
    {
      $sql = 'SELECT * FROM prodotti WHERE id  = '.$id;
      $res = $db->query($sql);
      $f = $res->fetch();
      @extract($f);
      $result[] = '<tr>';
      $result[] = '<td><a href="carrello.php?action=cancella&id='.$id.'">Cancella</a></td>';
      $result[] = '<td>'.$nome.' by '.$marca.'</td>';
      $result[] = '<td>&euro;'.$prezzo.'</td>';
      $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
      $result[] = '<td>&euro;'.($prezzo * $quantita).'</td>';
      $somma += $prezzo * $quantita;
      $result[] = '</tr>';
    }

    $result[] = '</table>';
    $result[] = 'Totale: <b>&euro;'.$somma.'</b></br>';
    $result[] = '<button type="submit">Aggiorna il carrello</button>';
    $result[] = '</form>';
  }else{
    $result[] = 'Il carrello è vuoto.<br>';
  }
  return @join('',$result);
}
?>
ti ringrazio anticipatamente per l'aiuto grazie
 
Ultima modifica di un moderatore:
il problema è qui:
PHP:
$database = 'database';
$db = &new MySQL($host,$user,$password,$data);
o la chiami $database o la chiami $data

EDIT
ricordati di racchiudere il codice che posti tra i tag presenti sulla barra di formattazione (php,html,code)
 
Ultima modifica:
Ciao ho provato a cambiara $data in $database e viceversa, ma il problema persiste,anzi come li ho postati io nella pagina index mi mostra i prodotti,mentre se cambio $data non mi fa vedere i prodotti,non so se mi sono spiegato.
 
cambia solo da cosi
PHP:
$database = 'database';
$db = &new MySQL($host,$user,$password,$data);
a cosi
PHP:
$data= 'database';
$db = &new MySQL($host,$user,$password,$data);
ne file config
 
Ciao ho risolto, non era li il problema ma nella pagina mysql:


var $user;
var $password;
var $data;
var $connessione;
var $errore;

function MySQL ($host,$user,$password,$data)
{
$this->host=$host;
$this->user=$user;
$this->password=$password;
this->database=$data;
$this->connessione();

nella penultima riga (this->database=$data;) non so come c'e' finito this->database=$data; ma il comando corretto e' $this->errore=$database;
comunque funziona e grazie tante dell' interesse
 
inserire nelle celle il risultato

ciao ho risolto con il problema che mi dava il carrello della spesa,vorrei avere un altro aiuto,se possibile, come faccio a inserire il contenuto all'interno di una cella(per capirci tipo tabella excel,dove inserire anche una miniatura della foto del prodotto) non so se sono riuscito a spiegarmi.

grazie a tutti
 

Discussioni simili