Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    21

    Guida PHP/MySql pratica

    Ciao a tutti!
    Sono nuovo nel forum e ho disperato bisogno di aiuto...
    Sto cercando di muovere i primi passi nel mondo della programmazione e in particolare in quello PHP.
    Ho seguito la guida su HTML.it "Guida PHP/MySql pratica" ma non riesco a far funzionare gli script in modo appropriato.
    Quando cerco di visualizzare gli articoli tramite all.php e cliccando sulle pagine numerate (1 2 3) non succede nulla. Vale a dire gli articoli (primi 20) rimangono sempre gli stessi.
    Al contrario, cliccando sulla pagina 2 dovrei vedere gli articolo 20-40 ma non funonzia!
    Potresti dirmi dove sbaglio?
    Ecco il codice di all.php:

    <?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    if (!isset($start) OR $start<0)
    $start=0;
    $step = 20;
    $query = "SELECT id, title FROM esempio ORDER BY id DESC LIMIT $start,$step";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result))
    { echo "<a href=\"view.php?id=$row[id]\">" . "$row[title]</a>
    "; }
    ?>




    <table width=90% border=0><tr>
    <td width=20% align=left>

    <?
    if ($start>0)
    { $start_back = $start - $step;
    echo "<a href=all.php?start=$start_back>precedenti</a>";
    }
    ?>

    </td>

    <?
    $query = "SELECT count(*) AS tot FROM esempio";
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);
    $pages = intval(($row[tot]-1) / $step)+1;
    ?>

    <td width=60% align=center>

    <?
    for ($i=0; $i<$pages AND $i<10; $i++)
    { $start_page = $i * $step;
    echo "<a href=all.php?start=$start_page>" . ($i+1) . "</a> ";
    }
    ?>

    </td>
    <td width=20%>

    <?
    if ($start + $step < $row[tot])
    { $start_next = $start + $step;
    echo "<a href=all.php?start=$start_next>successivi</a>";
    }
    ?>

    </td>
    </tr></table>



    <?
    echo "<a href=search.php>Cerca negli articoli</a>";
    foot();
    ?>

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    non ho tempo di vedere tutto il codice cmq proca così
    if (!isset($_GET['start']) OR $_GET['start']<0) $start=0;
    else $start=$_GET['start'];

    al posto di

    if (!isset($start) OR $start<0)
    $start=0;

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    21
    SPETTACOLARE! Funziona! Grazie mille oronze!
    Quanto tempo ho perso dietro qs codice!
    Adesso devo capirne il motivo, penso che ho ancora MOLTO da imparare...
    A presto

  4. #4
    Originariamente inviato da jeanppb
    SPETTACOLARE! Funziona! Grazie mille oronze!
    Quanto tempo ho perso dietro qs codice!
    Adesso devo capirne il motivo, penso che ho ancora MOLTO da imparare...
    A presto
    qui ti spiega alcuni perche':

    http://forum.html.it/forum/showthrea...hreadid=245215

    se guardi la data del thread vedrai scorrere sullo sfondo dei dinosauri....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Non é il primo utente con questo problema.
    Queste guide andrebbero veramente aggiornate, altrimenti non servono a nulla. Anzi, insegnano cose sbagliate.

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Originariamente inviato da mtx_maurizio
    Non é il primo utente con questo problema.
    Queste guide andrebbero veramente aggiornate, altrimenti non servono a nulla. Anzi, insegnano cose sbagliate.

    basterebbe fosse riportata la data di pubblicazione e la versione dei programmi utilizzati. Ma la cosa evidentemente non piace. Sembrerebbe (e lo e') di pubblicare roba dichiaramente obsoleta ...

    Scelte editoriali. ...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    21
    Grazie a tutti.
    Anch'io sono (ovviamente) d'accordo col fatto che le guide vadano aggiornate.
    Ma forse é una scelta voluta per obbligare i neofiti a partecipare in modo attivo alla guida cercando di risolvere eventuali errori. Considerando peró il livello base delle guide e degli utenti che le consultano, forse é un po' improbabile risolvere da soli (senza forum...) le varie "trappole" .
    A proposito, anche la funzione ricerca andrebbe aggiornata. Qualcuno puó aiutarmi?...
    Ecco lo script:

    search.php
    <?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    ?>
    <form method="post" action="result.php">
    <input type="text" name="chiave" />
    <input type="submit" value="Search" />

    </form>
    <?
    foot();
    ?>

    result.php
    <?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();

    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $keys = explode (",", $chiave);
    $query = "";
    reset ($keys);

    while (list(,$parola) = each ($keys))
    {
    $parola = trim($parola);
    if ($parola != "")
    $query .= "title LIKE '%$parola%' OR author LIKE '%$parola%' OR quote LIKE '%$parola%' OR category LIKE '%$parola%' OR tags LIKE '%$parola%' OR ";
    }

    $query = "SELECT id, title FROM esempio WHERE " . $query;
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result))
    {
    echo "<a href=\"view.php?id=$row[id]\">" . "$row[author]" . " - $row[title]</a>
    ";
    }
    foot()
    ?>


    Il messaggio di errore é il seguente:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\esempio\result.php on line 25

    Grazie

  8. #8
    inizia con il sostituire $chiave con $_POST['chiave']

    magari all'inizio del codice, dopo gli include, metti:

    $chiave = $_POST['chiave'];
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    21
    Probabilmente non ho sostituito al punto giusto...ricevo ancora un messaggio di errore:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\esempio\result.php on line 27

    Ecco lo script modificato:
    <?
    include("top_foot.inc.php");
    include("config.inc.php");
    $chiave = $_POST['chiave'];
    top();

    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $keys = explode (",", $_POST['chiave']);
    $query = "";
    reset ($keys);

    while (list(,$parola) = each ($keys))
    {
    $parola = trim($parola);
    if ($parola != "")
    $query .= "title LIKE '%$parola%' OR author LIKE '%$parola%' OR quote LIKE '%$parola%' OR category LIKE '%$parola%' OR tags LIKE '%$parola%' OR ";
    }

    $query = "SELECT id, title FROM esempio WHERE " . $query;
    $result = mysql_query($query, $db);
    echo mysql_error();
    while ($row = mysql_fetch_array($result))
    {
    echo "<a href=\"view.php?id=$row[id]\">" . "$row[author]" . " - $row[title]</a>
    ";
    }
    foot()
    ?>

  10. #10
    Lasciando così lo script direi che il tuo sito dopo due giorni non lo trovi più
    Usa la funzione htmlspecialchars per controllare le variabili provenienti dai form, soprattutto le variabili get

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.