Riempire due insert in due tabelle diverse

Ciao

Finalmente ho risistemato le cose con il phpmyadmin.E sono solo ora riuscito a vedere il codice ch emi hai inviato. Credo che ci sia qualche errore. Ti rimando il codice cosnidera che l'originale è intatto.Vedi l'allegato 1057

Allora rettifico, scusami. Ci dovevo perdere più tempo ma so stato interrotto 2000 volte. Comunque, ora l'unico errore ch emida è su questa riga qua che ti posto:

PHP:
if(){!in_array($tipo1,$ammesse) || !in_array($tipo2,$ammesse) || !in_array($tipo3,$ammesse) || !in_array($tipo4,$ammesse) || !in_array($tipo5,$ammesse)){
            $errore .= "uno dei file non è un'immagine<br>";
	}

Non dice nient'altro.
 
Ultima modifica:
ciao
in che senzo non ti dice nulla?
hai provato a caricare un file (es.) tipo .doc o altro?
se il file non è una jpg o gif o png dovrebbe darti errore.
comunque fai una prova
metti un var_dump dopo i $_file['immagineX']['type']
PHP:
<?php
//...
$tipo1=$_FILES['immagine1']['type'];
var_dump($_FILES['immagine1']['type']);
//...
$tipo1=$_FILES['immagine2']['type'];
var_dump($_FILES['immagine']['type']);
//...
$ammesse = array("image/gif","image/jpeg","image/pjpeg","image/png");
//....
?>
prova prima a caricare delle immagini (di vario tipo) e guarda cosa ti restituisce, poi prova di nuovo e su una metti un altro tipo di file (.doc o .txt)
e guarda cosa ti danno i var dump
comunque devo fare una correzione (piccolo errore di logica) se si vuole caricare (es.) tre immagini invece di 5 da (dovrebbe) errore, quindi da verificare se i post sono vuoti e caricare ssolo quelli pieni
 
Ciao

Il problema è l'if, e sul compilatore mi da un bel punto esclamativo in rosso. E se lo vado ad esegure mi da questo errore qua:

( ! ) Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\rivista\aggiungi.php on line 69

Credo che manchi una parenesi. Ora ci ridò un'occhiata.

Allora ti invio la parte di codice dove mi da problemi e ti segnalo a parte le righe dove mi richiedono attenzione. te lo allego in un notepad. Anzi ti ho inviato tutto il codice con le modifiche effettuate d a me. Queste sono le righe incriminate:

