Ik probeer een pagina-indeling te maken in mijn privéberichtenscript. De pagina-indeling werkt alleen niet, want ik krijg steeds de volgende foutmelding.

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 'Resource id #27' at line 1

Ik heb gezocht naar websites waarop dit probleem wordt uitgelegd, maar die zijn schaars, of bij de problemen van anderen zit de fout in een stukje dat ik niet gebruik. Alvast bedankt voor je hulp!

<?php
				$sql_inbox = mysql_query("SELECT ID FROM wh_berichten_verzonden WHERE door_id = '".$_SESSION['ID']."' ORDER BY datum DESC");
				if(mysql_num_rows($sql_inbox) == 0) 
				{
					echo '<br />Je hebt nog geen berichten verzonden.';
				} else
				{
					$pag = $_GET['p'];
					if($pag == '' || $pag == 1)
					{
						$pag = 0;
					}
					$showRecords = 10;
					$results = mysql_query($sql_inbox) or die(mysql_error()); 
					$num_rows = mysql_num_rows($results);
					$pages = $num_rows / $showRecords;
					if($pages > 1)
					{
						$myPage = $pag * $showRecords;
						$query = "SELECT date_format(datum,'%d.%m.%Y %H:%i') AS datum, van_id, door_id, titel, ID FROM wh_berichten_verzonden WHERE door_id = '".$_SESSION['ID']."' ORDER BY datum DESC LIMIT ".$myPage.", ".$showRecords; 
						$results = mysql_query($query) or die(mysql_error()); 
						for($i=1; $i<=floor($pages); $i++)
						{
							echo ' | <a href='.$_SERVER['PHP_SELF'].'?p='.$i.'>'.$i.'</a>';
						}
						echo ' |<br /><br />';
					} else
					{
						$query = "SELECT date_format(datum,'%d.%m.%Y %H:%i') AS datum, van_id, door_id, titel, ID FROM wh_berichten_verzonden WHERE door_id = '".$_SESSION['ID']."' ORDER BY datum DESC"; 
						$results = mysql_query($query) or die(mysql_error()); 
					}
					while($row_inbox = mysql_fetch_assoc($results)) 
					{
						$sql_all = 'SELECT * FROM wh_accounts WHERE ID = "'.$row_inbox['van_id'].'"';
						$sql_naam = mysql_query($sql_all);
						$row_naam = mysql_fetch_assoc($sql_naam);
						
						echo '<div>';
							echo '<div class="postvakverzonden" onmouseover="this.style.backgroundColor=\'#EEEEEE\';" onmouseout="this.style.backgroundColor=\'#F5F5F5\';" onclick="window.location.href=\'?action=bericht_verzonden&id='.$row_inbox['ID'].'\'">';
								echo '<div style="width: 40%; float: right; text-align: right;">';
									echo '<a href="profiel.php?ID='.$row_inbox['van_id'].'">'.ucfirst($row_naam['schuilnaam']).'</a><br />'.$row_inbox['datum'];
								echo '</div>';
								echo '<div style="width: 59%; float: left;">';
									echo '<h6 class="nopadding">'.stripslashes($row_inbox['titel']).'</h6>';
								echo '</div>';
								echo '<div class="clear"></div>';
							echo '</div>';
						echo '</div>';
					}
				}
?>
om dat te debuggen kan je best eens je query printen. Ik merk op dat je single en double quotes door mekaar haalt.
Ik vermoed dat het probleem zich hier gaat situeren. (lijn 34)


$sql_all = 'SELECT * FROM wh_accounts WHERE ID = "'.$row_inbox['van_id'].'"';
                        $sql_naam = mysql_query($sql_all);
                        $row_naam = mysql_fetch_assoc($sql_naam);

Om hiervan zeker te zijn, kan je een kijkje nemen wat hij in regel 41 doet. Indien die daar ook Resourceid #27 geeft, dan weet je dat je de array aan het printen bent en niet de waardes die in de array zitten.
Ik heb geprobeerd regel 41 te bekijken, maar dat lukt niet. De query op regtel 30 ook niet, de foutmelding zit er dan dus al. Uiteindelijk heb ik regel 2 bekeken, en die geeft "Resource id #27". Achter dit staat wel de andere foutmelding "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 'Resource id #27' at line 1".

Edit: Ik heb de fout gevonden. Ergens werd een query gemaakt (mysql_query) met een zoekopdracht die in mysql_query() stond.

Reageren