hallo ik heb het onderstaand script waarmee ik informatie uit mijn database haal. Werkt prima, alleen als er geen foto is toegevocht in de database dan krijg ik foutmeldingen.

Warning: Division by zero in

<?php
$result = listAll();
if(mysql_num_rows($result) == 0){

echo("<tr style='font-style:italic;'><td>Er zijn geen weer te geven items</td></tr>");

}
for($i=0;$i<8;$i++){
$a = 0;
$result = listByType($i);
switch ($i){
case 0:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Lampen - Gipsen</td></tr>");
break;
case 1:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Lampen - Andere replica's</td></tr>");
break;
case 2:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Lampen - Art Deco lampen</td></tr>");
break;
case 3:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Glas - Leerdam</td></tr>");
break;
case 4:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Glas - Maastricht</td></tr>");
break;
case 5:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Glas - internationaal</td></tr>");
break;
case 6:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Meubelen</td></tr>");
break;
case 7:
echo("<tr style='background-color:#e10000; font-weight:bold;'><td colspan='6'>Diversen</td></tr>");
break;
}

}

while(list($id, $naam, $code, $prijs, $omschrijving, $foto, $type) = mysql_fetch_row($result)){

$omschrijving = stripslashes($omschrijving);
if($a==0){
$bgcolor="#b3b3b3";
$a++;
} else {
$bgcolor="#ffffff";
$a--;
}
echo("<tr style='background-color:". $bgcolor. ";' height='20' >
<td> $naam </td>
<td> $code </td>
<td> $prijs </td>
<td><a href='modify.php?id=$id'><img src='pictures/change.png' border='0' alt='Bewerken'></a></td>
<td><a href='scripts/remove_item.php?id=$id'><img src='pictures/remove.png' border='0' alt='verwijderen'></a></td>
<td><img src='../images/$foto' width='". parseDimensions($foto,25,'w'). "' height='". parseDimensions($foto,25,'h'). "'></td>
</tr>");
}
}
?>


Kan dit met een else functie worden opgelost? Zo ja hoe moet ik dat doen?
Dat komt omdat je wel het script uitvoerd als er niks in de database staat..

Je zou een if/else kunnen gebruiken ipv enkel een if.

if(rijen = 0)
{
foutmelding
}else{
doorgaan
}
ik weet niet hoe jij die foto erin zet maar als je dat ook met een upload script ofzo doet dan zou je erbij kunnen zetten dat wanneer die foto geupload is dat hij dan

$result = mysql_query("update tabel SET foto='1'")

hiervoor moet je dan in de db een veld foto maken... en wanneer die op 0 staat heb je geen foto,, en wanneer hij op 1 staat heb je er wel een..

en dan kan je in je script zoiets erbij zetten...

if ($row[foto] == "1")
{
<img src=blabla foto.gif etc..>
}
else
{
echo "geen foto"
}
Arjan Kapteijn schreef op 24.04.2006 19:40
Dat komt omdat je wel het script uitvoerd als er niks in de database staat..

}


Maar dat moet dan toch ook omdat anders de rest van de info niet wordt wergegeven.

Je kan voor de duidleijheid even kijken op
http://ubee-ht.nl/SBM/test/cms/

moet ik de else functie aansluiten onder
$result = listAll();
if(mysql_num_rows($result) == 0){

echo("<tr style='font-style:italic;'><td>Er zijn geen weer te geven items</td></tr>");

doen?

wat ik zo raar vind is dat ik het heb gecopieerd van een werkend swcript dat deze problemen niet vertoond.

dit is mijn upload script

<?php
include("connect.php");
if(!empty($_POST)){
$naam = $_POST["naam"];
$code = $_POST["code"];
$prijs = $_POST["prijs"];
$omschrijving = addslashes($_POST["omschrijving"]);
$type = $_POST["type"];
$query = "INSERT INTO artikel VALUES ('','" .$naam. "','". $code. "','". $prijs. "','". $omschrijving. "','','". $type. "');";
$result = mysql_query($query) or die(mysql_error());
}
$ThisFileName = basename(__FILE__); // get the file name
$path = str_replace("/cms/scripts/".$ThisFileName,"",__FILE__); // get the directory path
$upload_dir = $path. "/images/"; // be shure php has access to this dir (chmod)
$new_file = $upload_dir."/".$_FILES['userfile']['name'];
if ($_POST['upload'] == "Upload") {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], $new_file) or
print "could not store $new_file ";
chmod ($upload_dir. $_FILES['userfile']['name'], 0777);
$query = "UPDATE artikel SET foto = '". $_FILES['userfile']['name']. "' WHERE naam = '". $naam. "' AND code = '". $code. "';";
$result = mysql_query($query) or die(mysql_error());
header("location: ../index.php");
} else {
switch ($_FILES['userfile']['error']) {
case 0:
print "<a href='#' onClick='history.back()'>Terug</a><br>!is_uploaded_file.., no file upload?<br><a href='../index.php'> Gewoon verder gaan!</a> ";
break;
case 1:
print "<a href='#' onClick='history.back()'>Terug</a><br>De file dat u probeerd te uploaden is te groot. bewerk het bestand en probeer het opnieuw (max 50 mb); size limit set by php.ini<br><a href='../index.php'> Gewoon verder gaan!</a> ";
break;
case 2:
print "<a href='#' onClick='history.back()'>Terug</a><br>De file dat u probeerd te uploaden is te groot. bewerk het bestand en probeer het opnieuw (max 50 mb); size limit set by MAX_FILE_SIZE<br><a href='../index.php'> Gewoon verder gaan!</a> ";
break;
case 3:
print "<a href='#' onClick='history.back()'>Terug</a><br>file is partially uploaded <br><a href='../index.php'> Gewoon verder gaan!</a>";
break;
case 4:
print "<br><strong> U heeft geen foto aan dit artikel toegevoegt </strong><br><a href='#' onClick='history.back()'>Terug </a>(informatie niet versturen maar opnieuw bewerken / foto toevoegen) <br><a href='../index.php'> Door gaan </a> (artikel plaatsen op website zonder foto)";
break;
default:
print "<br>Onbekende foutmelding<br><a href='#' onClick='history.back()'>Terug</a>(informatie niet versturen maar opnieuw bewerken)<a href='../index.php'> Gewoon verder gaan!</a> (artikel plaatsen op website zonder 100% foutcontrole. Controleer of het artikel is geplaast)";
}
}
}



?>
Zet eens boven aan je script:

<?php
error_reporting(0);
?>


dan is je error weg...

Let op: dit niet altijd gebruiken, alleen als je geen errors wilt en je je script uitvoerig hebt getest..
Daar doen we niet aan hé Andries :-p
Tja, het is de makkelijkste weg :p, z'n probleem is gelijk opgelost.. :p
Maar dan worden andere foutmeldingen ook niet meer weergegeven toch.
Kan iemand mij anders helpen met die else fuctie. Ik wil het toch graag proberen, maar ik zou echt niet weten hoe ik dat exact moet doen
komt hier op neer:


<?
if(//database is leeg)
{
echo 'leeg';
}
else
{
//voer het weergeven uit
}
?>

<?php
$sql = mysql_query("SELECT * FROM artikel");
if(!$sql)
{
echo 'leeg';
}
else
{
//voer het weergeven uit
}
?>

Reageren