Jump to content

Recommended Posts

Alright I got my Pagination to work on my page. But when I try to narrow my rows down to a certain parameter rather than pulling all rows, i get. These are the lines with the errors. You can statements work, and which ones dont. The statements that pull all rows works and I dont get an error.

 

Fatal error: FATAL ERROR in C:\apache\htdocs\index.php on line 49

 

If i edit line 32

so it says (works):

$query = "SELECT count(*) FROM upload";

rather than (doesnt):

$query = "SELECT count(*) FROM upload where category = '$category'";

 

and line 48

so it says (works):

$query = "SELECT * FROM upload $limit";

rather than(doesnt):

$query = "SELECT * FROM upload WHERE category = '$category' $limit";

 

Yet what I find interesting is the queries that generate an error work no problem if i type them into mySQL query browser... So alas I am a bit lost as to why this is giving me an SQL error.

 

 

Finally: Full Source

<!-- FORM TO DISPLAY DATABASE TEMPLATES -->
<form name="form1" method="post" action="<?php echo $PHP_SELF?>">
  <select name="section" size="1" multiple>
    <option selected>layouts</option>
  </select>
  <select name="category" size="1">
    <option selected>animals</option>
    <option>Anime</option>
  </select>
  <br>
  <input type="submit" name="Submit" value="Submit">
</form>
<!-- END DISPLAY FORM -->

<?
//GET FORM DATA
$section = $_POST['section'];
$category = $_POST['category'];

if (isset($_GET['pageno'])) {
   $pageno = $_GET['pageno'];
} else {
   $pageno = 1;
} // if

require("connectDB.php"); //DATABASE CONNECTION SEQUENCE

$query = "SELECT count(*) FROM upload WHERE category = '$category'";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];

$rows_per_page = 1;
$lastpage      = ceil($numrows/$rows_per_page);

$pageno = (int)$pageno;
if ($pageno < 1) {
   $pageno = 1;
} elseif ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM upload $limit";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

if ($pageno == 1) {
   echo " FIRST PREV ";
} else {
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=1'>FIRST</a> ";
   $prevpage = $pageno-1;
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$prevpage'>PREV</a> ";
} // if

echo " ( Page $pageno of $lastpage ) ";

if ($pageno == $lastpage) {
   echo " NEXT LAST ";
} else {
   $nextpage = $pageno+1;
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$nextpage'>NEXT</a> ";
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$lastpage'>LAST</a> ";
} // if


//FETCH SQL DATA AND PRINT IT TO THE SCREEN
while($row = mysql_fetch_array($result)){
$id = $row["id"];
$codes = $row["codes"];
// $codes = ereg_replace("INSERTURLHERE", , $codes); NOT CURRENTLY USING THIS FEATURE
print '<table width="400" border="2" cellspacing="0" cellpadding="0">';

//DISPLAY THUMBNAIL IMAGE FROM DATABASE
print ("<tr><td><img src=\"download.php?id=$id\"></td></tr>"); 

//POPULATE TEXTFIELD WITH CSS CODE FOR TEMPLATE
print "<tr><td><textarea name='textfield' wrap='OFF' cols='50' rows='7'>".$codes."</textarea></td></tr>";
print '</table><br /><br />';

}
require("disconnectDB.php");
?>

Link to comment
https://forums.phpfreaks.com/topic/43608-solved-fatal-error-line-49-sql-query/
Share on other sites

Try this:

 

<!-- FORM TO DISPLAY DATABASE TEMPLATES -->
<form name="form1" method="post" action="<?php echo $PHP_SELF?>">
  <select name="section" size="1" multiple>
    <option selected>layouts</option>
  </select>
  <select name="category" size="1">
    <option selected>animals</option>
    <option>Anime</option>
  </select>
  <br>
  <input type="submit" name="Submit" value="Submit">
</form>
<!-- END DISPLAY FORM -->

<?php
require("connectDB.php"); //DATABASE CONNECTION SEQUENCE
//GET FORM DATA
$section = $_POST['section'];
$category = $_POST['category'];

if (isset($_GET['pageno'])) {
   $pageno = $_GET['pageno'];
} else {
   $pageno = 1;
} // if
$rows_per_page = 1;
$lastpage      = ceil($numrows/$rows_per_page);

$pageno = (int)$pageno;
if ($pageno < 1) {
   $pageno = 1;
} elseif ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT count(*) FROM upload WHERE category = '$category'";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$query = "SELECT * FROM upload $limit";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
//FETCH SQL DATA AND PRINT IT TO THE SCREEN
while($row = mysql_fetch_array($result)){
$id = $row["id"];
$codes = $row["codes"];
// $codes = ereg_replace("INSERTURLHERE", , $codes); NOT CURRENTLY USING THIS FEATURE
print '<table width="400" border="2" cellspacing="0" cellpadding="0">';

//DISPLAY THUMBNAIL IMAGE FROM DATABASE
print ("<tr><td><img src=\"download.php?id=$id\"></td></tr>"); 

//POPULATE TEXTFIELD WITH CSS CODE FOR TEMPLATE
print "<tr><td><textarea name='textfield' wrap='OFF' cols='50' rows='7'>".$codes."</textarea></td></tr>";
print '</table><br /><br />';

}
if ($pageno == 1) {
   echo " FIRST PREV ";
} else {
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=1'>FIRST</a> ";
   $prevpage = $pageno-1;
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$prevpage'>PREV</a> ";
} // if

echo " ( Page $pageno of $lastpage ) ";

if ($pageno == $lastpage) {
   echo " NEXT LAST ";
} else {
   $nextpage = $pageno+1;
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$nextpage'>NEXT</a> ";
   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$lastpage'>LAST</a> ";
} // if
require("disconnectDB.php");
?>

unfortunately I get the same error regarding the line:

 

$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

 

seems whenever I specify "WHERE category = '$category'" in my code it breaks, Just does not want to let me query only a certain value in the database.

 

change this:

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT count(*) FROM upload WHERE category = '$category'";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$query = "SELECT * FROM upload $limit";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

 

To this:

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT count(*) FROM upload WHERE category = '$category'";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$query = "SELECT * FROM upload WHERE category = '$category' $limit";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

 

If this does not work do it like this:

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT count(*) FROM upload WHERE category = '$category' $limit";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$query = "SELECT * FROM upload WHERE category = '$category' ";
$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

Yeah I had originally tried those 2 options you just said before I made this post. LoL In part why I am stuck and perplexed. I fail to see why its generating the error.

 

*******************

 

by using the first option you stated it generates an error on the next line:

$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);

 

On the second option you recommended when I tried that it too generetes an error on the next line

$result = mysql_query($query) or trigger_error("FATAL ERROR", E_USER_ERROR);
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.