PHP:
	if(){!in_array($tipo1,$ammesse) || !in_array($tipo2,$ammesse) || !in_array($tipo3,$ammesse) || !in_array($tipo4,$ammesse) || !in_array($tipo5,$ammesse)){

PHP:
		$q-i=mysql_query("INSERT INTO tblrivista(rivista, anno, numero, pagina, titolo, componenti,immagine1, immagine2, immagine3, immagine4, immagine5) VALUES('$rivista','$anno','$numero','$pagina','$titolo','$componenti','$immagine1','$immagine2','$immagine3','$immagine4','$immagine5')");
 
Ultima modifica:
ciao
scusa, ma nella fretta ho scritto
if(){!in_array(.......

correggi in
if(!in_array($tipo1,$ammesse) ||....){....

cioè ho messo le condizioni fuori delle ()
 
Ciao

Allora ho apportato la modifica che mi hai detto, ma continua a segnalarmi che la riga 69 gli da fastidio. Ed è la seguente:

PHP:
<?php
}
else
{

Domanda da vero principiante, si può troncare un else e iniziare con una graffe per continuare l'else come hai fatto tu ????
 
ciao
non capisco cosa intendi esattamente per troncare un else, l'else deve avere sempre un if
if(condizioni){
...faccio questo
}else{
...faccio quello
}
comunque verifica che non mi sia dimenticato una graffa (o aperta o chiusa)
poi postami la riga 69 (due o tre prima e due o tre dopo, metti //riga 69 su quella segnalata da php), ho scritto tutto in un foglio di seguito (form ecc...) quindi le mie righe non corrispondono dalle tue

p.s.
un sistema lungo per verificare le graffe è contarle (aperte+chiuse): ti deve risultare un numero pari, se è dispari vuol dire che ne manca una
 
ciao
sulla riga
$q-i=mysql_query("INSERT INTO....
sempre per il motivo di prima, correggi in
$q_i=mysql_query("INSERT INTO....

comunque verifica i nomi delle variabili, sia che corrispondano che non siano scritte male
 
Ciao

Ecco le righe:

PHP:
<tr><td>Nuova categoria da inserire:</td><td><input type='text' name='nuovacategoria'></td></tr>
//in pratica, a parte i nomi dei campi uguale alle categorie
$q=mysql_query("SELECT descrizione FROM tblcomponenti ORDER BY descrizione");
$vuota=mysql_num_rows($q);
if($vuota > 0){//fa vedere la select solo se ci sono componenti e mostra solo il'input nuovocomponente, in pratica solo la prima volta
	echo "<tr><td>Componente:</td><td><select name=\"componente\">";
		echo "<option value=\"\">-seleziona-</option>";
	while($riga=mysql_fetch_array($q)){
		echo "<option value=\"".$riga['descrizione']."\">".$riga['descrizione']."</option>";
	}//fine while
echo "</select></td></tr>";
}//fine if vuota
	<tr><td>Componenti:</td><td><input type='text' name='nuovocomponente' /></td></tr>
	
	<input name='immagine[]'   type='file'  />
        <input name='immagine[1]'  type='file'  />
	<input name='immagine[5]'  type='file'  />

	<tr><td>Immagine 1:</td><td><input name='immagine1'  type='file'  /></td></tr>
	<tr><td>Immagine 2:</td><td><input name='immagine2'  type='file' /></td></tr>
	<tr><td>Immagine 3:</td><td><input name='immagine3'  type='file'  /></td></tr>
	<tr><td>Immagine 4:</td><td><input name='immagine4'  type='file'/></td></tr>
	<tr><td>Immagine 5:</td><td><input name='immagine5'  type='file'  /></td></tr>
	<tr><td>&nbsp;</td><td><input name='submit' type='submit' value='Salva' /></td></tr>
</table>
</form>
<?php
} RIGA 69
else
{
	//metti a tutti il trim es. $rivista = mysql_real_escape_string(trim ($_POST['rivista']));
	//e alla categoria e componenti per standardizzarli anche es. strtolower -> in modo che vengano tutti minuscoli
	//es $fbcategoria = mysql_real_escape_string(strtolower(trim ($_POST['categoria'])));
	//analogamente per nuovacategoria, componenti e nuovocomponente

	//QUA CREI LE TUE VARIABILI RIGUARDO AL FORM
        
        $rivista = mysql_real_escape_string(strtolower(trim ($_POST['rivista'])));
	$anno = mysql_real_escape_string(strtolower(trim ($_POST['anno'])));
	$numero = mysql_real_escape_string(strtolower(trim ($_POST['numero'])));
	$pagina = mysql_real_escape_string(strtolower(trim ($_POST['pagina'])));
	$titolo = mysql_real_escape_string(strtolower(trim ($_POST['titolo'])));
	$fbcategoria = mysql_real_escape_string(strtolower(trim ($_POST['categoria'])));//stai attento i nomi del $_POST devo corrispondere ai nomi dei campi del form
	$fbcategoria_nuova = mysql_real_escape_string(strtolower(trim ($_POST['nuovacategoria'])));
	$componenti = mysql_real_escape_string(strtolower(trim ($_POST['componenti'])));
	$componenti_nuovo = mysql_real_escape_string(strtolower(trim ($_POST['nuovocomponente'])));

        //CREO LE VARIABILI PER I FILE FILES['nomecampo']['tipo']

        $img1=$_FILES['immagine1']['name'];
	$tmp1=$_FILES['immagine1']['tmp_name'];
	$tipo1=$_FILES['immagine1']['type'];
	$img2=$_FILES['immagine2']['name'];
	$tmp2=$_FILES['immagine2']['tmp_name'];
	$tipo2=$_FILES['immagine2']['type'];
	$img3=$_FILES['immagine3']['name'];
	$tmp3=$_FILES['immagine3']['tmp_name'];
	$tipo3=$_FILES['immagine3']['type'];
	$img4=$_FILES['immagine4']['name'];
	$tmp4=$_FILES['immagine4']['tmp_name'];
	$tipo4=$_FILES['immagine4']['type'];
	$img5=$_FILES['immagine5']['name'];
	$tmp5=$_FILES['immagine5']['tmp_name'];
	$tipo5=$_FILES['immagine5']['type'];
	//inizio tutti i controlli, secondo me minimi indispensabili
	$errore="";
	if($rivista ==""){$errore .= "non hai inserito il titolo della rivista<br>";}
	if($anno==""){$errore .= "non hai inserito l'anno della rivista<br>";}
	if($numero==""){$errore .= "non hai inserito il numero della rivista<br>";}
	if($pagina==""){$errore .= "non hai inserito il numero della pagina<br>";}
	if($titolo==""){$errore .= "non hai inserito il titolo<br>";}
	if($categoria=="" && $fbcategoria_nuova==""){$errore .= "non hai inserito la categoria<br>";}//uno dei due deve essere pieno
	if($componenti=="" && $componenti_nuovo==""){$errore .= "non hai inserito il componente<br>";}//uno dei due deve essere pieno
	$ammesse=array("image/gif","image/jpeg","image/pjpeg","image/png");
	//if(){!in_array($tipo1,$ammesse) || !in_array($tipo2,$ammesse) || !in_array($tipo3,$ammesse) || !in_array($tipo4,$ammesse) || !in_array($tipo5,$ammesse)){
          if(!in_array($tipo1,$ammesse) ||!in_array($tipo2,$ammesse) || !in_array($tipo3,$ammesse) || !in_array($tipo4,$ammesse) || !in_array($tipo5,$ammesse)){

            $errore .= "uno dei file non è un'immagine<br>";
	}
	//verifica inserimento nuova categoria o nuovo componente
	//categoria
	if($fbcategoria=="" && $fbcategoria_nuova !=""){//sto cercasndo di inserire una nuova categoria
		$q_cat=mysql_query("SELECT descrizione FROM tblcategoria WHERE descrizione=='$fbcategoria_nuova'");
		$esiste=mysql_num_rows($q_cat);
		if($esiste==0){//non esiste quindi l'aggiungo
			$q_i=mysql_query("INSERT INTO tblcategorie(descrizione) VALUES('$fbcategoria_nuova')");
			$fbcategoria=$fbcategoria_nuova;//questo è il valore che andro ad inesrire nella tabella tblrivista
		}else{//se esiste  vuol dire che hai messo nel campo un valore che era nella selecct del form quindi
			$fbcategoria=$fbcategoria_nuova;//questo è il valore che andro ad inesrire nella tabella tblrivista
		}
	}
	//componente
	//**********NON STO a riscrivere il tutto basta che tu cambi il nome delle variabili
	//
	// a queto punti hai fatto i controlli indispensabili
	if($errore != ""){//c'è almeno un errore
		echo "<h1>$errore</hi>";//visualizzo il messaggio di errore e torno al form
		echo "<meta http-equiv='Refresh' content='3; URL=inserimento.php'>";
	}else{
		//****qui farei l'inserimento dei dati nella tabella tblrivista senza tutto l'ambaradan di visualizzazione/verifica
		//eventualmente farei una pagina modifica_dati
		/*non metterei lo spostamento (se fai l'ambaradan lo spostamento lo metteri nella pagina salva non qui altrimenti puoi
		trovarti la cartella con immagini che non ti servono
		*/
		//SPOSTO LE IMAMGINI NELLA LORO CARTELLA

		$dir='foto/';
		$move1=move_uploaded_file($tmp1 , $dir.$img1);
		$move2=move_uploaded_file($tmp2 , $dir.$img2);
		$move3=	move_uploaded_file($tmp3 , $dir.$img3);
		$move4=	move_uploaded_file($tmp4 , $dir.$img4);
		$move5=	move_uploaded_file($tmp5 , $dir.$img5);
		//FACCIO UN COTROLLINO CHE HANNO FUNZIONATO
		if(!$move1 || !$move2 || !$move3 || !$move4 || !$move5){
			echo "<h1>caricamento immagini non riuscito</h1>";//e torno al form
			echo "<meta http-equiv='Refresh' content='3; URL=inserimento.php'>";
		}
		//l'insert in tblrivista/non la scrivo completa
		$q_i=mysql_query("INSERT INTO tblrivista(rivista, anno, numero, pagina, titolo, componenti,immagine1, immagine2, immagine3, immagine4, immagine5)
                        VALUES('$rivista','$anno','$numero','$pagina','$titolo','$componenti','$immagine1','$immagine2','$immagine3','$immagine4','$immagine5')");
		 echo "<h1>nuovo record inserito</h1>";//e torno al form
		echo "<meta http-equiv='Refresh' content='3; URL=inserimento.php'>";
	

}
}

?>
 
Ultima modifica:
ciao
hai messo, prima del form:
PHP:
<?php
if(!isset($_POST['submit']))
{//questa graffa apre l'if non premuto il submit
?>
<!-- qui tutto il form -->

<?php 
} //RIGA 69 questa graffa chiude l'if se non premuto il submit
else 
{ //eccetera...
?>
comunque riguarda un po' il tutto, mi sembra se non sbaglio che ti sia dimenticato nella tastiera un po' di tag php
 
Ciao

Ciao,

Non sono sparito, è solo che mi ha dato probhlemi netbeans il compilatore che adopero. In pratica mi gira tutto su disco interno del pc, ma non mi gira niente sul synology. Quindi appena risolto il problema e spero presto, riuscirò anche a sistemare quello che mi hai dato. Comunque grazie ancora.
 
Ciao

Non ne sono venuto a capo. Ho ricontrollato tutto, ho messo anche l'if però mi continua a dare errore delle parentesi. In fondo al codice, non ne vuole sapere. Ti mando di nuovo l'allegato, se mi ci puoi dare un occhiata. nel frattempo la ridò pure io. Grazie.
 
Ciao

Allora,

Ho risoloto il problema. Errori miei e sbagli di cancellazione di alcune righe. Ho rimesso l'originale, e questa volta con più attenzione, l'ho modificato. Una cosa, è tutto spostato verso l'estrema destra dello schermo. Quindi non se vede niente. A meno che non scorri con la barra sotto. Come mai ??? Allora, nelle immagini, mi dice cheuna delle immagini che carico non è un'immagine, e poi non mi salva ovviamente i dati
 
Ultima modifica:
Ciao

Ciao Borgo,

Allora, il codice ora è tutto sistemato e funzionante: Solo che mi salta la parte submit, cioè non mi salva i dati in nessuna delle tabelle e quando lo vado ad esegure mi da due seguenti errori:

Notice: Undefined index: componenti in C:\xampp\htdocs\rivista\aggiungi.php on line 98
Call Stack
# Time Memory Function Location
1 0.0015 398360 {main}( ) ..\aggiungi.php:0

( ! ) Notice: Undefined variable: categoria in C:\xampp\htdocs\rivista\aggiungi.php on line 125
Call Stack
# Time Memory Function Location
1 0.0015 398360 {main}( ) ..\aggiungi.php:0

( ! ) Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\rivista\aggiungi.php on line 136
Call Stack
# Time Memory Function Location
1 0.0015 398360 {main}( ) ..\aggiungi.php:0
2 0.0619 412240 mysql_num_rows ( ) ..\aggiungi.php:136
uno dei file non è un'immagine

E ovviamente non memorizza i dati. Da cos apuò dipendere ????
 
ciao
da come si presentano gli errori, penso che siano errori in cascata, cioè tutti dipendenti dal primo.
generalmente
Notice: Undefined index: ...
si presenta quando in un $_POST, o più in generale in un array, c'è un nome (indice) errato
es. se ho un campo di input chiamato "nome" e sul post metto
$nome = $_POST['name'];
e name non esiste nel form mi da undefinited nel $_POST
se il post è indefinited $name assume il valore null o vuoto, di conseguenza si modifica la query e tutte le funzioni a questa collegate
quindi per prima cosa verifica che i nomi dei vari campi del form siano corrispondenti ai nomi (indici) che hai nei $_POST
fatto questo e prova
aspetto notizie (non Notice ne tantomeno Warning)
 
ciao
verifica anche questa riga
$q_cat=mysql_query("SELECT descrizione FROM tblcategoria WHERE descrizione=='$fbcategoria_nuova'");
se hai lasciato il doppio uguale che ho messo per errore, correggi in
$q_cat=mysql_query("SELECT descrizione FROM tblcategoria WHERE descrizione='$fbcategoria_nuova'");
 
Ciao

Mi restituisce sempre questi errori:


( ! ) Notice: Undefined index: fbnuovacategoria in C:\xampp\htdocs\rivista\aggiungi.php on line 97
Call Stack
# Time Memory Function Location
1 0.0016 398376 {main}( ) ..\aggiungi.php:0

( ! ) Notice: Undefined index: componenti in C:\xampp\htdocs\rivista\aggiungi.php on line 98
Call Stack
# Time Memory Function Location
1 0.0016 398376 {main}( ) ..\aggiungi.php:0

( ! ) Notice: Undefined index: componenti_nuovo in C:\xampp\htdocs\rivista\aggiungi.php on line 100
Call Stack
# Time Memory Function Location
1 0.0016 398376 {main}( ) ..\aggiungi.php:0

( ! ) Notice: Undefined variable: categoria in C:\xampp\htdocs\rivista\aggiungi.php on line 126
Call Stack
# Time Memory Function Location
1 0.0016 398376 {main}( ) ..\aggiungi.php:0
non hai inserito la categoria
non hai inserito il componente
uno dei file non è un'immagine

Non so se sono degli errori, te li segnalo nel codice, se non sono quelli, mi sembrano che siano corretti a occhio ho ridato una controllatina:

PHP:
  $rivista = mysql_real_escape_string(strtolower(trim ($_POST['rivista'])));
	$anno =mysql_real_escape_string(strtolower(trim ($_POST['anno'])));
	$numero =mysql_real_escape_string(strtolower(trim ($_POST['numero'])));
	$pagina =mysql_real_escape_string(strtolower(trim ($_POST['pagina'])));
	$titolo = mysql_real_escape_string(strtolower(trim ($_POST['titolo'])));
	$fbcategoria =mysql_real_escape_string(strtolower(trim ($_POST['categoria'])));//stai attento i nomi del $_POST devo corrispondere ai nomi dei campi del form
	$fbcategoria_nuova = mysql_real_escape_string(strtolower(trim ($_POST['nuovacategoria']))); POTREBBE ESSERE UN ERRORE fbcategoria (trim ($_POST['nuovacategoria'])));
	$componenti = mysql_real_escape_string(strtolower(trim ($_POST['componenti'])));

	$componenti_nuovo =mysql_real_escape_string(strtolower(trim ($_POST['nuovocomponente'])));POTREBBE ESSERE UN ERRORE componenti_nuovo --> (trim ($_POST['nuovocomponente']
 
Ciao

Ho corretto il doppio =, all'inizio non riuscivo a capire qual'era l'errore, ma poi l'ho visto. Ora mi retsituisce questo tipo di errori:

Notice: Undefined index: componenti in C:\xampp\htdocs\rivista\aggiungi.php on line 98
Call Stack
# Time Memory Function Location
1 0.0044 398352 {main}( ) ..\aggiungi.php:0

( ! ) Notice: Undefined variable: categoria in C:\xampp\htdocs\rivista\aggiungi.php on line 125
Call Stack
# Time Memory Function Location
1 0.0044 398352 {main}( ) ..\aggiungi.php:0
uno dei file non è un'immagine

Perchè mi dice che non è un'immagine ???? Mentre lo è ????
 

Discussioni simili