|
Forum Flash, Actionscript, PHP e MySQL
|
|
|
|
|
|
| Autore |
Messaggio |
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto: mysqli: Fastidi con inserimento dati
Inviato: 22.01.07 | 01:21 |
|
|
Allora ho creato un semplice script in php che genera un'ipotetico ATLETA con i suoi valori (età,altezza,peso,etc...) messi a caso utilizzando la funzione rand(x,y) ovviamente dichiarati prima..
Ma una volta che nella pagina php mi genera questo "pseudo atleta" , non riesco a capire perchè non me lo inserisce nel database di mysql...
sbaglio qualcosa ?
la query per l'inserimento dei dati creati dove diavolo devo metterlo ?
Vi prego aiutatemi, son circa un meetto che leggo qualsiasi articoli in giro...ma nulla!
Il codice che uso per inserire i dati dell'atleta creato è il seguente:
| Codice: | <?php
$query="INSERT INTO 'giocatori' ('Eta', 'Altezza', 'Peso', 'Forma', 'Morale', 'Impegno', 'Esperienza', 'Resistenza', 'Velocita', 'Forza', 'Agilita', 'Aquaticita', 'Propulsione')
VALUES ('$vareta', '$varalt', '$varpeso', '$varform', '$varmor', '$varimp', '$varexp', '$varres', '$varvel', '$varforz', '$varagil', '$varaqua', '$varprop')";
?> |
Fatemi sapere qualcosa  |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 22.01.07 | 02:12 |
|
|
Ciao checo,
benvenuto nel Forum.
Questa è la query testuale, do per scontato che poi la invierai usando il metodo: mysql_query()
Non ti da nessun errore?
Prova così:
| Codice: | <?php
$query = "INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Aquaticita, Propulsione)
VALUES ('$vareta', '$varalt', '$varpeso', '$varform', '$varmor', '$varimp', '$varexp', '$varres', '$varvel', '$varforz', '$varagil', '$varaqua', '$varprop')";
$result = mysql_query($query);
//aggiungo questa riga per farti visualizzare la query ocn i valori e se eventualmente ci sono degli errori
echo $query . mysql_error();
?> |
____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 22.01.07 | 11:28 |
|
|
| Coach ha scritto: | Ciao checo,
benvenuto nel Forum.
Questa è la query testuale, do per scontato che poi la invierai usando il metodo: mysql_query()
Non ti da nessun errore?
Prova così:
| Codice: | <?php
$query = "INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Aquaticita, Propulsione)
VALUES ('$vareta', '$varalt', '$varpeso', '$varform', '$varmor', '$varimp', '$varexp', '$varres', '$varvel', '$varforz', '$varagil', '$varaqua', '$varprop')";
$result = mysql_query($query);
//aggiungo questa riga per farti visualizzare la query ocn i valori e se eventualmente ci sono degli errori
echo $query . mysql_error();
?> |
|
Grazie per aver tempestivamente... (cavoli ho aspettato fino all'una poi son corollato)
Allora, ho aggiunto quello che mi hai scritto tu e ora nella pagina mi vedere queste righe (oltre al giocatore creato):
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programmi\xampp\htdocs\xampp\maxiswim\index.php on line 34
| Citazione: | Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Programmi\xampp\htdocs\xampp\maxiswim\index.php on line 34
INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione) VALUES ('29', '148', '92', '12', '20', '20', '3', '10', '11', '10', '4', '4', '4')Access denied for user 'ODBC'@'localhost' (using password: NO) |
|
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 22.01.07 | 13:27 |
|
|
Ho provato a creare un utente di mysql 'ODBC'@'localhost'
e ora mi dice questo:
| Citazione: |
INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione) VALUES ('14', '154', '67', '14', '20', '11', '3', '10', '5', '1', '10', '2', '2')No database selected |
...quando il database lo selezionato fin dall'inizio... ufff  |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 23.01.07 | 10:54 |
|
|
Guarda io usavo questo per collegarmi al database:
| Codice: | <?php>
$mysql = new mysqli('xx', 'xxx', 'xxx', 'xxx');
if(!$mysql)
{ die("Errore di connessione al database, impossibile procedere"); } |
e qui di seguito l'intero codice:
| Codice: | {
$vareta = rand(14,30);
$varalt = rand(135,200);
$varpeso = rand(45,100);
$varform = rand(11,20);
$varmor = rand(14,20);
$varimp = rand(11,20);
$varexp = 3;
$varres = rand(1,11);
$varvel = rand(1,11);
$varforz = rand(1,11);
$varagil = rand(1,11);
$varaqua = rand(1,11);
$varprop = rand(1,11);
$result1 = $mysql->query("SELECT Nomi AS nom FROM Nomi ORDER BY rand()");
$res1 = $result1->fetch_assoc();
$result2 = $mysql->query("SELECT Cognomi AS cog FROM Cognomi ORDER BY rand()");
$res2 = $result2->fetch_assoc();
}
$query = "INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione)
VALUES ('$vareta', '$varalt', '$varpeso', '$varform', '$varmor', '$varimp', '$varexp', '$varres', '$varvel', '$varforz', '$varagil', '$varaqua', '$varprop')";
$query_results = mysql_query($query);
//aggiungo questa riga per farti visualizzare la query ocn i valori e se eventualmente ci sono degli errori
echo $query . mysql_error();
//for ($i=0; $i<=10; $i++)
?>
<html>
<head>
<title>L'età</title>
</head>
<body>
<p>Il Giocatore creato è <?php echo $res1[nom]; ?>
<?php echo $res2[cog] ?> e ha le seguenti caratteristiche: <br>
- Età: <?php echo $vareta; ?> <br>
- Altezza: <?php echo $varalt; ?> <br>
- Peso: <?php echo $varpeso; ?> <br>
- Forma: <?php echo $varform; ?> <br>
- Morale: <?php echo $varmor; ?> <br>
- Impegno: <?php echo $varimp; ?> <br>
- Esperienza: <?php echo $varexp; ?> <br><br>
- Resistenza: <?php echo $varres; ?> <br>
- Velocità: <?php echo $varvel; ?> <br>
- Forza: <?php echo $varforz; ?> <br>
- Agilità: <?php echo $varagil; ?> <br>
- Acquaticità: <?php echo $varaqua; ?> <br>
- Propulsione: <?php echo $varprop; ?> <br>
</body>
</html> |
Pls datemi una mano  |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 23.01.07 | 12:36 |
|
|
Ma non ti da nessun errore?
A cosa servono quelle graffe che contengono le varie var e le 2 SELECT?
Ti ho postato sia un esempio di come fare la query, sia un esempio di come fare la connessione.
Vedi tu quale metodo usare ora :)
A titolo informativo, mysqli è una nuova estensione e per poterla utilizzare devi avere come requisiti minimi: PHP 5 e MySQL 4.1.3
Inoltre vi sono due metodi per scrivere codice:
1. il metodo OOP (Object-oriented programming)
2. il metodo procedurale
Ti posto l'esempio dei due differenti metodi:
Esempio 1: mysqli - Metodo OOP
| Codice: | <?php
$mysqli = new mysqli("localhost", "root", "", "name_db");
// controllo connessione
if (mysqli_connect_errno()) {
printf("Errore connessione: %s\n", mysqli_connect_error());
exit();
}
// Esempio di query
if ($result = $mysqli->query("SELECT * FROM table")) {
printf("La query ha restituito %d record.\n", $result->num_rows);
$result->close();
}
$mysqli->close();
?> |
Esempio 2: mysqli - Metodo Procedurale
| Codice: | <?php
$mysqli = mysqli_connect("localhost", "root", "", "name_db");
// controllo connessione
if (mysqli_connect_errno()) {
printf("Errore connessione: %s\n", mysqli_connect_error());
exit();
}
// Esempio di query
if ($result = mysqli_query($mysqli, "SELECT * FROM table")) {
printf("La query ha restituito %d record.\n", mysqli_num_rows($result));
mysqli_free_result($result);
}
mysqli_close($mysqli);
?> |
____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 23.01.07 | 12:51 |
|
|
| Coach ha scritto: | | Ma non ti da nessun errore? |
No, cioè nella pagina web mi viene fuori quello che ti ho scritto prima, cioè prima dell'echo mi scrive nella pagina la riga con l'INSERT etc..
INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione) VALUES ('27', '170', '89', '13', '19', '17', '3', '11', '6', '8', '11', '1', '10')No database selected
Ovviamente i VALUES sono casuali a seconda di come viene fuori.
| Coach ha scritto: |
A cosa servono quelle graffe che contengono le varie var e le 2 SELECT? |
Ok le due graffe erano superflue...
Le 2 select invece sono importanti perchè vanno a pescare, il primo un nome a caso fra quelli inseriti nel db sotto la tabella Nomi, l'altro fa la stessa cosa ma prende un Cognome random nella tabella cognomi. (a titolo informativo in mysql nel db 'xxx' ho 3 tabelle: Nomi, Cognomi, Giocatori)
Poi entrambi vengono richiamati e scritti nella pagina con le var che ha creato (sempre a random fra due num scelti da me nelle dichiarazioni di var in precedenza)
In teoria, magari scritto in maniera niubba , è giusto, solo che vorrei che quando creasse sto "xxx" di Atleta con Nome,Cognome e i suoi valori, lo salvasse nel db "xxx" sotto la tabella giocatori.
| Coach ha scritto: |
Ti ho postato sia un esempio di come fare la query, sia un esempio di come fare la connessione.
Vedi tu quale metodo usare ora :)
|
Grazie molto gentile, anche se credo di non aver capito bene a che servano e se risolvono il mio problemuccio [/i]
| Coach ha scritto: | A titolo informativo, mysqli è una nuova estensione e per poterla utilizzare devi avere come requisiti minimi: PHP 5 e MySQL 4.1.3
|
Si, li ho entrambi ;) |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 23.01.07 | 13:06 |
|
|
OK, allora adesso che ho aggiunto quel codice alla pagina, al refresh mi scrive ciò:
| Citazione: |
INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione) VALUES ('27', '200', '58', '13', '20', '12', '3', '10', '1', '4', '8', '2', '7')No database selected
Il Nuotatore creato è
Notice: Use of undefined constant nom - assumed 'nom' in C:\Programmi\xampp\htdocs\xampp\maxiswim\index.php on line 47
Francesco
Notice: Use of undefined constant cog - assumed 'cog' in C:\Programmi\xampp\htdocs\xampp\maxiswim\index.php on line 48
Talotti e ha le seguenti caratteristiche:
- Età: 27
- Altezza: 200
- Peso: 58
- Forma: 13
- Morale: 20
- Impegno: 12
- Esperienza: 3
- Resistenza: 10
- Velocità: 1
- Forza: 4
- Agilità: 8
- Acquaticità: 2
- Propulsione: 7
|
Ps: se inserisco un "Atleta" direttamente da phpMyAdmin, me lo inserisce senza nessun fastidio...  |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 23.01.07 | 13:55 |
|
|
Ok ho fatto le correzioni e ho aggiunto quello che mi avevi detto in precedenza.
Ora la cosa interessante è che non mi dice più che non ho selezionato il database, ma che c'è un Warning, il seguente:
| Citazione: | Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Programmi\xampp\htdocs\xampp\maxiswim\index.php on line 34
...(il resto lo stampa come al solito) |
Questo è il codice di adesso:
| Codice: | <?php>
$mysqli = mysqli_connect("localhost", "xxx", "xx", "xxx");
if(!$mysql)
// controllo connessione
if (mysqli_connect_errno()) {
printf("Errore connessione: %s\n", mysqli_connect_error());
exit();
}
error_reporting(E_ALL);
$vareta = rand(14,30);
$varalt = rand(135,200);
$varpeso = rand(45,100);
$varform = rand(11,20);
$varmor = rand(14,20);
$varimp = rand(11,20);
$varexp = 3;
$varres = rand(1,11);
$varvel = rand(1,11);
$varforz = rand(1,11);
$varagil = rand(1,11);
$varaqua = rand(1,11);
$varprop = rand(1,11);
//24
$result1 = $mysqli->query("SELECT Nomi AS nom FROM Nomi ORDER BY rand()");
$res1 = $result1->fetch_assoc();
$result2 = $mysqli->query("SELECT Cognomi AS cog FROM Cognomi ORDER BY rand()");
$res2 = $result2->fetch_assoc();
$query = "INSERT INTO giocatori (Eta, Altezza, Peso, Forma, Morale, Impegno, Esperienza, Resistenza, Velocita, Forza, Agilita, Acquaticita, Propulsione)
VALUES ('$vareta', '$varalt', '$varpeso', '$varform', '$varmor', '$varimp', '$varexp', '$varres', '$varvel', '$varforz', '$varagil', '$varaqua', '$varprop')";
$query_results = mysqli_query($query);
//aggiungo questa riga per farti visualizzare la query ocn i valori e se eventualmente ci sono degli errori
echo $query . mysql_error();
?> |
la parte del codice html è rimasto uguale |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 23.01.07 | 14:08 |
|
|
checo, non ci siamo.
Hai mischiato la sintassi OOP con quella procedurale... ricontrolla gli esempi che ti ho postato sopra.
. ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
checo
nuovo utente

