Problemi inserimento dati con checkbox multiplo

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Ciao ragazzi rieccomi con un nuovo problema, vi spiego: ho creato 2 tabelle per l'iserimento ei servizi degli hotel la prima si chiama "servizi" ed e' cosi' composta:
Codice:
CREATE TABLE `servizi` (
  `servizio_id` int(11) NOT NULL AUTO_INCREMENT,
  `titolo` varchar(255) NOT NULL DEFAULT '',
  `alt` varchar(255) NOT NULL DEFAULT '',
  `nome` varchar(255) NOT NULL DEFAULT '',
  `tipo` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`servizio_id`)
) ;
dove all'interno carico i servizi ad esempio wifi, piscina termale ecc. ecc. da associare poi all'hotel,
la seconda si chiama servizi_hotel composta cosi':
Codice:
CREATE TABLE `servizi_hotel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idhotel` int(11) NOT NULL,
  `servizio_id` int(11) NOT NULL,
  `variazione_prezzo` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idhotel` (`idhotel`),
  KEY `servizio` (`servizio_id`)
);
dove all'interno di questa associo i servizi che dispone l'hotel, ho creato questo codice in php:
PHP:
 <?php
require 'config.php';


$query = 'SELECT * FROM servizi ORDER BY alt ASC';
$result = mysql_query($query, $connessione) or die (mysql_error($connessione));

if (mysql_num_rows($result) > 0) {
   

    $num_servizi = mysql_num_rows($result);
    $threshold = 5;
    $max_columns = 8;

    $num_columns = min($max_columns, ceil($num_servizi/$threshold));
    $count_per_column = ceil($num_servizi/$num_columns);

    $i = 0;
    echo '<table><tr><td>';
    while ($row = mysql_fetch_assoc($result)) {
        if (($i > 0) && ($i % $count_per_column == 0)) {
            echo '</td><td>';
        }
        echo '<input type="checkbox" name="servizio_id" "value="' . 
            $row['servizio_id'] . '" /> ';
        echo $row['titolo'] . '<br/>';
        $i++;
    }
    echo '</td></tr></table>';

    echo '<hr>';
                echo'<div class="clr form-button-container">';
                echo'<input type="submit" id="btn" value="AGGIUNGI">';
                echo'</div>';
} else {
    echo '<p><strong>Non ci sono servizi inseriti...</strong></p>';
}
?>
questo script mi recupera tutti i dati della tabella servizi e mi li mostra i nomi dei servizi con il checkbox io vorrei associare ad ogni idhotel diversi servizi ho questo cript ma non vuole funzionare:
PHP:
<?
							$servizio_id = $_POST ["servizio_id"];
							$variazione_prezzo = $_POST ["variazione_prezzo"];
							$id=$_GET["idhotel"];
                            
							if($_POST["Submit"]=="AGGIUNGI") 
                            {
	                        for ($i=0; $i<sizeof($servizio); $i++)
	                        {
								require_once 'config.php' ;

								$sql = "INSERT INTO servizzi_hotel (servizio_id, idhotel,  variazione_prezzo) VALUES ('$servizio_id','$idhotel','$variazione_prezzo')";
								$result = mysql_query ($sql,$connessione) or die ("query non funzionante = $sql");
								mysql_close ($connessione);
							}
								if ($result) echo '<script language=javascript>document.location.href="../pagine/hotel.php"</script>';
							}
							else echo("<BR><BR><center><span class=gensmall>INSERIMENTO NON RIUSCITO!.</span></center>");	
						echo "<BR><BR><center><span class=gensmall><a href='javascript:history.go(-1)'>TORNA ALLA LISTA HOTEL</span></center></a>";  		
						?>
Il problema sta proprio nell'iserimento dei servizi nella tabella servizi_hotel non me li iserisce per lo piu' non mi da neanche un errore qualche idea?
Ragazzi grazie come sempre
 
Ultima modifica:

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Allora ragazzi ho individuato il problema ho cmbiato le prime righe cosi':
PHP:
if (!isset($_POST['Submit'])) 
                            {
	                        for ($i=0; $i<count($servizio_id); $i++)
	                        {
e questo:
PHP:
$sql = "INSERT INTO servizzi_hotel (servizio_id, idhotel,  variazione_prezzo) VALUES ('" . $_POST['servizio_id'] . "','" . $_POST['idhotel'] . "','" . $_POST['variazione_prezzo'] . "')";
Adesso se clicco solo un servizio si inserisce nel database tutto tranne l'id del servizio in pratica mi da questo nella tabella:
tabella servizi_hotel
id idhotel servizio_id variazione_prezzo--
1----54------------0---------0

praticamente non trova l'id del servizio, e se inserisco piu' di 2 servizi nn inserisce niente.
Mistero del php :eek:
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
mi pare ci sia un apice in piu qui
PHP:
echo '<input type="checkbox" name="servizio_id" "value="' . $row['servizio_id'] . '" /> ';
corretto
PHP:
echo '<input type="checkbox" name="servizio_id" value="' . $row['servizio_id'] . '" /> ';
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Ciao grazie adesso l'id dele servizio funziona ma non so per quale motivo adesso l'id dell'hotel non va pi' mi da' sempre zero!!!

Edit: ok adesso funziona anche l'iserimento dell'id dell'hotel unica cosa e che se inserisco 2 oppure 3 servizi insieme mi scrive solo il primo srvizio della lista
 
Ultima modifica:

pinoshine

Utente Attivo
15 Set 2012
95
0
0
ok ragazzi ho risolto il problema del multi inserimnto, in pratica avevo sbagliato a chiudere una parentesi graffa!! :p ecco il codice completo magari a qualcuno puo' servire:
PHP:
<?
                            
 
                            $servizio = $_POST ["servizio_id"];
                            $variazione_prezzo = $_POST ["variazione_prezzo"];
                            $id=$_GET["idhotel"];
							
                            $checkbox = $_POST['mycheck'];
							
                            if (!isset($_POST['Submit'])) 
                            {
                            for ($i=0; $i<count($checkbox); $i++)
                            {  
                                require 'config.php' ;

                                $sql = "INSERT INTO servizzi_hotel (servizio_id, idhotel,  variazione_prezzo) VALUES (" . $checkbox[$i] . ",'" . $_POST['idhotel'] . "','" . $_POST['variazione_prezzo'] . "')";  
                                $result = mysql_query ($sql,$connessione) or die ("query non funzionante = $sql");
                                mysql_close ($connessione);
								}
                           if ($result)
								echo '<script language=javascript>document.location.href="javascript: history.go(-1)"</script>';
							exit;
							
		                    } else {
								
                              echo("<BR><BR><center><span class=gensmall>Devi inserire tutti i dati nel form.</span></center>");
							  echo "<BR><BR><center><span class=gensmall><a href='javascript:history.go(-1)'>Torna Indietro</span></center></a>"; 
							   	
		                     }
						       ?>
Adesso pero' non riesco a richiamare i dati dalla tabella servizi_hotel mi dice:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[servizio_id]' at line 1"
il codice e questo:
PHP:
$query = 'SELECT * FROM servizzi_hotel WHERE idhotel=$_GET[servizio_id]';
$result = mysql_query($query) or die (mysql_error());
in pratica devo associare l'id dei servizi all'id dell'hotel che casino!!!:dipser:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ah! questi apici antipatici :D
PHP:
$query = 'SELECT * FROM servizzi_hotel WHERE idhotel = ' . $_GET['servizio_id'];
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non ti puo dare lo stesso errore se hai modificato
riposta l'errore nuovo e stampa anche la query
PHP:
echo $query;
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Questo e' quello che stampa:



SELECT * FROM servizzi_hotel WHERE idhotel =

ma forse sto sbagliando io, non che serve una join tra le tabelle servizi e servizi_hotel?
Grazie
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
manca l'id
per qualche motivo $_GET['servizio_id'] non esiste
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
manca l'id
per qualche motivo $_GET['servizio_id'] non esiste

strano perche la tabella servizi_hotel e' cosi':

+-------+------+---------------+---------------------+
| id *| idhotel | servizio_id | variazione_prezzo |
+-------+------+---------------+---------------------|
| 1 | 1 | | 2 | 0 |
+-------+------+---------------+---------------------+

Non capisco perche non trova l'iddel sevizio
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
ok sembra che cosi' ho risolto:
PHP:
$query = 'SELECT * FROM servizzi_hotel WHERE idhotel = '.$_GET['id'];
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
ragazzi con la query sopra indicata si visualizzano i risultati della tabella servizi_hotel pero' adesso voglio recuperare anche la foto del servizio presente nella tabella servizi, ho fatto un join, non da errori pero' non mi restituisce risultati
PHP:
$query = 'SELECT * FROM servizi_hotel h JOIN servizi s ON h.servizio_id=s.servizio_id  WHERE s.servizio_id = ' . $_GET['id'] . ' ';		
$result = mysql_query($query) or die (mysql_error($connessione));
dove' che sto' sbagliando?
Grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la JOIN mi pare corretta
ha verificato che il record esista in entrambe le tabella e che i campi si chiamino entrambi servizio_id?
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
si, la tabella servizi e' composta da: servizio_id,titolo,alt,nome, tipo
invece la tabella servizi_hotel e composta da: id,idhotel,servizio_id,variazione_prezzo
in pratica io devo associare la fota da servizi a servizi_hotel, e la query mi da tutti irisultati tranne la foto
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Ragazzi niente da fare sto provando e riprovando ma non riesco a capire dove' l'errore, questo e' il codice:
PHP:
<?
require ('../processi/config.php');

$query = 'SELECT * FROM servizzi_hotel WHERE idhotel = '.$_GET['id'];
$result=mysql_query($query);
if (mysql_num_rows($result) == 0) {
echo '<table align="center" class="clear" cellpadding="4" cellspacing="0" border="0" width="100%">';
	echo '<td align=center>NON CI SONO HOTEL INSERITI!</td>';
	 echo '</table>';
			exit;
		} else

while ($row=mysql_fetch_array($result)) {
            echo'<tbody>';
              echo'<tr class=odd onmouseover=this.bgColor=#FCF5DD onmouseout=this.bgColor=#F7F7F7 bgcolor=#F7F7F7>';
                echo'<td class="center checkbox"><input name="checkbtn" id="checkbtn" value="1" class="check_btn" type="checkbox"></td>';
                echo'<td class="center sorting_1">' . $row['id'] .  '</td>';
                echo'<td class="center"><span>' . $row['servizio_id'] . ' </span></td>';
                echo'<td class="center"><span>';

// recupero i dati dal DB
$query = 'SELECT * FROM servizzi h JOIN servizzi_hotel i ON h.servizio_id=i.servizio_id  WHERE h.servizio_id = ' . $_GET['id'] . '  ';
$res = mysql_query($query) or die (mysql_error($connessione));

// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);

// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
  // stabilisco il numero di riche e colonne della nostra tabella per l'impagninazione
  $colonne = 3;
  $righe=0;

  // ciclo tutti i record recuperati attraverso la nostra query
   while ($f=@mysql_fetch_array($res)){
    $righe++;
    $servizio_id = $f['servizio_id'];
    $titolo = stripslashes($f['titolo']);
	$tipo = stripslashes($f['tipo']);
    $nome = stripslashes($f['nome']);
	$alt = stripslashes($f['alt']);
	
    // stampo la cella contenente l'immagine
    echo '<td><img src="http://forum.mrwebmaster.it/foto servizzi/' . $nome . '.jpg" width="30" height="30"></a>';

    // quando il numero di righe equivale al valore impostato nella variabile $righe
    // procedo a chiudere la linea e ad azzerare il valore di $righe
    if ($righe == $colonne){
      echo "</tr><tr>\n";
      $righe = 0;
    }
  }
}else{
  // stampo un messaggio se il DB &egrave; vuoto
  echo "Nessuna immagine inserita.";
}

echo'</span></td>';
                echo'<td class="tools-list"><ul>';
                  echo'<li> <a href="http://forum.mrwebmaster.it/pagine/modifica_prezzi.php?id=$id" class="tooltip"><img src="http://forum.mrwebmaster.it/icone/edit.png" border="0" /><span>Modifica</span></a> </li>';
       echo'<li> <a href="http://forum.mrwebmaster.it/processi/canc_prezzi.php?id=$id" class="tooltip" id="button"><img src="http://forum.mrwebmaster.it/icone/delete.gif" WIDTH=16 HEIGHT=19  border="0" /><span>Elimina</span></a> </li>';
                echo'</ul></td>';
              echo'</tr>';
            echo'</tbody>';
			} ?>
mi dice sempre "nessuna foto inserita" quando in realta' ce' perche quando l'ho aggiunta nella tabella servizi l'ho iserita
Grazie
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Uf! finalmente ho risolto era semplice sbagliavo solo il richiamo a where
PHP:
$query = 'SELECT * FROM servizi_hotel h JOIN servizi s ON h.servizio_id=s.servizio_id  WHERE s.servizio_id = ' . $row['servizio_id'] . ' ';
Grazie a tutti!!
 

pinoshine

Utente Attivo
15 Set 2012
95
0
0
Ragazzi sto impazzendo con questo script!! :incazz: pensavo di aver risolto invece niente, vi spiego: se inserisco un servizio ad esempio servizio bar per un singolo hotel funziona bene ma se lo stesso servizio lo inserisco anche per un'altro hote lo vedo doppio vi posto la foto cosi' capite meglio:
servizi.jpg
ho sottolineato in rosso il problema, il codice l'ho scritto due post sopra.
Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
G mysql - problemi inserimento dati nel database, consigli. MySQL 3
P problemi inserimento dati PHP 1
P Problemi inserimento dati database tramite form PHP 12
Z Aiuto! problemi di inserimento dati da form PHP 9
M Problemi inserimento dati DataGridView .NET Framework 1
M [PHP] Problemi su inserimento array nel db PHP 7
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
G [HTML] Problemi con inserimento immagini HTML e CSS 7
asevenx Problemi con inserimento immagini con WooCommerce WordPress 9
radioButton problemi inserimento video HTML e CSS 2
B [SQLite] Problemi query di inserimento PHP 2
C problemi inserimento file PHP 1
F problemi inserimento formmail nel mio blog Supporto Mr.Webmaster 1
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
M [PHP] Problemi con il riconoscimento login. PHP 21

Discussioni simili