Visualizzazione risultati 1 fino 10 di 10

Discussione: [php] problema acquisizione dati query

  1. #1
    Guest

    Predefinito [php] problema acquisizione dati query

    ho un problema riguardante il recupero dei dati in una query. una volta eseguita mi recupera tutti i dati tranne l'ultimo inserito. anche se la stampa avviene regolarmente dopo aver aggiunto un nuovo dato non mi viene recuperato. mi recuera solo fino al penultimo aggiunto. potete aiutarmi sotto vi aggiungo il codice della query

    Codice PHP:
    $cur = mysql_query ("SELECT nome, datasveglia, immagine, idricetta FROM ricetta where idutente=$id ORDER BY idricetta DESC ")
    or DIE(
    'query non riuscita'.mysql_error());

    while (
    $riga = mysql_fetch_row($cur)){

    echo
    "

    <div class='item' display='block'>
    <img id='imgtab' src="
    {$riga[2]}" alt='$riga[1]' width='200' height='200' />
    <span><i class='fa fa-play-circle'></i> <b></b><em><a href='link><label id='lbt'>
    $riga[0]</label></a></em></span>
    </div>
    </a>
    Ultima modifica di alemoppo : 23-01-2016 alle ore 02.04.11 Motivo: +tag [php]

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La query sembra corretta. Controlla che:
    • la query sia eseguita effettivamente dopo l'inserimento, non prima
    • non sia la clausola where idutente=$id ad escludere l'ultimo risultato

    Inoltre, le funzioni mysql_* sono deprecate, è il caso di considerare mysqli o PDO.

  3. #3
    Guest

    Predefinito

    grazie per avermi risposto presto.
    l'aggiunta di una nuova ricetta avviene in un'altra pagina poi quando torno nella homepage eseguo il codice sopra per ricaricare tutte le ricette solo che l'ultima non viene visualizzata.
    come posso correggere la query con mysqli e PDO? magari riesco a risolvere questa cosa così.
    grazie per l'aiuto

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La scelta tra mysql, mysqli e PDO non è collegata al problema, quindi suggerisco prima di capire come risolvere quest'ultimo e poi di modificare il codice.

    Innanzitutto:
    1. Il problema è sistematico? Se, ad esempio, inserisci 10 ricette di fila e poi torni nella homepage, vengono visualizzate fino alla nona?
    2. Se esegui la stessa query direttamente sul database (da terminale o da PHPMyAdmin), che risultati ottieni?
    3. È improbabile, ma sincerati che non sia il codice HTML ad impedire la visualizzazione della ricetta (ad esempio con qualche classe od errore di sintassi)


    Tra mysqli e PDO ti consiglio il primo, poiché la sintassi procedurale è molto simile a quella di [i]mysql[i] che già conosci (le funzioni si chiamano mysqli_* anziché mysql_*). C'è una guida introduttiva su PHP net.

    Con mysqli il tuo codice diventa:
    Codice PHP:
    $cur = mysqli_query ("SELECT nome, datasveglia, immagine, idricetta FROM ricetta where idutente=$id ORDER BY idricetta DESC ") or die('query non riuscita' . mysql_error());

    while (
    $riga = mysqli_fetch_row($cur)){
    echo
    "...";
    }

  5. #5
    Guest

    Predefinito

    Io cambierei il codice in questo:

    Codice PHP:

    $query
    = "SELECT nome, datasveglia, immagine, idricetta FROM ricetta where idutente='$id' ORDER BY idricetta DESC ";
    $result = mysqli_query($db,$query);

    while (
    $risultato = mysqli_fetch_assoc($result)) {

    echo
    "

    <div class='item' display='block'>
    <img id='imgtab' src="
    $risultato['immagine']" alt='$risultato['datasveglia']' width='200' height='200' />
    <span><i class='fa fa-play-circle'></i> <b></b><em><a href='link><label id='lbt'>
    $risultato['nome']</label></a></em></span>
    </div>
    </a>

  6. #6
    Guest

    Predefinito

    grazie per le risposte.
    ho modificato il codice inserendo una ricetta fittizia dopo aver aggiunto quella principale diciamo. e questa ricetta fittizia la elimino prima di aggiungerne un'altra e di nuovo aggiunta in seguito. cioè elimino quella fittizia, aggiungo la nuova e reinserisco quella fittizia, e ho risolto il problema anche se non è una soluzione vera e propria. grazie per i suggerimenti delle query. che apporterò. grazie ancora per l'aiuto.

    comunque per rispondere a mzanella
    la risposta alla prima domanda è si. mi fa vedere solo le prime 9
    alla seconda devo controllare anche se non credo ci siano problemi perchè nella pagina principale phpmyadmin le visualizza tutte
    per la terza non ho trovato errori perchè eseguo solo quel codice particolare in quella pagina

  7. #7
    Guest

    Predefinito

    Scusa se mi permetto, ma secondo me non puoi risolvere così, devi capire come mai non ti legge l'ultima riga, quindi fai come di mzanella usi mysqli poi prova a cambiare il modo in cui fai la query...anche se forse il problema è un altro, ma toglimi una curiosità, perchè da come descrivi il problema sembra che quando fai la query non è aggiornata all'ultimo record come dice mzanella...fai una prova inserisci la ricetta poi chiudi il browser e rientra nella pagina che fa la query e guarda se c'è l'ultima riga...Devi isolare passo passo il problema ma non puoi risolverlo aggiungendo una riga per leggere la penultima :)

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    Scusa se mi permetto, ma secondo me non puoi risolvere così, devi capire come mai non ti legge l'ultima riga, quindi fai come di mzanella usi mysqli poi prova a cambiare il modo in cui fai la query...anche se forse il problema è un altro, ma toglimi una curiosità, perchè da come descrivi il problema sembra che quando fai la query non è aggiornata all'ultimo record come dice mzanella...fai una prova inserisci la ricetta poi chiudi il browser e rientra nella pagina che fa la query e guarda se c'è l'ultima riga...Devi isolare passo passo il problema ma non puoi risolverlo aggiungendo una riga per leggere la penultima :)

    ho provato a cambiare la query e niente purtroppo ho inserito quella di mzanella e non va e non capisco il motivo. ho trovato quella soluzione solo perchè ho pochissimo tempoe non perchè non volessi risolverla. anzi mi sarebbe piaciuto capire meglio del perchè andasse così. non posso chiudere e aprire la pagina perchè deve funzionare senza che io agisca in questo modo ecco il perchè non posso fare come dici tu. ma grazie del consiglio :D

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La query è corretta (a prescindere dall'utilizzo del deprecato mysql_*).

    Segue che, quale che sia l'errore, non è lì. Escludo anche possa essere nell'inserimento, altrimenti l'ultima entrata non sarebbe mostrata nella pagina di PHPmyAdmin.

    Non ho capito cosa succede se, come suggerito da fractalcosmo, chiudi e riapri la pagina dopo aver effettuato l'inserimento -a titolo di debug, s'intende-.
    A questo punto credo sarebbe utile se tu potessi fornirci un link ad una pagina di prova, così da poter vedere in prima persona questo comportamento.

  10. #10
    Guest

    Predefinito

    Store non mi hai capito o probabilmente mi sono spiegato male io, quando c'è un problema in un codice devi analizzare dov'è il problema, chiudere e riaprire il browser è una forma di controllo, se quando riapri il browser e lanci la query ti mostra tutti i risultati vuol dire che quando tu vuoi vedere l'ultimo dato la query non è aggiornata, secondo me il problema è proprio questo, come avviene la query?
    Dimmi passo passo quello che fai perchè io non ho ben capito, tu inserisci in un'altra pagina la tua ricetta, ok ed è inserita chiamiamola pagina B...poi ovviamente torni nella pagina A e lanci la query con un tasto submit spero?oppure pretendi che sia aggiornata dinamicamente la tabella...siamo d'accordo che la pagina deve comunque essere riaggiornata per mostrarti l'ultimo dato inserito?siamo d'accordo su questo si?se tu hai due pagine aperte nella pagina A hai la tabella mostrata alle 22.00 nella pagina B inserisci un dato alle 22.01 torni nella pagina A la tabella ovviamente sarà quella delle 22 a meno che tu non aggiorni la pagina...siamo d'accordo su questo si?

    Ps:per Altervista, molto meglio la grafica in questo modo, ben fatto ;)
    Ultima modifica di fractalcosmo : 25-01-2016 alle ore 22.34.03

Tags for this Thread

Regole di scrittura

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