Visualizzazione risultati 1 fino 29 di 29
Like Tree5Likes
  • 1 Post By darbula
  • 1 Post By darbula
  • 1 Post By
  • 1 Post By blackskyisback
  • 1 Post By blackskyisback

Discussione: richiamare dati dal database

  1. #1
    Guest

    Predefinito richiamare dati dal database

    ciao ragazzi eccomi tornato mi sto dilettando ad effettuare delle funzioni in php mysql e spero di spiegarmi al meglio

    ho una tabella in cui salvo l'immagine sia sul database che nella cartella upload ed è così composto

    id_logo: autoincrement
    image: salva il nome dell'immagine
    id: salva l'id dell'utente che ha effettuato l'upload dell'immagine

    id dell'utente viene preso dalla tabella login che è così composta

    id: autoincrement
    username: username dell'utente
    password: la password utilizzata


    adesso la mia domanda come faccio a dirgli che mi deve restituire l'immagine dell'id 1 e non tutte ?

    ho provato questa ma non mi stampa nulla

    Codice PHP:
    <?php require_once "config.php";
    $sql = "SELECT * FROM htop where id=" . $_GET["id"] . "'";

    if(
    $result = mysqli_query($link, $sql)){
    if(
    mysqli_num_rows($result) > 0){
    "<table>";
    "<tr>";
    "<th>id</th>";
    "</tr>";
    while(
    $row = mysqli_fetch_array($result)){
    "<tr>";
    "<td>" . $row['id'] . "</td>";
    "</tr>";
    }
    "</table>";
    // Close result set
    mysqli_free_result($result);
    } else{
    "No records matching your query were found.";
    }
    } else{
    "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }

    // Close connection
    mysqli_close($link);
    ?>
    come sempre grazie

  2. #2
    italiancafe non è connesso Utente Blog
    Data registrazione
    03-08-2021
    Messaggi
    25

    Predefinito

    $sql = "SELECT * id FROM htop WHERE id='1'";
    Prova così non sono molto pratico di SQL
    Ultima modifica di italiancafe : 11-08-2021 alle ore 20.04.58

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da italiancafe Visualizza messaggio
    $sql = "SELECT * id FROM htop WHERE id='1'";
    Prova così non sono molto pratico di SQL

    buongiorno, grazie della risposta avevo già provato questo metodo e funziona ma quando si è all'interno della scheda l'inserimento dei dati cambia in base all'utente in questo caso id che potrebbe essere anche 2

  4. #4
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    io ho questo e funziona

    Codice PHP:

    <?php

    require_once("connetti.php");

    $actor_id = $_GET["id"];
    $query = mysql_query ("
    SELECT
    actor.*
    FROM
    actor
    WHERE actor.actor_id="
    . (int)$actor_id) or die ("Error in query: " . mysql_error());

    $row = mysql_fetch_array ($query);



    ?>

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da blackskyisback Visualizza messaggio
    io ho questo e funziona

    Codice PHP:

    <?php

    require_once("connetti.php");

    $actor_id = $_GET["id"];
    $query = mysql_query ("
    SELECT
    actor.*
    FROM
    actor
    WHERE actor.actor_id="
    . (int)$actor_id) or die ("Error in query: " . mysql_error());

    $row = mysql_fetch_array ($query);



    ?>
    grazie

    scusa ma questo actor come posso modificarlo con il mio ?
    grazie

  6. #6
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Codice PHP:
    SELECT htop.* FROM htop where id=" . $_GET["id"] . "'"

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da blackskyisback Visualizza messaggio
    Codice PHP:
    SELECT htop.* FROM htop where id=" . $_GET["id"] . "'"
    Codice PHP:
    <?php

    require_once "connetti.php";

    $id = $_GET["id"];
    $link = mysql_query ("SELECT htop.* FROM htop where id=" . $_GET["id"] . "'"

    $row = mysql_fetch_array ($link);



    ?>
    va bne cosi ?

  8. #8
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Sarebbe http://www.example.com/?id=3
    Codice PHP:
    <?php

    require_once "connetti.php";
    //questo file dovrebbe restituire la connessione con la variabile $link

    $id = (int) $_GET["id"];
    $result = mysqli_query($link, "SELECT * FROM htop where id=$id");
    //forza array associativo
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);



    ?>
    Cioè come lo stile procedurale di mysqli https://www.php.net/manual/en/mysqli.query.php
    Ultima modifica di darbula : 12-08-2021 alle ore 10.59.09

  9. #9
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    stai mischiando il tuo codice con il mio, sopra usi mysqli e qui mysql (che e' vecchio, ma io lo programmato 3 anni)

    inoltre connetti.php sono i parametri di connessione al database mio, dubito che funzioneranno con il tuo

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Sarebbe http://www.example.com/?id=3
    Codice PHP:
    <?php

    require_once "connetti.php";
    //questo file dovrebbe restituire la connessione con la variabile $link

    $id = (int) $_GET["id"];
    $link = mysqli_query ($link, "SELECT htop.* FROM htop where id=$id");
    //forza array associativo
    $row = mysqli_fetch_array($link, MYSQLI_ASSOC);



    ?>
    Cioè come lo stile procedurale di mysqli https://www.php.net/manual/en/mysqli.query.php
    sono sempre più sfiduciato dai miei errori (sono uno studente e stò imparando)

    allora questa è il mio file connetti quindi la mia connessione
    Codice PHP:
    <?php
    define
    ('DB_SERVER', 'localhost');
    define('DB_USERNAME', 'username');
    define('DB_PASSWORD', 'password');
    define('DB_NAME', 'nome db');

    /* Attempt to connect to MySQL database */
    $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

    // Check connection
    if($link === false){
    die(
    "ERROR: Could not connect. " . mysqli_connect_error());
    }
    ?>
    ho inserito il tuo codice ho modificato $con con $link nulla non vedo nulla
    <?php echo $row["image"]; ?>

  11. #11
    Guest

    Predefinito

    aspè forse ho capito, il codice che mi stai passando è per (esempio)se clicco su un pulsante e visualizzo l'id nell'url

    questo che sto facendo non è così è tutto su una pagina dove io inserisco l'immagine e quindi di conseguenza mi deve restituire l'immagine da me caricata che ho id 1 poi se entro con un'altro utente che ha id 2 visualizzo l'immagine caricata

  12. #12
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Si esattamente $_GET è la query string della url. http://forum.it.altervista.org/php-m...ml#post1474114 ho modificato il codice, nella tua citazione precedente stai usando il vecchio codice, avevo fatto un errore prima :)
    Ultima modifica di darbula : 12-08-2021 alle ore 10.28.49

  13. #13
    Guest

    Predefinito

    il problema (forse) che il tutto si svolge su una pagina e quindi non riconosce l'id dell'utente collegato ?

    ecco come è strutturato

    io effettuo il login e vengo indirizzato alla pagina welcome.
    nella pagina welcome ho il pulsante dove carico nel db un'immagine e mi salva il relativo url dell'utente attivo (esempio id 1) il nome dell'immagine e l'id_logo autoincrement fin qui funziona perfetamente


    ora il problema sta ne fatto che se provo (con il codice inviatomi gentilmente) una volta che ho caricato l'immagine non visualizzo nulla se lo richiamo tramite echo row

  14. #14
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Dovrai cercare la presenza di quel determinato id nella tabella htop
    Anche se io uso la query $id è una variabile (variabile significa potrebbe assumere qualsiasi valore tu vuoi impostare), imposta su un id esistente.
    phpmyadmin
    Il succo del discorso non cambia.
    Ultima modifica di darbula : 12-08-2021 alle ore 10.48.25

  15. #15
    Guest

    Predefinito

    se il test lo faccio nel db funziona impostando per esempio id 1 mi restituisce il valore che desidero visualizzare

  16. #16
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    phpmyadmin in alto ti mostra la query da effettuare.
    Nel tuo php effettua var_dump($row); dopo la creazione della variabile $row.
    Non mostrare nulla, se contiene password etc. Rettifica codice di esempio. A breve è aggiornato.
    http://forum.it.altervista.org/php-m...ml#post1474114
    * significa tutti i campi from nome_tabella
    Ultima modifica di darbula : 12-08-2021 alle ore 10.59.44

  17. #17
    Guest

    Predefinito

    niente sto cercando di imparare al meglio allego i mie file

    questo è il config.php
    Codice PHP:
    <?php
    define
    ('DB_SERVER', 'localhost');
    define('DB_USERNAME', 'username');
    define('DB_PASSWORD', 'password');
    define('DB_NAME', 'nome db');

    /* Attempt to connect to MySQL database */
    $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

    // Check connection
    if($link === false){
    die(
    "ERROR: Could not connect. " . mysqli_connect_error());
    }
    ?>
    questo è il login.php
    Codice PHP:
    <?php
    // Initialize the session
    session_start();

    // Check if the user is already logged in, if yes then redirect him to welcome page
    if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location: welcome.php");
    exit;
    }

    // Include config file
    require_once "config.php";

    // Define variables and initialize with empty values
    $username = $password = "";
    $username_err = $password_err = $login_err = "";

    // Processing form data when form is submitted
    if($_SERVER["REQUEST_METHOD"] == "POST"){

    // Check if username is empty
    if(empty(trim($_POST["username"]))){
    $username_err = "Please enter username.";
    } else{
    $username = trim($_POST["username"]);
    }

    // Check if password is empty
    if(empty(trim($_POST["password"]))){
    $password_err = "Please enter your password.";
    } else{
    $password = trim($_POST["password"]);
    }

    // Validate credentials
    if(empty($username_err) && empty($password_err)){
    // Prepare a select statement
    $sql = "SELECT id, username, password FROM users WHERE username = ?";

    if(
    $stmt = mysqli_prepare($link, $sql)){
    // Bind variables to the prepared statement as parameters
    mysqli_stmt_bind_param($stmt, "s", $param_username);

    // Set parameters
    $param_username = $username;

    // Attempt to execute the prepared statement
    if(mysqli_stmt_execute($stmt)){
    // Store result
    mysqli_stmt_store_result($stmt);

    // Check if username exists, if yes then verify password
    if(mysqli_stmt_num_rows($stmt) == 1){
    // Bind result variables
    mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);
    if(
    mysqli_stmt_fetch($stmt)){
    if(
    password_verify($password, $hashed_password)){
    // Password is correct, so start a new session
    session_start();

    // Store data in session variables
    $_SESSION["loggedin"] = true;
    $_SESSION["id"] = $id;
    $_SESSION["username"] = $username;

    // Redirect user to welcome page
    header("location: welcome.php");
    } else{
    // Password is not valid, display a generic error message
    $login_err = "Invalid username or password.";
    }
    }
    } else{
    // Username doesn't exist, display a generic error message
    $login_err = "Invalid username or password.";
    }
    } else{
    echo
    "Oops! Something went wrong. Please try again later.";
    }

    // Close statement
    mysqli_stmt_close($stmt);
    }
    }

    // Close connection
    mysqli_close($link);
    }
    ?>

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <style>
    body{ font: 14px sans-serif; }
    .wrapper{ width: 360px; padding: 20px; }
    </style>
    </head>
    <body>
    <div class="wrapper">
    <h2>Login</h2>
    <p>Please fill in your credentials to login.</p>

    <?php
    if(!empty($login_err)){
    echo
    '<div class="alert alert-danger">' . $login_err . '</div>';
    }
    ?>

    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
    <div class="form-group">
    <label>Username</label>
    <input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>">
    <span class="invalid-feedback"><?php echo $username_err; ?></span>
    </div>
    <div class="form-group">
    <label>Password</label>
    <input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>">
    <span class="invalid-feedback"><?php echo $password_err; ?></span>
    </div>
    <div class="form-group">
    <input type="submit" class="btn btn-primary" value="Login">
    </div>
    <p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
    </form>
    </div>
    </body>
    </html>
    mentre questa è la pagina welcome.php dove carico le img e dove vorrei visualizzarle in base all'utente collegato
    Codice PHP:
    <?php
    // Initialize the session
    session_start();

    // Check if the user is logged in, if not then redirect him to login page
    if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
    }
    ?>

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Welcome</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/personal.css">
    <style>
    body{ font: 14px sans-serif; text-align: center; }
    </style>
    </head>
    <body>
    <h1 class="my-5 nome">Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome edit template.</h1>
    <p>
    <a href="logout.php" class="btn btn-danger ml-3">Esci dal tuo Account</a>
    </p>
    <hr>
    <div class="container">
    <div class="row">
    <h3>Inserimento Logo e Slogan</h3>
    </div>
    <!-- inserimento logo e slogan -->
    <div class="row">
    <div class="col-sm-6" style="background-color:yellow;">
    <form action="loadlogo.php" method="post" enctype="multipart/form-data">
    <input type="file" name="upfile">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000">
    <br>
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($_SESSION["id"]); ?> ">
    <br>

    <input type="submit" name="submit" class="btn btn-secondary btn-sm" value="Invia il file">
    </form>


    <?php

    require_once "config.php";
    //questo file dovrebbe restituire la connessione con la variabile $link

    $id = (int) $_GET["id"];
    $result = mysqli_query($link, "SELECT htop.* FROM htop where id=$id");
    //forza array associativo
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

    ?>

    </div>
    <div class="col-sm-6" style="background-color:orange;">

    pippo
    <?php echo $row["image"]; ?>
    </div>
    </div>
    <!-- fine -->
    </div>
    </body>
    </html>
    tabella del database

    users:
    id - username - password

    htop:
    id_logo -image - id


    almeno per capire i miei errori
    grazie
    Ultima modifica di puntifedelta : 12-08-2021 alle ore 11.19.19

  18. #18
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Devi modificare con il codice aggiornato, prima erroneamente ho chiamato i campi htop.* mentre dovrà *
    http://forum.it.altervista.org/php-m...ml#post1474114
    Dai è banale filtrare i risultati con la clausola WHERE nome_campo='valore_stringa' se intero WHERE nome_campo=3
    Ultima modifica di darbula : 12-08-2021 alle ore 11.31.11

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Devi modificare con il codice aggiornato, prima erroneamente ho chiamato i campi htop.* mentre dovrà *
    http://forum.it.altervista.org/php-m...ml#post1474114
    Dai è banale filtrare i risultati con la clausola WHERE nome_campo='valore_stringa' se intero WHERE nome_campo=3
    si visto modificato da htop* a * ma il risultato è sempre lo stesso

    Codice PHP:
    <?php

    require_once "config.php";
    //questo file dovrebbe restituire la connessione con la variabile $link

    $id = (int) $_GET["id"];
    $result = mysqli_query($link, "SELECT * FROM htop where id=$id");
    //forza array associativo
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

    ?>

    </div>
    <div class="col-sm-6">

    richiamo il nome dell'immagine con questo
    <?php echo $row["image"]; ?>
    </div>

  20. #20
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Sostituisci WHERE id=$id con $_SESSION['id'] senza creare la variabile $id in precedenza (nel mio codice fornito in precedenza, s'intende).
    http://forum.it.altervista.org/php-m...ml#post1474114
    Secondo te perché memorizza $_SESSION['id']? Risposta ti occorre che puoi conoscere l'id dell'utente, senza effettuare nuovamente il login
    $_SESSION per la maggior parte delle volte, vuol dire che invia un COOKIE (il browser) e sarà memorizzato in un file (azione predefinita di php) nel tuo server, per riconoscerlo su usi futuri
    Ultima modifica di darbula : 12-08-2021 alle ore 12.04.52

  21. #21
    Guest

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Sostituisci WHERE id=$id con $_SESSION['id'] senza creare la variabile $id in precedenza (nel mio codice fornito in precedenza, s'intende).
    http://forum.it.altervista.org/php-m...ml#post1474114
    grazie della risposta

    errore
    PHP Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

    naturalmente ho eliminato questo $id = (int) $_GET["id"];
    e sostituito SELECT * FROM htop $_SESSION['id']
    Ultima modifica di puntifedelta : 12-08-2021 alle ore 12.05.29

  22. #22
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Ehm stringa php e stringa mysql sono due cose distinte.
    Codice PHP:
    $result = mysqli_query($link, "SELECT * FROM htop where id=$_SESSION['id']");
    dovrai sostituirlo da tutto questo codice http://forum.it.altervista.org/php-m...ml#post1474125
    Chissà? Dov'era presente (ovviamente scherzo) WHERE id=$id? Sostituiscilo
    Tieni fedelmente cura che nel database si deve chiamare in minuscolo id, se vorrai vederlo in $row['id'], stesso discorso per tutti i campi coinvolti.
    Ultima modifica di darbula : 12-08-2021 alle ore 12.13.02
    puntifedelta likes this.

  23. #23
    Guest

    Predefinito

    si infatti ti stavo scrivendo proprio ora, questa è quella giusta e funziona
    Codice PHP:
    <?php

    require_once "config.php";
    //questo file dovrebbe restituire la connessione con la variabile $link

    $result = mysqli_query($link, "SELECT * FROM htop where id='".$_SESSION['id']."'");
    //forza array associativo
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

    ?>

  24. #24
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Lo so che funziona, prego per il tuo grazie implicito.. si si vede che sei felice di aver risolto "il problema", che poi è solo testo in realtà.
    Sai non penso che AUTOINCREMT abbia necessità di essere tra apici poiché in realtà è un intero in mysql.. però comunque lo digerisce anche se tra apici (significa stringa, però se sequenza numerica verrà convertita implicitamente da mysql).
    EDIT:
    Codice PHP:
    "SELECT * FROM htop where id={$_SESSION['id']}"
    dovrebbe anche accettare questa sintassi. (Così il parser php sa che è un array, mentre a mysql passo sequenza numerica poiché la stringa interpretata da php sarà WHERE id=3).
    Ultima modifica di darbula : 12-08-2021 alle ore 12.30.49
    puntifedelta likes this.

  25. #25
    Guest

    Predefinito

    io ringrazio sempre voi per la vostra pazienza sono uno studente ho 16 anni , e questo mi piace come ho sempre scritto in questo forum imparo molto piu da voi e dalle ricerche su internet che a scuola anche se serve
    blackskyisback likes this.

  26. #26
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Citazione Originalmente inviato da puntifedelta Visualizza messaggio
    io ringrazio sempre voi per la vostra pazienza sono uno studente ho 16 anni , e questo mi piace come ho sempre scritto in questo forum imparo molto piu da voi e dalle ricerche su internet che a scuola anche se serve
    Anche io ho imparato tutto da solo, naturalmente non sono un programmatore, solo voglia d'imparare, sono 3 anni che sono su un progetto scritto interamente in php (digiuno del codice), credimi, se ce lo fatta io (ancora devo percorrere molta strada pero') figurati se non ci riesci tu che sei anche agevolato dalla scuola.
    E se la scuola non aiuta allora ci pensano i guru di questo forum.
    puntifedelta likes this.

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Lo so che funziona, prego per il tuo grazie implicito.. si si vede che sei felice di aver risolto "il problema", che poi è solo testo in realtà.
    Sai non penso che AUTOINCREMT abbia necessità di essere tra apici poiché in realtà è un intero in mysql.. però comunque lo digerisce anche se tra apici (significa stringa, però se sequenza numerica verrà convertita implicitamente da mysql).
    EDIT:
    Codice PHP:
    "SELECT * FROM htop where id={$_SESSION['id']}"
    dovrebbe anche accettare questa sintassi. (Così il parser php sa che è un array, mentre a mysql passo sequenza numerica poiché la stringa interpretata da php sarà WHERE id=3).
    si provato e funziona alla grande

    grazie ancora

  28. #28
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    puntifedelta ciao,

    vai su questo sito, ci sono progetti gia' pronti in cui si puo' scaricare anche il codice

    https://www.sourcecodester.com/php
    Ultima modifica di blackskyisback : 12-08-2021 alle ore 12.54.11
    puntifedelta likes this.

  29. #29
    Guest

    Predefinito

    Citazione Originalmente inviato da blackskyisback Visualizza messaggio
    puntifedelta ciao,

    vai su questo sito, ci sono progetti gia' pronti in cui si puo' scaricare anche il codice

    https://www.sourcecodester.com/php
    grazie per il link

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •