-
php mysql
salve..modifico il mio messaggio. sono riuscito finalmente dopo un'impresa titanica('date le mie scarse competenze') a stamparmi i dati della mia tabella. il problema e' che mi restituisce solo la prima riga della mia tabella e con tutto attaccato es: nomeemail; come posso fare per farmi stampare tutto il contenuto delle righe distanziando il testo con l'email e andando a capo ogni fine riga? boo non lo so neanche io se mi sono spiegato.grazie.
<?php
$mysqli = new mysqli("localhost", "noncecapisco", "", "my_noncecapisco");
$result = $mysqli->query('SELECT * FROM dati_utente');
if($result === FALSE)
die('Errore: '.$mysqli->error);
$riga = $result->fetch_assoc();
echo $riga['testo'];
echo $riga['email'];
?>
-
Direttamente dall'esempio della documentazione (devi prenderla come bibbia, c'è tutto!):
Codice PHP:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = $mysqli->query($query);
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
Adattando il tuo codice, dovrebbe essere una cosa del tipo:
Codice PHP:
<?php
$servername = "localhost";
$username = "noncecapisco";
$password = "";
$dbname = "my_noncecapisco";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT , FROM dati_utente";
$result = $conn->query($sql);
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
echo 'testo: '.$row["testo"].' - email: '.$row["testo"].'<br>'.PHP_EOL;
}
dove '<br>'.PHP_EOL è solo per mandare a capo.
Ciao!
-
ciao alemoppo...come va? spero bene...sei l'unico che mi risponde..grazie...vorrei provarlo ma stranamente quando faccio il form e spingo submit mi dice accesso negato per l'utente. boo ..strano eppure e' lo stesso che ieri funzionava. sai qualcosa? grazie alemoppo.
-
ho solo aperto l'index.php dove ho messo il tuo codice ...
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in /membri/noncecapisco/upload2/index2.php:70 Stack trace: #0 {main} thrown in /membri/noncecapisco/upload2/index2.php on line 70
while ($row = $result->fetch_assoc()) {
echo 'testo: '.$row["testo"].' - email: '.$row["testo"].'<br>'.PHP_EOL;
-
Da phpMyAdmin riesci a connetterti? Se sì, al 99% è un problema del codice. Se non va nemmeno phpMyAdmin allora c'è qualcosa sul database, ma non credo.
Se phpMyAdmin funziona (come credo/spero), puoi mostrare il codice che stai usando? Magari è scappato un carattere in più e non ti sei accorto.
EDIT:
Nel codice non so perché mi ha sostituito l'asterisco con la virgola, quindi non funziona. Provalo così:
Codice PHP:
$sql = "SELECT * FROM dati_utente";
Ciao!
-
si su phadmin ci entro... alemoppo il codice del form e' lo stesso di ieri sera quando ti ho detto..funziona. eccolo..
Codice PHP:
<?php
$dati = $_POST['testo'];
$mail = $_POST['email'];
$file = $_POST['file'];
$db_host = 'localhost';
$db_user = 'noncecapisco';
$db_pass = '...';
$db_name = ' my_noncecapisco';
$cn = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($cn->connect_errno) {
echo "Connessione fallita: ". $cn->connect_error . ".";
exit();
}
$sql = "INSERT INTO dati utenti (testo, email, file) VALUES ("
. "'" . $dati. "',"
. "'" . $mail . "',"
. "'" . $file . "'),";
if (!$cn->query($sql)) {
echo "Errore della query: " . $cn->error . ".";
}else{
echo "Registrazione effettuata correttamente.";
}
?>
grazie
-
Codice PHP:
$sql = "INSERT INTO dati utenti (testo, email, file) VALUES ("
"dati utenti" non ha il trattino basso, non è l'ultimo codice :wink:
Ciao!
-
si perfetto funziona...pero' mi esce tutto strano... solo testo ..non mi esce come in phadmin.. testo-email-e magari pure il file
testo: forza e coraggio - email: forza e coraggio
testo: marina - email: marina
testo: ciao - email: ciao
-
Sì scusami, errore mio:
Codice PHP:
echo 'testo: '.$row["testo"].' - email: '.$row["email"].'<br>'.PHP_EOL
Se vuoi aggiungere file, è un altro campo. Prova a concatenarlo come gli altri: lo leggi con $row["file"]
Ciao!
-
ho fatto tutto.........ho sistemato il trattino ma,
Connessione fallita: accesso negato per l'utente 'noncecapisco'@'localhost' al database 'my_noncecapisco'.
-
Molto strano, quando da quell'errore prova da phpMyAdmin.
Ciao!
-
ma quale scusa? sei un'angelo alemoppo... si....l'ho visto adesso... PS: magari potessi aggiungere anche il campo file..il form non me lo manda, o il server non lo prende. boo ...grazie sempre per la tua disponibilita'.
-
Quindi ora al database si connette? A volte funziona e a volte no?
Per il problema del file, puoi mostrarmi il codice HTML? (è sufficiente solo il form). Per "file" vorresti salvare il nome del file, immagino (?) visto che il file vero e proprio è nella cartella "upload", se non erro.
Ciao!
-
no ... al database tramite form mi da accesso negato..te l'ho detto ..a parte il trattino che mi hai segnalato su "dati utente" che ho sistemato mi da sempre acceso negato. invece l'index.php mi da questo errore:
Errore di analisi : errore di sintassi, '}' imprevisto, previsto ',' o ';' in /membri/noncecapisco/upload2/index2.php alla riga 72
echo 'testo: '.$row["testo"].' - email: '.$row["email"].'<br>'.PHP_EOL
72 }
per quanto riguarda il file...non lo so neanche io... questi giorni ti ho esasperato perche' volevo tramite database richiamare ..nome..email..e il file che caricano. ma se tu dici che e' meglio metterlo nella cartella upload, per me va bene..sei tu che sai come e'meglio. a questo punto non serve neanche che lo mando il file ...grazie.
-
Manca il punto e virgola finale:
Codice PHP:
echo 'testo: '.$row["testo"].' - email: '.$row["email"].'<br>'.PHP_EOL;
Per il file, secondo me il file va caricato come stavi facendo nella cartella "upload", però dobbiamo salvare sul database il nome del file salvato nella cartella del database, che se non erro era un nome con un numero random: in questo modo possiamo legare il file con testo ed email, altrimenti sappiamo il testo e l'email ma non consociamo quale dei tanti file salvati è quello di con quel testo ed email.
Molto strano l'errore "accesso negato", intanto sistemiamo questo, adesso non mi vengono in mente cause.
Ciao!
-
ecco ...e' proprio questo che mi manca per imparare codici php,o in generale. ma come fai a ricordare tutti i "
puntini,virgole,asterischi, doppie virgole, punti e virgole? ma la cosa che non mi entra in testa e la
concatenazione delle variabili, le stringhe, e chi piu' ne ha ne metta. PS: secondo me ci vuole un cervello
predisposto.
grazie alemoppo..sei una garanzia.
-
funziona..perfetto.grazie.
-
non avevo letto bene....
<form action="/upload-mysql.php" method="post" enctype="multipart/form-data"><big><big>
<input name="file" id="file" type="file"required="" ><br>
<input name="email" id="text" placeholder="inserisci email" style="width: 208px;" required="" type="text"><br>
<input name="testo" id="text" placeholder="nomi e citta'" style="width: 208px;" required="" type="text"><br>
-
Ok chiaro.
La parte di upload ora l'hai eliminata o c'è ancora? Perché il nome andrebbe preso da lì, non dal form.
Ciao!
-
si l'ho tolto per non creare problemi .... pensi che si puo' recuperare da qui:
$files['file']['tmp_name'] o $_FILES["file"]["name"] ?
-
Se non sbaglio, il codice era questo:
Codice PHP:
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".rand(1, 100000000).'-'.$_POST['nome'].'.'.end($temp));
A noi interessa il nome del file come viene salvato nella cartella "upload", quindi è il secondo parametro che passi a questa funzione. In pratica, sarebbe una cosa come:
Codice PHP:
/*genero il nome del file che sarà nella cartella upload e lo assegno a "file_salvato"*/
$file_salvato = rand(1, 100000000).'-'.$_POST['nome'].'.'.end($temp);
/*sposto il file caricato nella cartella upload con il nome precedentemente generato*/
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$file_salvato);
#...
#....codice di upload + database...
#...
/*inseriamo nel database il nome generato, così abbiamo corrispondenza tra file e dati/email*/
$sql = "INSERT INTO dati utenti (testo, email, file) VALUES ("
. "'" . $dati. "',"
. "'" . $mail . "',"
. "'" . $file_salvato. "')";
#...
#... codice esecuzione query ed eventuale redirect
#...
Ciao!
-
fantastico........grazie alemoppo. cosi come riesco ad accedere tramite form ci provo.
-
Sì, con tutto il codice di contorno.
Però, invece del nome del file, immagino tu voglia mostrare l'immagine caricata dall'utente, sapresti farlo? Occorre scrivere
Codice:
<img src="url immagine">
Ciao!
-
penso che dovrei associare un array con il $files e $file_salvato...piu' di cosi non so dirti..
-
e allora ho detto una stronzata....
-
Intanto cerca di far funzionare upload + scrittura sul db delle informazioni. Poi ci sarà il ciclo foreach() che mostra tutto il contenuto del database.
Il passo successivo è trasformare il nome del file nell'immagine, ma questo facciamolo solo dopo.
Ciao!
-
buon giorno alemoppo....scusa se ti rispondo adesso ma ieri sera sono crollato.
allora ...oggi la connessione al server da form , rifunziona.
ho fatto tutto... salvo i dati delle caselle testo ed email nel database, con in piu' la voce sotto il
file.."mi dice blob 10 kb".
e nella cartella upload ho il file caricato senza estensione.
grazie alemoppo.
mi e' venuta in mente una cosa:
io pensavo che tutto questo lavoro del database servisse per avere un'immagine associata insieme ai vari campi
,email, e testo, per poi poterli visualizzare insieme.
ma io nel database ho solo il nome ho anche l'immagine?. boo sinceramente non ho capito.
-
Hai appunto solo il nome dell'immagine. Il file vero e proprio poi lo si va a prendere dalla cartella "upload". In realtà è possibile inserire anche l'immagine nel db ma è molto più difficile poi sia salvarla sia mostrarla. Per mostrarla, adesso, è sufficiente usare il tag html <img> con il path dell'immagine in upload. Se non dovessi riuscirci, fammi sapere.
Ciao!
-
ciao alemoppo .... grazie per la risposta. mmm pero' mi sa che non ci siamo capiti...ah ah...
questo discorso del tag img lo devo fare sempre io manualmente? o e' possibile registrarlo in automatico e farlo
eseguire da solo?
-
Certo che deve farlo in automatico lo script: ad esempio per mostrare una immagine, puoi fare:
Codice PHP:
echo '<img src="./upload/immagine.jpg">';
Ovviamente, invece di "immagine.jpg" devi inserirci il nome preso dal database.
Tutto l'output di PHP è HTML.
Ciao!