Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP/MySQL] explode() da query basato su idnews

  1. #1
    Guest

    Post [PHP/MySQL] explode() da query basato su idnews

    Ciao a tutti, ho un piccolo problemino...allora io ho memorizzato in un unico campo username e iduser ($user-$id) che dopo mi dovranno servire per mostrare l'username e l'id del profilo...ora ho fatto una query a parte per fare funzionare l'explode:
    Codice PHP:
    $autoreq = mysql_query("SELECT autore FROM commenti WHERE idnews= '$id'");
    $autorev = mysql_fetch_array($autoreq);
    $autore = explode("-", $autorev);
    /*
    $autore[1] = username
    $autore[2] = id
    */
    Ma non mi viene restituito niente!
    In pratica è:
    Codice PHP:
    <a href="index.php?id=$autore[2]">$autore[1]</a>
    trasformata:
    Codice PHP:
    <a href="index.php?id=32">amoxphp</a>
    Grazie 1000...ciao Davide! ^^

  2. #2
    Guest

    Predefinito

    Se non usi nessun echo o print, è normale che non ti viene visualizzato nulla!
    Ricorda poi che negli array gli indici iniziano da zero.


    Ciao!

  3. #3
    Guest

    Predefinito

    Ma il tutto è già dentro un echo...anche se ho provato a cambiare username con 0 e id con 1 ...e mi dice qst:
    Codice PHP:
    Scritto da Array
    Notice: Array to string conversion in ***.php on line 34

    Notice: Undefined index: 1 in ***.php on line 47
    Ossia il codice che ho postato...
    Grazie 1000....ciao! ^^
    Ultima modifica di sIM : 19-06-2008 alle ore 16.23.37

  4. #4
    Guest

    Predefinito

    Posta tutto lo script intero (ovviamente la parte interessata).

    Se il tutto è scritto bene, il problema va ricerca nella query. Assicurati della presenza di tali dati nella tabella, e verifica che vengano estratti correttamente (eseguendo ad esempio la query da phpmyadmin).


    ciao!

  5. #5
    Guest

    Predefinito

    Codice PHP:
    $commentiq = mysql_query("SELECT * FROM commenti WHERE idnews = '$id'");

    while(
    $commenti = mysql_fetch_array($commentiq)) {

    $autoreq = mysql_query("SELECT autore FROM commenti WHERE idnews= '$id'");
    $autorev = mysql_fetch_array($autoreq);
    $autore = explode("-", $autorev);
    /*
    $autore[0] = username
    $autore[1] = id
    */

    if($commenti["sitoweb"] == "http://www." OR $commenti["sitoweb"] == "") {

    echo
    "Scritto da <a href=\"visut.php?id=$autore[1]\">$autore[0]</a> il $commenti[data]<hr />";
    echo
    "$commenti[testo]<hr />";

    } else {

    echo
    "Scritto da <a href=\"visut.php?id=$autore[1]\">$autore[0]</a> il $commenti[data] - <a href=\"$commenti[sitoweb]\">SitoWeb</a><hr />";
    echo
    "$commenti[testo]<hr />";

    }

    }
    Funziona tutto..solo che ora mi è venuta qst esigenza di mettere username-id in un campo (autore)...ma prima con solo username funzionava tutto..
    Quindi credo che il problema sia sempre qui:
    Codice PHP:
    $autoreq = mysql_query("SELECT autore FROM commenti WHERE idnews= '$id'");
    $autorev = mysql_fetch_array($autoreq);
    $autore = explode("-", $autorev);
    Ciao! :)
    Ultima modifica di sIM : 19-06-2008 alle ore 16.29.22

  6. #6
    Guest

    Predefinito

    Gli array vanno concatenate alle stringhe, non incluse:

    echo "Scritto da <a href=\"visut.php?id=".$autore[1]."\">$autore[0]</a> il ".$commenti['data']."<hr />";
    echo $commenti['testo']."<hr />";


    ciao!

  7. #7
    Guest

    Predefinito

    Notice: Array to string conversion in ***.php on line 34

    Notice: Undefined offset: 1 in ***.php on line 48
    ...ossia:
    34
    Codice PHP:
    $autore = explode("-", $autorev);
    48
    Codice PHP:
    echo "Scritto da <a href=\"visut.php?id=".$autore[1]."\">".$autore[0]."</a> il ".$commenti['data']." - <a href=\"".$commenti['sitoweb']."\">SitoWeb</a><hr />";
    qnd il problema non è risolto.. :(
    Grazie 1000...ciao!

  8. #8
    Guest

    Predefinito

    Ripeto, esegui prima la query in phpmyadmin per vedere cosa restituisce.
    Poi stampa tutte la variabili per vederne i contenuti (e il tipo).


    ciao!

  9. #9
    Guest

    Predefinito

    Risolto non avevo messo ["0"] ad $autorev.. Scusami! :P
    Codice PHP:
    $autore = explode("-", $autorev);
    corretto
    Codice PHP:
    $autore = explode("-", $autorev["0"]);
    Grazie 1000 debug x il tuo aiuto..gentilissimo!...ciao! :)
    PS. puoi chiudere! ;)

  10. #10
    Guest

    Predefinito

    Ah ecco.
    In effetti, se quella query deve sempre restituire solo un record, sarebbe più corretto così:
    Codice PHP:
    $autoreq = mysql_query("SELECT autore FROM commenti WHERE idnews= '$id' LIMIT 1");
    $autorev = mysql_result($autoreq,0);
    $autore = explode("-", $autorev);

    ciaoooooo!

  11. #11
    Guest

    Predefinito

    Grazie 1000...puoi chiudere...ciaoooo! :)

Regole di scrittura

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