Insert non inserirsce tutti i valori

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Ciao a tutti, ho un piccolo problema con una INSERT. Devo inserire tutti e 20 i nomi delle regioni italiane dentro la tabella regioni, ma anziche' 20 ne vengono inseriti solo 19 (manca la Valle d'Aosta). Credo che il problema stia nel codice di escape in Valle d'Aosta, ma non capisco come modificarlo

PHP:
<?php
$regioni = array('Valle d\'Aosta','Piemonte','Liguria','Lombardia','Trentino-Alto Adige','Veneto','Friuli-Venezia Giulia','Emilia-Romagna','Toscana','Umbria','Marche','Lazio','Abruzzo','Molise','Campania','Puglia','Basilicata','Calabria','Sicilia','Sardegna');

$capoluoghi = array('Aosta','Torino','Genova','Milano','Trento','Venezia','Trieste','Bologna','Firenze','Perugia','Ancona','Roma','L\'Aquila','Campobasso','Napoli','Bari','Potenza','Catanzaro','Palermo','Cagliari');

foreach ($regioni as $regions)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$insert = mysqli_query($conn,"INSERT INTO regioni (id,regione) VALUES ('','$regions')");
}
if ($insert === TRUE)
echo "Records created successfully";
else 
echo "Error: " . $insert . "<br>" . $conn->error;
$conn->close();
?>
 
Ultima modifica:

Antonio102

Utente Attivo
12 Set 2014
36
0
6

Perfetto, ora funziona.

Sto provando ad inserire dei dati dentro un altro database chiamato 'customers', composto da 6 campi: id, name, address, city, cap, country. Voglio inserire i dati di 10 clienti, ma con il codice seguente inserisce primi i nomi, poi gli indirizzi, etc, ma non inserisce i dati relativi ad un singolo cliente tutti nello stesso record. Come posso risolvere?

PHP:
<?php

$name = array('Alfreds Futterkiste','Ana Trujillo Emparedados','Antonio Moreno Taqueria','Around the Horn','Berglunds snabbkop','Blauer See Delikatessen','Blondel pere et fils ','Bolido Comidas preparadas','Bon app','Bottom-Dollar Marketse');

$address = array('Obere Str. 57','Avda. de la Constitucion 2222','Mataderos 2312','120 Hanover Sq.','Berguvsvagen 8','Forsterstr. 57','24, place Kleber','C/ Araquil, 67','12, rue des Bouchers','23 Tsawassen Blvd');

$city = array('Berlin','Mexico D.F.','Mexico D.F.','London','Lulea','Mannheim','Strasbourg','Madrid','Marseille','Tsawassen');

$cap = array('12209','05021','05023','WA1 1DP','S-958 22','68306','67000','28023','13008','T2F 8M4');

$country = array('Germany','Mexico','Mexico','UK','Sweden','Germany','France','Spain','France','Canada'); 

foreach ($name as $names)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$namess = mysqli_real_escape_string($conn,$names);
$insert = mysqli_query($conn,"INSERT INTO customers (id,name) VALUES ('','$namess')");
}

foreach ($address as $k=>$addresses)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$addressess = mysqli_real_escape_string($conn,$addresses);
$insert = mysqli_query($conn,"INSERT INTO customers (id,address) VALUES ('','$addressess')");
}

foreach ($city as $cities)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$citiess = mysqli_real_escape_string($conn,$cities);
$insert = mysqli_query($conn,"INSERT INTO customers (city) VALUES ('$citiess')");
}

foreach ($cap as $caps)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$capss = mysqli_real_escape_string($conn,$caps);
$insert = mysqli_query($conn,"INSERT INTO customers (cap) VALUES ('$capss')");
}

foreach ($country as $countries)
{
$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);
$countriess = mysqli_real_escape_string($conn,$countries);
$insert = mysqli_query($conn,"INSERT INTO customers (country) VALUES ('$countriess')");
}

$conn->close();
?>
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
105
0
0
Milano
www.holidaysoft.it

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Ciao,
non so perchè i dati sono contenuti in array.... avrai i tuoi buoni motivi... ma credo che nel tuo caso dovresti utilizzare degli array multidimensionali, vedi questo esempio: http://goo.gl/CXpbdo

e' un esercitazione, non sono dati che vanno online, utilizzo per gli array per esercizio ;)

ho scritto nuovamente il codice, per ottengo questo errore

PHP:
Error:
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 'Dollar Marketse,23 Tsawassen Blvd,Tsawassen,T2F 8M4,Canada)' at line 1

lo script e' questo

PHP:
<?php

$person = array(
    array('name' => 'Alfreds Futterkiste', 'address' => 'Obere Str. 57', 'city' => 'Berlin', 'cap' => '12209', 'country' => 'Germany'),
    array('name' => 'Ana Trujillo Emparedados', 'address' => 'Avda. de la Constitucion 2222', 'city' => 'Mexico D.F.', 'cap' => '05021', 'country' => 'Mexico'),
	array('name' => 'Antonio Moreno Taqueria', 'address' => 'Mataderos 2312', 'city' => 'Mexico D.F.', 'cap' => '05023', 'country' => 'Mexico'),
	array('name' => 'Around the Horn', 'address' => '120 Hanover Sq.', 'city' => 'London', 'cap' => 'WA1 1DP', 'country' => 'UK'),
	array('name' => 'Berglunds snabbkop', 'address' => 'Berguvsvagen 8', 'city' => 'Lulea', 'cap' => 'S-958 22', 'country' => 'Sweden'),
	array('name' => 'Blauer See Delikatessen', 'address' => 'Forsterstr. 57', 'city' => 'Mannheim', 'cap' => '68306', 'country' => 'Germany'),
	array('name' => 'Blondel pere et fils', 'address' => '24, place Kleber', 'city' => 'Strasbourg', 'cap' => '67000', 'country' => 'France'),
	array('name' => 'Bolido Comidas preparadas', 'address' => 'C/ Araquil, 67', 'city' => 'Madrid', 'cap' => '28023', 'country' => 'Spain'),
	array('name' => 'Bon app', 'address' => '12, rue des Bouchers', 'city' => 'Marseille', 'cap' => '13008', 'country' => 'France'),
	array('name' => 'Bottom Dollar Marketse', 'address' => '23 Tsawassen Blvd', 'city' => 'Tsawassen', 'cap' => 'T2F 8M4', 'country' => 'Canada'));

$conn= mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);

foreach ($person as $people)
{
$names['name'] = mysqli_real_escape_string($conn,$people['name']);
$addressess['address'] = mysqli_real_escape_string($conn,$people['address']);
$citiess['citiess'] = mysqli_real_escape_string($conn,$people['city']);
$capss['capss'] = mysqli_real_escape_string($conn,$people['cap']);
$countriess['countriess'] = mysqli_real_escape_string($conn,$people['country']);
$insert = mysqli_query($conn,"INSERT INTO customers (id,name,address,city,cap,country) VALUES ('',$names[name],$addressess[address],$citiess[citiess],$capss[capss],$countriess[countriess])");
}

if ($insert === TRUE)
echo 'Province inserite con successo'.'<br>';
else 
echo 'Error: '. $insert . '<br>' . $conn->error;

$conn->close();
?>
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Sono riuscito ad inserire tutti i record. Ora tramite select count vorrei estrapolare il numero di ordini effettuati da un utente a mia scelta, ottengo un errore, ma non viene visualizzato quale

PHP:
<?php

$conn = mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);

$select = mysqli_query($conn,"SELECT COUNT(customerid) AS number FROM orders WHERE customerid=7");

if ($select === TRUE)
{
$data=mysql_fetch_row($select);
echo $data['number'];
}
else 
echo 'Errore: '.mysqli_error($conn);

$conn->close();

?>
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Non è un errore. In realtà non entra nella condizione if($select === TRUE) perché appunto è diverso da true.
Guarda nel manuale: la variabile $select ora contiene i dati che tu hai chiesto e non true.
Al massimo puoi scrivere la condizione in questo modo:
PHP:
if ($select != FALSE)
In quanto (come dice il manuale) $select avrà valore false in caso di fallimento della query.
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
sempre tendando di estrapolare il numero di ordini effettuati da ogni singolo acquirente, riscontro degli errori

PHP:
<?php

$conn = mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error);

echo '<table border="1">';

for ($i=1;$i<20;$i++)
{
$select = mysqli_query($conn,"SELECT COUNT(customerid) FROM orders WHERE customerid={$i}");
while($row = mysqli_fetch_assoc($select))
{
echo $row[$i];
}
}

mysqli_free_result($select);

$conn->close();

?>

PHP:
Notice: Undefined offset: 0 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\esercizipreesame\numeroordini.php on line 12
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Per estrapolare il numero di ordini effettuati da ogni singolo utente basta fare:
PHP:
<?php 

$conn = mysqli_connect('127.0.0.1','root','','preesame') or die("Connection failed: " . $conn->connect_error); 

echo '<table border="1">'; 

$select = mysqli_query($conn,"SELECT COUNT(*) as n_ordini, customerid FROM orders GROUP BY (customerid)"); 
while($row = mysqli_fetch_assoc($select)) 
{ 
echo $row["customerid"]." ha effettuato ".$row["n_ordini"]." ordini"; 
} 

mysqli_free_result($select); 

$conn->close(); 

?>

Ci potrebbero essere degli errori perché non l'ho testato.
Fammi sapere.
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Problema risolto, pero' ho un altra domanda. E' possibile raggruppare queste 3 query in una sola

PHP:
$pant = mysqli_query($conn,"SELECT COUNT(tipo) FROM adidas WHERE tipo='pantalone'");
	$scarpe = mysqli_query($conn,"SELECT COUNT(tipo) FROM adidas WHERE tipo='scarpe'");
	$maglie = mysqli_query($conn,"SELECT COUNT(tipo) FROM adidas WHERE tipo='t-shirt'");
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
PHP:
$query= mysqli_query($conn,"SELECT COUNT(*) as n_ricorrenze, tipo FROM adidas GROUP BY tipo");
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
R INSERT INTO tabella non funziona Classic ASP 2
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
MarcoGrazia [PDO] insert che non inserisce e non da errori PHP 1
MarcoGrazia Insert into che da errore: numero di parametri non validi.... MySQL 7
Monital [risolto] insert into if select non presente MySQL 7
S INSERT e UPDATE non funzionano PHP 1
A insert funziona in server locale ma non in remoto MySQL 7
P Access: recuperare Indice dopo un insert into MS Access 0
Z problemi con foreach insert into PHP 10
Y INSERT INTO PHP 0
M più insert tramite while loop PHP 1
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
G Insert into select - Aiuto MySQL 0
L Insert php sql da una form multipla PHP 6
A [PHP] Problema query insert [RISOLTO] PHP 14
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
P [PHP] INSERT e UPDATE PHP 1
D [ASP] Mysql insert e update Classic ASP 2
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
trattorino [PHP] problema entrata immagini insert PHP 1
C [Visual Basic] Errore INSERT su DB MySQL (VB.Net) Visual Basic 4
3_g errore con mysql insert in PDO PHP 29
Merlina3377 php insert dati su tabella sql PHP 9
T [PHP] impedire un doppio INSERT INTO dopo reload della pagina PHP 3
daniele8808 Insert a converted php array in a js object PHP 4
P [MySQL] Query su DB 1 e Insert su DB 2 PHP 11
Laskot Query al DB con php (INSERT) PHP 2
P [PHP] merge di 2 tabelle e insert su terza tabella PHP 15
giancadeejay [PHP] INSERT into tabella tramite scelta checkbox PHP 0
E [PHP] problema insert query PHP 9
O errore INSERT con oggeto datetime MySQL 2
A insert ed upload PHP 1
E Problemi auto increment con query Insert Into Select MySQL 2
A Insert multiple a partire da form html PHP 3
stellare21 insert con Sqlite e PHP PHP 4
Marco_88 Aiuto con istruzione INSERT Database 8
S Insert into....on duplicate key update MySQL 2
M Problemi con la insert PHP 1
I Insert con select da tabella e valori predefiniti MySQL 2
A Insert da ciclo for PHP 4
G Inserimento loop in una INSERT query in PHP e MySQL PHP 2
H [RISOLTO]Problema connessione + insert mysqli PHP 10
L insert into da query select PHP 0
S Tempi per INSERT MySQL 7
Emix Problema Insert... PHP 10
C Aiuto INSERT INTO... ON DUPLICATE KEY UPDATE PHP 1
M Sicurezza dati form per insert e select in database PHP 11
E Problema con INSERT INTO Classic ASP 2
F insert immagini database PHP 2
F Insert nel database di un'immagine caricata PHP 11

Discussioni simili