Età: -1988
Registrato: 22/01/07 01:17
Messaggi: 18
|
Oggetto:
Inviato: 23.01.07 | 14:32 |
|
|
| Coach ha scritto: | checo, non ci siamo.
Hai mischiato la sintassi OOP con quella procedurale... ricontrolla gli esempi che ti ho postato sopra.
. |
Si scusa mi sono dimenticato di cancellare una parte del vecchio codice...
Cmq non cambia la sostanza perchè quello chenon capisco è che fa tutto giusto;
crea l'atleta con i suoi valori e prende un nome e cognome a caso dal database (precisamente dalla tabella nomi e cognomi dentro al database)
Me lo stampa nella pagina in modo corretto;
Ma invece di inserire nel databse nella tabella 'Giocatori', mi stampa sempre nella pagina php la frase INSERT INTO giocatori bla bla bla.........quando io NON gli ho detto di stampare ma di inserirlo e basta ufff |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
|
| Torna in cima |
|
|
|
|
Non puoi inserire nuovi Topic in questo forum Non puoi rispondere ai Topic in questo forum Non puoi modificare i tuoi messaggi in questo forum Non puoi cancellare i tuoi messaggi in questo forum Non puoi votare nei sondaggi in questo forum Non puoi allegare files in questo forum Non puoi downloadare gli allegati in questo forum
|
|