הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   חלוקה לעמודים (https://hosts.co.il/forums/showthread.php?t=21980)

-VladK- 17-05-06 14:17

חלוקה לעמודים
 
שלום.
אני רוצה לחלק את הקובץ שלי למספק עמודים...
הכוונה היא שנגיד במסד שלי יש 600 שורות...ואני לא רוצה שכל השורות האלא יוצגו בעמוד אחד אז אני רוצה לחלק את העמוד שלי לכמה עמודים....לדוגמה בעמוד מס' אחד יופיעו השורות 1-30 בעמוד מס' 2 יופיעו השורות 31-60 וכו'....כיצד אני יכול לעשות זאת? קראתי את המאמר שיש בWEBMASTER והוא לא עזר לי...הוא לא מובן :(
אשמח מאוד אם תסבירו לי!
תודה מראש.

eLad 17-05-06 15:33

בקלות..

קודם כל אתה בודק באיזה דף נמצא המשתמש, משהו בסגנון:

קוד:

nPage = Request.QueryString("nPage")*1 || 1
(משמעות הכפול 1 היא להפוך את זה למשתנה מסוג integer ולא string)

במידה והוא בדף הראשון, כלומר
קוד:

if (nPage==1) {
אז נשלוף בצורה הזו:

קוד:

SELECT TOP " + nNumOfRecords + " nId,sName,sEmail FROM tbl
במידה ואנחנו לא בעמוד הראשון, אז נבצע שאילתא כזו:
קוד:

SELECT TOP " + nNumOfRecords + " nId,sName,sEmail FROM tbl WHERE nId NOT IN (SELECT TOP "+((nPage*nNumOfRecords)-nNumOfRecords)+" nId FROM tbl)
כלומר, מטרת השאילתא (שאילתת NOT IN) לשלוף את מס' הרשומות nNumOfRecords בעמוד nPage שבו אנחנו עכשיו

אחרי ששלפת אתה יכול להכניס את המידע למערך ולהתחיל לשחק ולמיין אותו (אם מדובר בהרבה רשומות תמיין ברמת SQL עם ORDER BY), במידה ויש מעט רשומות, עדיף למיין את המערך משיקולים של יעילות.

בהצלחה

אלעד

-VladK- 17-05-06 16:18

אוקיי תאמת כל הקודים האלא רק סיבחו אותי עוד יותר :-/
קיבלתי את השגיאה הזאת:

Fatal error: Call to undefined function: querystring() in /home/thegod/domains/vlad.web.lsrv.co.il/public_html/nizkor/candles.php on line 6

הנה הקובץ:
PHP קוד:

<?php
require 'db.php';
require 
'header.php';
echo 
"<h3><center><a href=\"#\" ONCLICK=\"window.open('canadd.php', 'Sample', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=400,height=260')\">הדלק נר</a></center></h3>";

$nPage Request.QueryString("$nPage")*|| 1;
if (
$nPage==1) {
$select mysql_query("SELECT TOP ` + nNumOfRecords + ` ID,Title,Name,Content FROM candles");
}else {
$select mysql_query("SELECT TOP " nNumOfRecords " Title,Name,Content FROM candles WHERE ID NOT IN (SELECT TOP "+(($nPage*nNumOfRecords)-nNumOfRecords)+" ID FROM Title,Name,Content FROM candles)");
}
echo 
"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
$x=0;
while (
$rows mysql_fetch_assoc($select)) {
extract($rows);
$x++;
echo 
"<td><img src=\"images/ner.jpg\" width=\"21\" height=\"24\"></td>
<td><b><font size=\"3\">"
.$Title."</font></b></td><td width=\"5\"></td>";
if(
$x == 0) {
echo 
"</tr><tr>";
}
}
echo 
"</tr></table>";
require 
'footer.php';
?>


BlueNosE 17-05-06 16:18

אלעד הוא לא נתן שפה
עריכה
xD
אחי מה אתה עושה? ASP.PHP?! xDDD

-VladK- 17-05-06 16:27

חהחהחהחה....ואני עוד לא הבנתי מה לעזאזל קשורים ה פלוסים וזה XD חחחחחחח אם אפשר בPHP...תודה...אני יזכור את זה להבא XD

sUP 17-05-06 16:29

WTF :|

הנה הדרך עבודה שלי:

PHP קוד:

$npg 1// מספר התוצאות לעמוד

$page $_GET["p"];
if (!
$page) { $page 1; } 
$start_row $npg*$page
$start_row -= $npg

// שאילתה    
$result mysql_query("SELECT * FROM tbl LIMIT $start_row,$num4page"); 

ואז page.php?p=1 מספר העמוד

-VladK- 17-05-06 16:39

זה נותן לי שגיאה...אהההם מאיפה הבאתה את $num4page??
הנה עמוד:
PHP קוד:

<?php
require 'db.php';
require 
'header.php';

echo 
"<h3><center><a href=\"#\" ONCLICK=\"window.open('canadd.php', 'Sample', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=400,height=260')\">הדלק נר</a></center></h3>";

$npg 30// מספר התוצאות לעמוד 

$page $_GET["p"]; 
if (!
$page) { $page 1; }  
$start_row $npg*$page;  
$start_row -= $npg;  

// שאילתה     
$select mysql_query("SELECT * FROM candles LIMIT $start_row,$num4page");  

echo 
"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
$x=0;
while (
$rows mysql_fetch_assoc($select)) {

extract($rows);
$x++;
echo 
"<td><img src=\"images/ner.jpg\" width=\"21\" height=\"24\"></td>
<td><b><font size=\"3\">"
.$Title."</font></b></td><td width=\"5\"></td>";

if(
$x == 0) {
echo 
"</tr><tr>";

}}

echo 
"</tr></table>";
require 
'footer.php';
?>

שגיאה היא:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/thegod/domains/vlad.web.lsrv.co.il/public_html/nizkor/candles.php on line 19

eLad 17-05-06 16:48

ציטוט:

נכתב במקור על ידי CriSis
חהחהחהחה....ואני עוד לא הבנתי מה לעזאזל קשורים ה פלוסים וזה XD חחחחחחח אם אפשר בPHP...תודה...אני יזכור את זה להבא XD

+ זה תחביר SQL

ציטוט:

נכתב במקור על ידי sUP
קוד:

$result = mysql_query("SELECT * FROM tbl LIMIT $start_row,$num4page");

אתה עובד עם mySQL ששם אין TOP אלא LIMIT

וזה ששואל השאלה שכח לציין עם איזה מסד ואיזו שפה הוא עובד .. זו לא בעיה שלי

הדרך בעיקרון אותה דרך בדיוק

-VladK- 17-05-06 18:18

ציטוט:

נכתב במקור על ידי eLad
+ זה תחביר SQL


אתה עובד עם mySQL ששם אין TOP אלא LIMIT

וזה ששואל השאלה שכח לציין עם איזה מסד ואיזו שפה הוא עובד .. זו לא בעיה שלי

הדרך בעיקרון אותה דרך בדיוק

אל תתדאג אתה יצאתה מזה גבר זו פשוט בעיה שלי ששכחתי אז שכולם ידעו שאני צריך לעשות את זה בPHP ובMYSQL


כל הזמנים הם GMT +2. הזמן כעת הוא 03:16.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