Resultaten 1 tot 8 van de 8
Geen
  1. #1
    domme vraag misschien
    geregistreerd gebruiker
    27 Berichten
    Ingeschreven
    15/10/12

    Locatie
    gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked



    Thread Starter

    domme vraag misschien

    hallo,

    ik ben zo wat freelance aan het studeren. voorlopig ben ik bezig met php. ik heb een pagina gemaakt waar je op een letter kan klikken en dan krijg je alle betreffende titels van boeken.
    waar ik nu niet aan uitgeraak is aan het feit dat de eerste resultaten nooit getoond worden. ik werk hiervoor met een lus die dus de eerste record niet weergeeft. ik heb al vanalles uitgeprobeerd maar zonder succes. is hier soms iemand die 5 min tijd heeft daarvoor?
    hieronder wat code waarvan ik hoop dat deze voldoende is. ik ben daar aan bezig met dreamweaver
    $currentPage = $_SERVER["PHP_SELF"];


    $maxRows_alfabezoeken = 5;
    $pageNum_alfabezoeken = 0;
    if (isset($_GET['pageNum_alfabezoeken'])) {
    $pageNum_alfabezoeken = $_GET['pageNum_alfabezoeken'];
    }
    $startRow_alfabezoeken = $pageNum_alfabezoeken * $maxRows_alfabezoeken;
    mysql_select_db($database_booksh, $booksh);
    if(isset($_GET["aparteletter"])) {
    $letter = $_GET["aparteletter"];
    }else {
    $letter = "a";
    }
    $query_alfabezoeken = "SELECT titel FROM artikel WHERE titel LIKE '%".mysql_real_escape_string($letter)."%'";
    $query_limit_alfabezoeken = sprintf("%s LIMIT %d, %d", $query_alfabezoeken, $startRow_alfabezoeken, $maxRows_alfabezoeken);
    $alfabezoeken = mysql_query($query_limit_alfabezoeken, $booksh) or die(mysql_error());
    $row_alfabezoeken = mysql_fetch_assoc($alfabezoeken);

    if (isset($_GET['totalRows_alfabezoeken'])) {
    $totalRows_alfabezoeken = $_GET['totalRows_alfabezoeken'];
    } else {
    $all_alfabezoeken = mysql_query($query_alfabezoeken);
    $totalRows_alfabezoeken = mysql_num_rows($all_alfabezoeken);
    }
    $totalPages_alfabezoeken = ceil($totalRows_alfabezoeken/$maxRows_alfabezoeken)-1;

    $queryString_alfabezoeken = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
    $params = explode("&", $_SERVER['QUERY_STRING']);
    $newParams = array();
    foreach ($params as $param) {
    if (stristr($param, "pageNum_alfabezoeken") == false &&
    stristr($param, "totalRows_alfabezoeken") == false) {
    array_push($newParams, $param);
    }
    }
    if (count($newParams) != 0) {
    $queryString_alfabezoeken = "&" . htmlentities(implode("&", $newParams));
    }
    }
    $queryString_alfabezoeken = sprintf("&totalRows_alfabezoeken=%d%s", $totalRows_alfabezoeken, $queryString_alfabezoeken);
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>alfabetisch zoeken</title>
    </head>

    <body>
    <?php

    $array = range('a', 'z');

    foreach($array as $letter => $aparteletter) {

    echo '<a href="index.php?aparteletter='.$aparteletter.'">' .$aparteletter. '</a> - ';

    }

    if (isset($_GET["aparteletter"])) {
    ?> </br> <?

    if (mysql_num_rows($alfabezoeken) == 0) {
    echo "<br />Helaas niets gevonden";
    exit;
    }

    while ($row = mysql_fetch_assoc($alfabezoeken)){
    echo $row['titel'] . '</br>';
    }


    }

    while ($row_alfabezoeken = mysql_fetch_assoc($alfabezoeken));


    ?></br>
    <a href="<?php printf("%s?pageNum_alfabezoeken=%d%s", $currentPage, 0, $queryString_alfabezoeken); ?>">Eerst</a>
    <a href="<?php printf("%s?pageNum_alfabezoeken=%d%s", $currentPage, max(0, $pageNum_alfabezoeken - 1), $queryString_alfabezoeken); ?>">Vorige</a>
    <a href="<?php printf("%s?pageNum_alfabezoeken=%d%s", $currentPage, min($totalPages_alfabezoeken, $pageNum_alfabezoeken + 1), $queryString_alfabezoeken); ?>">Volgende</a>
    <a href="<?php printf("%s?pageNum_alfabezoeken=%d%s", $currentPage, $totalPages_alfabezoeken, $queryString_alfabezoeken); ?>">Laatste</a>
    </body>
    </html>
    Laatst gewijzigd door courtney; 30/10/12 om 06:20.

  2. #2
    domme vraag misschien
    geregistreerd gebruiker
    561 Berichten
    Ingeschreven
    10/06/06

    Locatie
    Emmeloord

    Post Thanks / Like
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    21 Berichten zijn liked


    Naam: Arie

    Het is een beetje een puinhoop, maar ik denk dat ik de fout zie. Meteen onder het uitvoeren van de query heb je het volgende:
    $row_alfabezoeken = mysql_fetch_assoc($alfabezoeken);

    Die regel moet je gewoon weghalen, gezien dat de eerste results ophaalt -- en je er daar verder niets mee doet. In de while eronder pakt hij dan pas de 2e en volgende results. Als je die regel weg haalt begint hij in de while gewoon bij nr 1.

  3. #3
    domme vraag misschien
    geregistreerd gebruiker
    27 Berichten
    Ingeschreven
    15/10/12

    Locatie
    gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked



    Thread Starter
    inderdaad, bij het uitvoeren doet hij het nu wel.
    ik kan nu weeral een paar pagina's verder in men cursus,
    hartelijke groetjes, kc, gent.

  4. #4
    domme vraag misschien
    geregistreerd gebruiker
    27 Berichten
    Ingeschreven
    15/10/12

    Locatie
    gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked



    Thread Starter
    wat me verder dwars zit is het feit dat op de detailpagina geen details verschijnen. uit de url kan ik zien dat er steeds het eerste woord wordt meegegeven en niet de volledige titel.
    ik denk dat het probleem bij mijn query zit, maar ben daar niet sterk in. als iemand interesse heeft mij daar verder mee te helpen, welkom zou ik zo zeggen!
    hier een deel van het script.

    <?php require_once('Connections/booksh.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
    }

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }
    }

    $colname_Recordset1 = "-1";
    if (isset($_GET['titel'])) {
    $colname_Recordset1 = $_GET['titel'];
    }
    mysql_select_db($database_booksh, $booksh);
    $query_Recordset1 = sprintf("SELECT * FROM artikel WHERE titel = %s", GetSQLValueString($colname_Recordset1, "text"));
    $Recordset1 = mysql_query($query_Recordset1, $booksh) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>detailpagina</title>
    </head>

    <body>
    <p><?php echo $row_Recordset1['auteur']; ?></p>
    <p><?php echo $row_Recordset1['jaar uitgave']; ?></p>
    <p><?php echo $row_Recordset1['beschrijving']; ?></p>
    <p><?php echo $row_Recordset1['isbn']; ?></p>
    <p><?php echo $row_Recordset1['prijs']; ?></p>
    <p><?php echo $row_Recordset1['aantal paginas']; ?></p>
    <p>&nbsp;</p>
    </body>
    </html>
    <?php
    mysql_free_result($Recordset1);
    ?>

  5. #5
    domme vraag misschien
    geregistreerd gebruiker
    27 Berichten
    Ingeschreven
    15/10/12

    Locatie
    gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked



    Thread Starter
    hier is de link op de pagina waar de titels staan en die je dus kan aanklikken. is daar soms iets verkeerd?
    while ($row = mysql_fetch_assoc($alfabezoeken)){
    echo '<a href=detail.php?titel=',$row["titel"],'>',$row["titel"],'</a></br>';
    }

  6. #6
    domme vraag misschien
    geregistreerd gebruiker
    133 Berichten
    Ingeschreven
    26/09/12

    Locatie
    Kortenhoef

    Post Thanks / Like
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    32 Berichten zijn liked


    Naam: Sebastiaan Hoogeveen
    Bedrijf: NederHost
    URL: www.nederhost.nl
    Registrar SIDN: Ja
    ISPConnect: Lid
    KvK nummer: 34099781

    De gegevens die je in de URL meegeeft moeten gecodeerd worden, er mogen o.a. geen spaties in staan. PHP heeft hier de functie urlencode voor, het stukje code uit je laatste post verandert dan in iets als:

    while ($row = mysql_fetch_assoc($alfabezoeken)){
    echo '<a href=detail.php?titel=',urlencode($row["titel"]),'>',$row["titel"],'</a></br>';
    }

    De titel is overigens waarschijnlijk niet de handigste keus als 'sleutel', het zou immers kunnen gebeuren dat er twee verschillende boeken of edities zijn met dezelfde titel. Een speciale 'id'-kolom toevoegen met als datatype iets als BIGINT NOT NULL AUTO_INCREMENT is voldoende om een uniek veld te krijgen.
    Sebastiaan Hoogeveen (NederHost)

  7. #7
    domme vraag misschien
    geregistreerd gebruiker
    27 Berichten
    Ingeschreven
    15/10/12

    Locatie
    gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked



    Thread Starter
    het was direct oké. ik had wel een vermoeden van de functie url.... maar vond daar niet direct iets over terug.
    in het vervolg ga ik zeker netter zijn
    tot later, c

  8. #8
    domme vraag misschien
    geregistreerd gebruiker
    1.354 Berichten
    Ingeschreven
    17/06/03

    Locatie
    Delft

    Post Thanks / Like
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Michiel Thalen
    KvK nummer: 02084745

    Om erachter te komen hoeveel resultaten er zijn zou ik niet alles ophalen en kijken hoeveel rijen dat zijn (mysql_calc_rows) maar "SELECT COUNT(*) FROM artikel WHERE titel LIKE '%".mysql_real_escape_string($letter)."%'";

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics