declareren variabele

Status
Niet open voor verdere reacties.
K

ku30

Gast
hoi,
dit is mijn laatste vraag tot dusver.
steeds keert de foutmelding
Notice: Undefined index: aparteletter in C:\xampp\htdocs\bookshop\index.php on line 44
terug. in bijgevoegde code is dit de querylijn.
ik weet dat die niet gedeclareerd is maar weet ook niet hoe dit te doen.
heeft iemand een idee hierover? onderstaande code is een fragment! het gaat hier waarschijnlijk over de query.
$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);
$query_alfabezoeken = "SELECT titel FROM artikel WHERE titel LIKE'%".mysql_real_escape_string($_GET["aparteletter"])."%'";
$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);
}
 

Icemar

Steunend lid
Vip Lid
Dan kan je het beste eerst controleren of deze al bestaat dit kan je op de volgende manier doen.

Code:
if(isset($_GET["aparteletter"])) {
    $letter = $_GET["aparteletter"];
} else {
    $letter = "a"
}

$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);
 $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);
 }
Zorg er altijd voor dat je de waardes controleerd voor je ze gebruikt zeker in en query!
 
K

ku30

Gast
mijn scriptje werkt perfect.
ik had zover niet nagedacht, ik ben zo niet thuis met al die php, toch veel bijgeleerd.
 
K

ku30

Gast
heeft u er soms een idee van waarom niet alle resultaten getoond worden? bv de eerste ontbreekt steeds wanneer ik dit script bekijk in de browser. ik had er al aan gedacht om de waarde van de array te laten beginnen op 1 ipv 0?
 

Icemar

Steunend lid
Vip Lid
heeft u er soms een idee van waarom niet alle resultaten getoond worden? bv de eerste ontbreekt steeds wanneer ik dit script bekijk in de browser. ik had er al aan gedacht om de waarde van de array te laten beginnen op 1 ipv 0?
Dan moet ik je complete script zien zonder dit is het lastig te vertellen

een array begint altijd met 0 je kan wal een variable een waarde toe kennen
 
K

ku30

Gast
<?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;
}
}

$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> - ';

}


do
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>
dit is het complete script!
ik ben ervan overtuigd dat het ook hier een detail is dat ik over het hoofd zie
 
K

ku30

Gast
moet ik soms de waarde van de do while lus beginnen op 0 ipv 1 (als dit dan geen onzin is)? in afwachting probeer ik wat uit.
 

DDragon80

Beheerder
Forumleiding
Admin
moet ik soms de waarde van de do while lus beginnen op 0 ipv 1 (als dit dan geen onzin is)? in afwachting probeer ik wat uit.
Ik ken weinig of geen PHP, maar do while is overal hetzelfde. Als je een array wilt uitlezen via een do while moet je altijd beginnen op positie 0.
Dus array[n-1].
 
Status
Niet open voor verdere reacties.
Bovenaan Onderaan