Newsgroup: it.comp.www.php
Titolo: Principiante php e mysql

Salve,
avrei bisogno di alcune informazioni sulle istruzioni da usare per creare 
una tabella e connettermi al database incluso con WAMP, ovvero mysql.
Fino ad ora, nella mia breve esperienza, ho creato tabelle tramite query (in 
Access) e poi mi sono connesso tramite l'oggetto COM ADODB.Connection e 
ADODB.Recordset.
Ma volendo usare mysql, che istruzioni dovrei usare? Inoltre prima devo 
creare la tabella...
Grazie 

Ho cercato alcune informazioni e ho scritto questo codice in un file che ho 
chiamato init.php
<?php
 $db_host = "localhost";
 $db_user = "";
 $db_password = "";
 $db_name = "";
 $db = mysql_connect($db_host, $db_user, $db_password);
 if ($db == FALSE)
  print ("Errore connect");
 $slc = mysql_select_db($db_name, $db);
 if ($slc == FALSE)
  print ("Errore select ");
 $query = "CREATE TABLE Tabella (id INT (5) UNSIGNED NOT NULL 
AUTO_INCREMENT, testo TEXT NOT NULL)";
 if (mysql_query($query, $db))
  print "Tabella creata";
 else
  print "Errore tabella";
 mysql_close($db);
?>
Mi dice "Errore select" e "Errore tabella"
Forse ci sono parametri errati? Errori sintattici nella query? 

 Mi dice "Errore select" e "Errore tabella"
L'errore tabella ti viene appunto perche` non hai una connessione al DB.
Dovresti usare exit o die() quando non riesci a collegarti al DB, o 
perlomeno interrompere l'elaborazione e informare l'utente dell'errore 
(vedi mysql_error())
Se sei abituato con ADO, dai un'occhiata a PDO. Forse ti viene piu` 
semplice da usare che non con le funzioni a basso livello.
Bye.

 semplice da usare che non con le funzioni a basso livello.
Ma credo che se mi ci metto un po' riesco a venirne a capo, mi servirebbe 
qualche guida passo passo, anche di base. 

In pratica io con Access creavo le tabelle e poi salvavo tutto ottenendo un 
file mdb.
Come faccio a creare il database via codic php?
Credo sia questo il punto cruciale. 

 Come faccio a creare il database via codic php?
Devi spurgarti la testa di Access.
Con MySQL stai usando un database relazionale basato su linguaggio SQL. 
Devi rivedere tutti i tuoi concetti di database e tabelle.
Cerca qualche guida base su MySQL e PHP. Penso che su 
html.it
 ce ne siano 
in italiano. Oppure un bel manuale tipo MySQL for Dummies.
Bye.

 Come faccio a creare il database via codic php?
http://www.w3schools.com/php/php_mysql_create.asp

 
http://www.w3schools.com/php/php_mysql_create.asp
Grazie vado a vedere. 

 Devi rivedere tutti i tuoi concetti di database e tabelle.
Ho cercato altre guide e ho scritto questo codice che non da errore ma non 
so se sia corretto:
<?php
 $db_conn = @mysql_connect("localhost", "", "");
 if ($db_conn == FALSE)
  die ("Errore di connessione");
 @mysql_create_db("MyDB", $db_conn);
 if (@mysql_select_db("MyDB", $db_conn) == FALSE)
  die ("Errore di selezione");
 $query = "CREATE TABLE Tabella (id INT (5) UNSIGNED NOT NULL 
AUTO_INCREMENT, testo TEXT NOT NULL)";
 @mysql_query($query, "MyDB");
 $query = "insert into Tabella (testo) values ('Ciao')";
 @mysql_query($query, "MyDB");
 @mysql_close("MyDB");
?>
Grazie 

 Grazie
-- 
Ciao!
Andrew McBlues
msn: mcblues78 at 
people.it

 
http://database.html.it/guide/leggi/87/guida-mysql/
Ok, adesso la guardo.
Ho visto anche la guida suggerita da RedWiz e ho scritto questo codice che 
non da errore ma non so se sia corretto:
<?php
 $db_conn = mysql_connect("localhost", "", "");
 $query = "CREATE DATABASE MyDB";
 mysql_query($query, $db_conn);
 mysql_select_db("MyDB", $db_conn);
 $query = "CREATE TABLE Tabella (id INT AUTO_INCREMENT, testo TEXT)";
 mysql_query($query, $db_conn);
 $query = "insert into Tabella (testo) values ('Ciao')";
 mysql_query($query, $db_conn);
 mysql_close($db_conn);
?>
Ciao 

Questa guida č molto ampia, ma dando un'occhiata non credo di aver trovato 
quello che mi serve.
Ma non c'e' un esempio funzionante in cui si crea il database, le tabelle, e 
si acceda ad esse con un recordset?
Non penso sia molto diverso concettualmente da quello che facevo con Access, 
almeno per quanto riguarda l'accesso al database.
Le istruzioni per la creazione del database e delle tabelle sembrano quelle 
che ho scritto io ma non so come accedere per testarle...
Ho anche provato a scrivere istruzioni sbagliate (tipo CREATE TABL) e non 
appare alcun messaggio di errore... 

 Con MySQL stai usando un database relazionale basato su linguaggio SQL.
Access invece com'è?

 qualche guida passo passo, anche di base. 
Ma la documentazioni ufficiali di mysql e di php le hai guardate?
Gli esempi ci sono.

 Grazie vado a vedere.
prego
mi domando: perchč passare da php per la creazione del db e sue tabelle?
quello dovresti farlo con uno script sql,imho

 quello dovresti farlo con uno script sql,imho
Ma il codice sql non devo inserirlo ed eseguirlo in uno script php? 

 Gli esempi ci sono.
L'ho scaricata, ho provato la funzione mysql_create_db con WAMP la cui 
versione di PHP è la 5.2.5 e mi dice che la funzione non è definita. Sarà il 
quarto esempio che provo (peraltro ancora una volta diverso dagli altri...) 
ma non funziona mai niente.
<?php
 $conn = mysql_connect("localhost:3306", "Luigi", "");
// Ho provato alternativamente questa
mysql_query("CREATE DATABASE MyDB", $conn);
// E questa che però mi da questo errore: Fatal error: Call to undefined 
function mysql_create_db()
mysql_create_db("MyDB", $conn);
//Le altre istruzioni non so se siano giuste ma in ogni caso stampano che la 
tabella non è stata creata e che non c'e' stato l'inserimento.
 mysql_select_db("MyDB", $conn);
 $query = "CREATE TABLE Tabella (id INT AUTO_INCREMENT, testo TEXT)";
 if (mysql_query($query, $conn))
  print "Tabella creata";
 else
  print "Tabella non creata";
 $query = "insert into Tabella (testo) values ('Ciao')";
 if (mysql_query($query, $conn))
  print "Inserimento effettuato";
 else
  print "Inserimento non effettuato";
 mysql_close($conn);
?> 



Access ti nasconde quasi tutto l'SQL dietro l'interfaccia grafica. Anzi, 
ad essere precisi, Access e` solo l'interfaccia grafica. Il motore SQL si 
chiama in un altro modo (che non mi ricordo... :)
Il punto e` che in MySQL devi capire cosa e` un DB e una tabella, e che 
non hanno nessuna relazione con il file in cui vengono salvati, mentre in 
Access "un DB e` un file coi dati dentro".
E` una differenza di concetto.
Bye.

 E` una differenza di concetto.
Ma fino ad ora ho capito che la procedura in teoria č:
1. Creare una connessione
2. Utilizzare tale connessione per creare un database
3. Selezionarlo tra i database presenti (nel caso in cui ce ne fosse piů di 
uno o forse va fatto sempre?)
4. Eseguire le varie query sul database
Il punto č tutti gli esempi che ho provato sono stati inutili, eppure un 
codice simile immagino sia banale per chi ci lavora con questi ambienti.
Potreste postarmi un esempio funzionante o dirmi perché il mio non va? 

 codice simile immagino sia banale per chi ci lavora con questi ambienti.
