Visualizzazione risultati 1 fino 10 di 10

Discussione: [PHP/MySQL] Creazione CMS...aiuto e altro

  1. #1
    Guest

    Post [PHP/MySQL] Creazione CMS...aiuto e altro

    Ciao a tutti, apro questo post per farmi aiutare nella mia creazione del mio CMS personale ...sto facendo passi avanti ...cmq ecco il mio problema:
    Devo mostrare gli articoli per categoria...fino a qui ci sono riuscito..solo che se gli articoli sono più di 1 allora la categoria viene mostrata di nuovo:
    Prova
    asdasdas il 15 Giugno 2008
    Prova
    asdasdas il 15 Giugno 2008
    Ciao
    asdasd il 15 Giugno 2008
    Invece deve essere:
    Prova
    asdasdas il 15 Giugno 2008
    asdasdas il 15 Giugno 2008
    Ciao
    asdasd il 15 Giugno 2008
    ecco il codice:
    Codice PHP:
    echo "<h1>Visualizza Articoli</h1>";




    $queryarticoli = mysql_query("SELECT * FROM articoli ORDER BY data DESC");
    while (
    $articoli = mysql_fetch_array($queryarticoli)) {


    $querycategoria = mysql_query("SELECT * FROM categoria WHERE id = '$articoli[categoria]'");
    $categoria = mysql_fetch_array($querycategoria);

    if(
    $categoria["id"] == $articoli["categoria"]) {
    echo
    "<h2>$categoria[nome]</h2>";


    echo
    "<a href=\"view.php?id=$articoli[id]\"><b>$articoli[titolo]</b></a> il $articoli[data]<br />";
    }

    }
    Grazie 1000...ciao Davide! ^^

  2. #2
    Ospite Guest

    Predefinito

    come è strutturata la tabella categoria?


    EDIT: Se la tabella è strutturata come penso io con un piccolo giochetto del genere dovresti riuscire a farcela.....
    Codice PHP:

    echo "<h1>Visualizza Articoli</h1>";
    $st_cat="";



    $queryarticoli = mysql_query("SELECT * FROM articoli ORDER BY data DESC");
    while (
    $articoli = mysql_fetch_array($queryarticoli)) {


    $querycategoria = mysql_query("SELECT * FROM categoria WHERE id = '$articoli[categoria]'");
    $categoria = mysql_fetch_array($querycategoria);

    if(
    $categoria["id"] == $articoli["categoria"]) {

    if(!
    in_array($categoria['id'], explode("|", $st_cat))){
    echo
    "<h2>$categoria[nome]</h2>";
    $st_cat=$st_cat.$categoria['id']."|";
    }


    echo
    "<a href=\"view.php?id=$articoli[id]\"><b>$articoli[titolo]</b></a> il $articoli[data]<br />";
    }

    }

  3. #3
    Guest

    Predefinito

    Invece di eseguire due query (una per prelevare tutti gli articoli e l'altra per prelevare le categorie), ti conviene eseguirne una con un join tra le due tabelle 'articoli' e 'sezioni'.

    Ciao

  4. #4
    Guest

    Predefinito

    @matt93: Quella articoli:
    -id-titolo-testo-data-autore-categoria-
    quella categoria:
    -id-nome-
    Ma a cosa serve il tuo codice (matt93)?...cosa hai modificato? :)
    @giuseppeiemma: Ho provato a fare qualke ricerca..ma ho visto che è complicato...mi faresti un esempio tu?
    Grazie 1000...Ciao! :)
    Ultima modifica di sIM : 15-06-2008 alle ore 15.23.33

  5. #5
    Guest

    Predefinito

    Fare un join tra due tabelle non è complicato. Basta indicare le due tabelle e la condizione per "collegarle" che nel tuo caso è l'uguaglianza articoli.categoria e categoria.id (se è come ho capito, il campo categoria della tabella articoli contiene l'id della categoria associata a un determinato articolo).

    Cosa non capisci?

    Ecco una pagina con qualche qualche esempio: http://www.mrwebmaster.it/sql/guide/...belle_195.html

  6. #6
    Guest

    Predefinito

    Ok..ora ho capito...Grazie!
    Ma preferisco usare le query normali..sono più semplici!!
    Cmq ora funziona la visualizzazione di tutti gli articoli..ma non funziona il motore di ricerca! :(
    Deve essere così:
    $titolo il $data da $autore
    e mi spunta: (notare che $id è sostituito da Array)
    $titolo il Array da $autore
    Codice PHP:
    $q = $_GET['q'];

    if(
    $q == "") {

    echo
    "<h1>Errore</h1>";
    echo
    "Devi inserire una chiave di ricerca!";

    }

    if(isset(
    $q)) {


    $cercaquery = mysql_query("SELECT titolo,testo,autore FROM articoli WHERE titolo LIKE '%$q%' OR testo LIKE '%$q%' OR autore LIKE '%$q%'");
    $cerca = mysql_fetch_array($cercaquery);

    if(
    $q == $cerca['titolo'] OR $q == $cerca['testo'] OR $q == $cerca['autore']) {

    $idris = mysql_query("SELECT id FROM articoli WHERE titolo = '$q' OR testo = '$q' OR autore = '$q'");
    $id = mysql_fetch_array($idris);

    $dataq = mysql_query("SELECT data FROM articoli WHERE titolo = '$q' OR testo = '$q' OR autore = '$q'");
    $data = mysql_fetch_array($dataq);

    echo
    "<h1>Risultati della Ricerca di $q</h1>";

    echo
    "<a href=\"vedi.php?id=$id\">$cerca[titolo]</a> il $data di $cerca[autore]</a><br />";



    } else {

    echo
    "<h1>Errore</h1>";
    echo
    "Nessun risultato trovato con i termini di ricerca da te inviati!";

    }




    } else {

    header("Location: vis.php");

    }
    In pratica un utente cerka qualche cosa inviata dal form...tipo ciao..se "ciao" è presente nel titolo, nel testo o è un pezzo del nikname dell'autore allora mostra il risultato dell'articolo..
    Grazie...Ciao Davide! ^^
    Ultima modifica di sIM : 15-06-2008 alle ore 15.51.26

  7. #7
    Guest

    Predefinito


    E' un metodo completamente insensato.

    Esegui ben 3 query ma per far cosa??

    Ne basterebbe UNA!

    Ciao

  8. #8
    Guest

    Predefinito

    Ossia..fai un esempio almeno! :)
    Ciao! ;)

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    {Piacere} Credo che si riferisca a questo:
    Codice PHP:
    $idris = mysql_query("SELECT id FROM articoli WHERE titolo = '$q' OR testo = '$q' OR autore = '$q'");
    $id = mysql_fetch_array($idris);

    $dataq = mysql_query("SELECT data FROM articoli WHERE titolo = '$q' OR testo = '$q' OR autore = '$q'");
    $data = mysql_fetch_array($dataq);
    Potrebbe anche diventare cosi:
    Codice PHP:
    $idris = mysql_query("SELECT id, data FROM articoli WHERE titolo = '$q' OR testo = '$q' OR autore = '$q'");
    $id = mysql_fetch_array($idris);
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Guest

    Predefinito

    Ok..Grazie! ma ora ho un altro problema..sto creando la pagina di visualizzazione dell'utente tramite il nel get (?id=$) e + troppo non mi funziona...ad esempio io come utente di prova "davide" ho l'id 1 se metto ?id=1 mi dice utente non trovato...ma perchè? o.o
    Codice PHP:
    <?php

    require("config.php");
    myheader();

    session_start();

    if(isset(
    $_GET['id'])) {


    $idut = $_GET['id'];

    if(
    $idut == "") {

    header("Location: vis.php");

    } else {

    if(
    session_is_registered("username")) {

    $user = $_SESSION["username"];
    $pass = $_SESSION["password"];
    $ruolo = $_SESSION["ruolo"];
    $id = $_SESSION["id"];
    $attivato = $_SESSION["attivato"];
    $statoact = $_SESSION["statoact"];

    $utente = mysql_query("SELECT * FROM login WHERE id = '$idut'");

    if(
    $idut == $utente["id"]) {

    if(
    $attivato == "0") {

    echo
    "il tuo account non è attivo!";

    } else {

    // codice ok!

    echo "<h1>Visualizza Utente - $utente[username]</h1>";

    echo
    "<b>UserID</b>: #$utente[id]<br />";
    echo
    "<b>Data di Registrazione</b>: $utente[data]<br />";
    echo
    "<b>Email</b> <a href=\"mailto:$utente[email]\">$utente[email]</a><br />";
    echo
    "<b>Nome e Cognome</b>: $$$<br />";
    echo
    "<b>Località</b>: $$$<br />";
    echo
    "<b>Sito Web</b>: <a href=\"$$$\">$$$</a><br />";
    echo
    "<b>Ruolo</b>: $utente[ruolo]<br />";

    if(
    $utente["username"] == $user && $utente["password"] == $pass) {
    ?>
    <form method="POST" name="modificaprofilo">
    <table>
    <tr><td>Password:</td><td><input type="password" name="passworda" value="<?php echo $utente["password"]; ?>" /> * Riempi solo se cambi i dati</td></tr>
    <tr><td>Conferma Password:</td><td><input type="password" name="passwordab" /> * Riempi solo se stai cambiando la password</td></tr>
    <tr><td>Email:</td><td><input type="text" name="email" value="<?php echo $utente["email"]; ?>" /></td></tr>
    <tr><td>Nome e Cognome:</td><td><input type="text" name="email" value="<?php /*echo $utente["nomecognome"];*/ ?>" /></td></tr>
    <tr><td>Località:</td><td><input type="text" name="localita" value="<?php /*echo $utente["localita"];*/?>" /></td></tr>
    <tr><td>SitoWeb:</td><td><input type="text" name="sitoweb" value="<?php /*echo $utente["sitoweb"];*/?>" /></td></tr>
    <tr><td>Avatar:</td><td><input type="file" name="avatar" /> * Lascia vuoto se vuoi mantenere il tuo Avatar Attuale!</td></tr>
    <tr><td><input type="submit" name="modprof" value="Modifica Profilo" /></td></tr>
    </table>
    </form>
    <?php

    if(isset($_POST['modprof'])) {

    $passprof = $_POST['passworda'];
    $passconfprof = $_POST['passwordab'];
    $email = $_POST['email'];
    $nomecognome = $_POST['nomecognome'];
    $localita = $_POST['localita'];
    $sitoweb = $_POST['sitoweb'];
    $avatar = $_FILES["avatar"]["name"];
    $avatartmp = $_FILES["avatar"]["tmp_name"];

    if(
    $passprof == $utente["password"]) {

    if(
    $passprof == $passconfprof) {
    $update = mysql_query("UPDATE login SET password = $passprof WHERE username = $utenti[username]");
    } else {
    $update = mysql_query("UPDATE login SET password = $utenti[password] WHERE username = $utenti[username]");
    }

    }

    }

    }


    }


    } else {

    echo
    "ID utente non trovato!";

    }



    } else {

    echo
    "Devi fare il login!";

    }

    }

    } else {

    header("Location: vis.php");

    }


    mysql_close($db);
    myfooter();
    ?>
    Grazie 1000...ciao Davide! ^^

Regole di scrittura

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