secondo meil problema sta nel fatto che non ti curi dei permessi di mysql,
e probabilmene l'utente al quale fai eseguire lo script non ha permessi di
creazione di database.
Per questo ti dicevo di non passar da php per quella fase. Prima di usare
php devi capire mysql.

 php devi capire mysql.
Allora consigliami lo script che intendi tu, dove lo trovo in rete? Fino ad 
ora ci sono solo esempi non funzionanti. 

 ad ora ci sono solo esempi non funzionanti.
Lascia perdere per un po' PHP. Non ti serve uno script per capire MySQL, 
devi usare la sua interfaccia e leggere il suo manuale.
http://dev.mysql.com/doc/refman/5.1/en/tutorial.html
E, piu` in generale, qui:
http://dev.mysql.com/doc/
Bye.

 devi usare la sua interfaccia e leggere il suo manuale.
Ma WAMP offre la possibilitň di usare mysql da shell?
Comunque sto seguendo la guida su 
php.html.it
 e sto scaricando e 
configurando singolarmente Apache, PHP e MySQL, forse č meglio rispetto 
all'usare WAMP. 

 all'usare WAMP.
non sa, non risponde

Dopo aver smanettato a dovere ho scritto questa versione che sembra 
funzionare!
<?php
 $conn = mysql_connect("localhost", "root", "");
 $query = "CREATE DATABASE MyDB";
 if (!mysql_query($query, $conn))
  die("Creazione database: ".mysql_error());
 else
  print "Database creato<br>";
 if (!mysql_select_db("MyDB", $conn))
  die ("Database non trovato: ".mysql_error());
 else
  print "Database trovato<br>";
 $query = "CREATE TABLE Tabella (id INT AUTO_INCREMENT PRIMARY KEY, testo 
TEXT)";
 if (!mysql_query($query, $conn))
  die("Creazione tabella: ".mysql_error());
 else
  print "Tabella creata<br>";
 $query = "insert into Tabella (testo) values ('Ciao')";
 if (!mysql_query($query, $conn))
  die("Inserimento in tabella: ".mysql_error());
 else
  print "Inserimento effettualto<br>";
 mysql_close($conn);
?>
Per caso mi sai dire l'istruzione per estrarre le informazioni nella 
tabella?
Con Access usavo un oggetto di nome recordset e poi lo scorrevo con i metodi 
movenext() etc... ma qui con mysql sai indicarmi qualcosa?
Grazie 

 movenext() etc... ma qui con mysql sai indicarmi qualcosa?
NON
FARE 
CONFRONTI
CON
ACCESS

 ACCESS
Ma è solo per rendere l'idea meglio ;-) 

 Sarebbero: nomesito, user, pass?
eh, te li devono fornire loro,non ti hano dato qualcosaper accedere al db
tipo: phpmyadmin o roba del genere?

 tipo: phpmyadmin o roba del genere?
Ora do un'occhiata, purtroppo è la prima volta che provo a mettere online un 
sito dinamico e sto trovando tante cose nuove da affrontare 

Ok risolto.
Per chi ne avesse bisogno i parametri sono: localhost e il nick dell'account 
e la password non č necessaria.
Inoltre il nome del database che bisogna creare deve avere la forma my_ 
seguito dal nick dell'accout. 

 e la password non è necessaria.
rotfl, ma che davero?

 rotfl, ma che davero?
e si, c'e' scritto proprio cosi, e funziona! 

 e si, c'e' scritto proprio cosi, e funziona!
cioč io una volta saputo il tuo username posso entrare nel db e farci
quello che voglio?
non ho mai avuto un account su altervista ma:
non
ci
credo!!!!!

Andrea D'Amore ha scritto:

"access", "database" e "relazionale" non possono stare in una stessa 
frase, a meno che non sia una negazione..
Stefano

 sia una negazione..
Questo chiedevo, non è relazionale?

 metodi movenext() etc... ma qui con mysql sai indicarmi qualcosa?
Appunto perche` sei gia` abituato a ragionare a oggetti ti consigliavo 
PDO:
http://it.php.net/manual/en/pdo.connections.php
Non sottovalutare il manuale online di PHP. E` fatto molto bene e in piu` 
ha i commenti degli utenti sotto che spesso sono vitali.
Bye.

 Questo chiedevo, non č relazionale?
So che lo č, si possono definire le relazioni 1-1 e 1-Molti... č questo che 
intendi? 

 credo!!!!!
Ma non ti serve anche la password per entrare nell'account?
Cmq registrati se vuoi e dai un'occhiata... considera che ho preso il 
database di primo livello, quello gratuito, sara' anche per quello forse. 

Scusa ma tu ogni volta che devi inserire qualcosa a DB ricrei database e 
tabelle?
-- 
  Giovanni Cappellini - 
http://quacos.wordpress.com
Realizzazione siti dinamici e consulenze OpenSource:
 
http://www.weblogix.biz

 tabelle?
No perchč? 

Ah ti riferisci a quel codice... ma č solo un esempio per testare tutto in 
una volta... 

 intendi? 
No, intendo se usa il Modello Relazionale, dai post precedenti avevo 
inteso di no.

 inteso di no
Quale sarebbe il modello relazionale? 

 Access invece com'è?
Pignoleggiando, Access è un front-end.
*Di solito* si interfaccia non Ms Jet, ma non è mica obbligatorio.
ciao, f.

 frase, a meno che non sia una negazione..
Non direi.
Che faccia c...re poi è un altro discorso.
ciao, f.

 Quale sarebbe il modello relazionale? 
E' quel modello logico i cui dati sono raccolti in record di struttura 
fissa in cui l'informazione associata ai dati è pilotata dagli attributi.
L'insieme di record è una relazione (deriva dalla definizione matematica 
ma ha in più gli attributi) e si rappresenta con naturalezza in forma 
tabellare.
I db oggi sono quasi tutti basati sul Modello Relazionale, la direzione 
futura pare sia il Modello a Oggetti, per questo chiedevo informazioni 
riguardo ad Access, anche se mi sarebbe sembrato strano fosse un 
prodotto d'avanguardia.



Se vuoi un database più sicuro, e quindi un sito più sicuro, registrati 
al sito 
http://www.000webhost.com/92681.html
. Io ho già registrato vari 
siti, e tutti gratuitamente. Sono domini di secondo livello. Ed hai anche 
un comodo pannello di controllo.
-- 
Register here: 
http://www.000webhost.com/92681.html
*** 1500 MB of disk space
*** 100 GB of data transfer
*** PHP and MySQL support with no restrictions
*** cPanel control panel
*** Website Builder

 al sito 
http://www.000webhost.com/XXXXX.html
. Io ho già registrato vari 
un tempo era cattiva educazione postare link con advertising e non
segnalarlo..
ah, queste buone maniere..

 vari siti, e tutti gratuitamente. Sono domini di secondo livello
A quanto leggo no, il dominio lo devi già avere ma ti permettono di 
gestirne la risoluzione presso di loro, altrimenti ti danno i dominii di 
terzo livello gratuitamente.

 terzo livello gratuitamente.
Si, però la password non viene costruita in maniera così "decifrabile".


 Si, però la password non viene costruita in maniera così "decifrabile".
La password del dominio?



L'autore del messaggio aveva scritto
"Ok risolto.
Per chi ne avesse bisogno i parametri sono: localhost e il nick
dell'account e la password non è necessaria.
Inoltre il nome del database che bisogna creare deve avere la forma my_
seguito dal nick dell'accout."
-- 


 [CUT]
Ah, me l'ero persa.