לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 26-05-2006, 17:53
  vorlon vorlon אינו מחובר  
 
חבר מתאריך: 08.08.03
הודעות: 29
בעיה במערכת העברת עמודים

שלום.

בניתי מערכת מסוימת שמציגה תוצאות של שאילתה
וניסיתי להציג אותה בחלוקה לעמודים.
הדף הראשון עובד ומראה את מה שאני רוצה, אך כשאני מנסה לעבור דף החלוקה לא מתבצעת ואני לא מקבל תוצאות כלל.

להלן הקוד:

קוד PHP:
<?php session_start();
include(
"header.php");
?>

<?php
if (!isset($_POST['submit']) && !isset($_GET['page'])) {
echo 
"חפש דירה: <br><br>";
echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
      סוג נכס: <SELECT name=\"property_kind\" scroll>
           <OPTION value=\"%\">-הכל-</OPTION>
          <OPTION value=\"דירה\">דירה</OPTION>
           <OPTION value=\"דירת גג\">דירת גג</OPTION>
             <OPTION value=\"דירת גן\">דירת גן</OPTION>
          <OPTION value=\"פנטהאוז\">פנטהאוז</OPTION>
            <OPTION value=\"וילה\">וילה</OPTION>
            <OPTION value=\"דירת סטודיו\">דירת סטודיו</OPTION>
            <OPTION value=\"בית פרטי\">בית פרטי</OPTION>
            <OPTION value=\"דופלקס\">דופלקס</OPTION>
            <OPTION value=\"קוטג'\">קוטג'</OPTION>
          <OPTION value=\"מגרש\">מגרש</OPTION>
            </SELECT>&nbsp;
          חדרים מ: <SELECT name=\"room_number_start\" scroll>
           <OPTION value=\"0\">-הכל-</OPTION>
          <OPTION value=\"1\">1</OPTION>
           <OPTION value=\"1.5\">1.5</OPTION>
             <OPTION value=\"2\">2</OPTION>
            <OPTION value=\"2.5\">2.5</OPTION>
            <OPTION value=\"3\">3</OPTION>
            <OPTION value=\"3.5\">3.5</OPTION>
            <OPTION value=\"4\">4</OPTION>
            <OPTION value=\"4.5\">4.5</OPTION>
            <OPTION value=\"5\">5</OPTION>
            <OPTION value=\"5.5\">5.5</OPTION>
            <OPTION value=\"6\">6</OPTION>
            <OPTION value=\"6.5\">6.5</OPTION>
            <OPTION value=\"7\">7</OPTION>
            <OPTION value=\"7.5\">7.5</OPTION>
            <OPTION value=\"8\">8</OPTION>
            <OPTION value=\"8.5\">8.5</OPTION>
            <OPTION value=\"9\">9</OPTION>
            <OPTION value=\"10\">10</OPTION>
            <OPTION value=\"11\">11</OPTION>
            <OPTION value=\"12\">12</OPTION>
            </SELECT>&nbsp;
          עד:  <SELECT name=\"room_number_end\" scroll>
          <OPTION value=\"0\">-הכל-</OPTION>
          <OPTION value=\"1\">1</OPTION>
           <OPTION value=\"1.5\">1.5</OPTION>
             <OPTION value=\"2\">2</OPTION>
            <OPTION value=\"2.5\">2.5</OPTION>
            <OPTION value=\"3\">3</OPTION>
            <OPTION value=\"3.5\">3.5</OPTION>
            <OPTION value=\"4\">4</OPTION>
            <OPTION value=\"4.5\">4.5</OPTION>
            <OPTION value=\"5\">5</OPTION>
            <OPTION value=\"5.5\">5.5</OPTION>
            <OPTION value=\"6\">6</OPTION>
            <OPTION value=\"6.5\">6.5</OPTION>
            <OPTION value=\"7\">7</OPTION>
            <OPTION value=\"7.5\">7.5</OPTION>
            <OPTION value=\"8\">8</OPTION>
            <OPTION value=\"8.5\">8.5</OPTION>
            <OPTION value=\"9\">9</OPTION>
            <OPTION value=\"10\">10</OPTION>
            <OPTION value=\"11\">11</OPTION>
            <OPTION value=\"12\">12</OPTION>
            </SELECT><br><br>
          ממחיר ב$:  <SELECT name=\"price_start\" scroll>
           <option value=\"0\">-הכל-</option>
          <option value=\"50000\">50,000</option>
          <option value=\"100000\">100,000</option>
          <option value=\"125000\">125,000</option>
          <option value=\"150000\">150,000</option>
          <option value=\"160000\">160,000</option>
          <option value=\"170000\">170,000</option>
          <option value=\"180000\">180,000</option>
          <option value=\"190000\">190,000</option>
          <option value=\"200000\">200,000</option>
          <option value=\"210000\">210,000</option>
          <option value=\"220000\">220,000</option>
          <option value=\"230000\">230,000</option>
          <option value=\"240000\">240,000</option>
          <option value=\"250000\">250,000</option>
          <option value=\"275000\">275,000</option>
          <option value=\"300000\">300,000</option>
          <option value=\"325000\">325,000</option>
          <option value=\"350000\">350,000</option>
          <option value=\"375000\">375,000</option>
          <option value=\"400000\">400,000</option>
          <option value=\"450000\">450,000</option>
          <option value=\"500000\">500,000</option>
          <option value=\"600000\">600,000</option>
          <option value=\"700000\">700,000</option>
          <option value=\"800000\">800,000</option>
          <option value=\"900000\">900,000</option>
          <option value=\"1000000\">1,000,000</option>
          <option value=\"1200000\">1,200,000</option>
          <option value=\"1500000\">1,500,000</option>
          </select>
          עד:  <SELECT name=\"price_end\" scroll>
           <option value=\"0\">-הכל-</option>
          <option value=\"50000\">50,000</option>
          <option value=\"100000\">100,000</option>
          <option value=\"125000\">125,000</option>
          <option value=\"150000\">150,000</option>
          <option value=\"160000\">160,000</option>
          <option value=\"170000\">170,000</option>
          <option value=\"180000\">180,000</option>
          <option value=\"190000\">190,000</option>
          <option value=\"200000\">200,000</option>
          <option value=\"210000\">210,000</option>
          <option value=\"220000\">220,000</option>
          <option value=\"230000\">230,000</option>
          <option value=\"240000\">240,000</option>
          <option value=\"250000\">250,000</option>
          <option value=\"275000\">275,000</option>
          <option value=\"300000\">300,000</option>
          <option value=\"325000\">325,000</option>
          <option value=\"350000\">350,000</option>
          <option value=\"375000\">375,000</option>
          <option value=\"400000\">400,000</option>
          <option value=\"450000\">450,000</option>
          <option value=\"500000\">500,000</option>
          <option value=\"600000\">600,000</option>
          <option value=\"700000\">700,000</option>
          <option value=\"800000\">800,000</option>
          <option value=\"900000\">900,000</option>
          <option value=\"1000000\">1,000,000</option>
          <option value=\"1200000\">1,200,000</option>
          <option value=\"1500000\">1,500,000</option>
          </select><br>
          מעלית:&nbsp;<input type=\"checkbox\" name=\"elevator\"><br>
          חניה:&nbsp;&nbsp;&nbsp;<input type=\"checkbox\" name=\"parking\"><br>
          סורגים:<input type=\"checkbox\" name=\"suragim\"><br>
          מיזוג:&nbsp;&nbsp;&nbsp;<input type=\"checkbox\" name=\"soragim\"><br>
          <br>
          <input type=\"submit\" value=\"חפש\" name=\"submit\" />
          </form>
          "
;
}
else {
    
$property_kind mysql_real_escape_string($_POST['property_kind']);
    
$room_number_start = (int) $_POST['room_number_start'];
    
$room_number_end = (int) $_POST['room_number_end'];
    if (
$room_number_end <= $room_number_start) {
        
$room_number_end 12;
    }
    
$price_start = (int) $_POST['price_start'];
    
$price_end = (int) $_POST['price_end'];
    if (
$price_end <= $price_start) {
        
$price_end 1500000;
    }
    
$elevator = (int) $_POST['elevator'];
    
$parking = (int) $_POST['parking'];
    
$suragim = (int) $_POST['suragim'];
    
$air_condition = (int) $_POST['air_condition'];

    
$page = (int) $_GET['page'];
    if(
$page>2000000000 || $page<1) {
    
$page=1; }
    
$per_page 20;
    
$start = ($page-1) * $per_page;
    
$query mysql_query("SELECT count(*) as total FROM `house`") or die(mysql_error());
    
$row mysql_fetch_array($queryMYSQL_ASSOC);
    
$total_num $row['total'];


    
$query mysql_query("SELECT * FROM house where property_kind like '$property_kind' and rooms_number >= '$room_number_start' and rooms_number <= '$room_number_end' and price >= '$price_start' and price <= '$price_end' and elevator = '$elevator' and parking = '$parking' and suragim = '$suragim' and air_condition = '$air_condition' LIMIT $start$per_page") or die(mysql_error());

    while(
$row mysql_fetch_array($queryMYSQL_ASSOC))
    {
        echo 
$row['property_id'];
        echo 
"<br>";
    }


    echo 
'<form method="POST" action="'.$PHP_SELF.'">';


    if (
$page == and !isset($_POST['submit'])) {
        echo 
" FIRST PREV ";
    } else {
        echo 
" <a href='{$_SERVER['PHP_SELF']}?page=1'>FIRST</a> ";
        
$prevpage $page-1;
        echo 
" <a href='{$_SERVER['PHP_SELF']}?page=$prevpage'>PREV</a> ";
    } 
    
$last round($total_num/$per_page);
    echo 
" ( Page $page of $last ) ";
    if (
$page == $total_num and !isset($_POST['submit'])) {
        echo 
" NEXT LAST ";
    } else {
        
$nextpage $page+1;
        echo 
" <a href='{$_SERVER['PHP_SELF']}?page=$nextpage'>NEXT</a> ";
        echo 
" <a href='{$_SERVER['PHP_SELF']}?page=$last'>LAST</a> ";
    } 
}
?>



<?php
include("footer.php");
?>


לא כל כך הבנתי מדוע זה קורה, אני מניח שזה משום צורת ההעברה של $_POST ושהמשתנים נמחקים אחרי הפעם הראשונה שהם מועברים מהטופס, אבל אני לא ממש בטוח.

אודה לכם אם תוכלו להאיר את עיני במקור הבעיה.

תודה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 26-05-2006, 23:36
  GreenBerret GreenBerret אינו מחובר  
 
חבר מתאריך: 13.12.05
הודעות: 1,963
בתגובה להודעה מספר 6 שנכתבה על ידי vorlon שמתחילה ב "תודה על התיקונים, אני אשנה..."

1. בעניין BETWEEN, הוא נוח יותר כיוון שאם מישהו יבחר ערך של "מינימום" בתור ערך גבוה ו"מקסימום" עם ערך נמוך ממנו השאילתה שלך לא תחזיר תוצאות.

2. כשאתה טוען את העמוד לאחר POST, תבנה את הטופס כשהאפשרויות שהמשתמש בחר כבר נבחרו.
תיצור עוד שדה נסתר שמכיל את מספר העמוד.
תקבע שכשמשתמש לוחץ על "קישור" לעמוד הבא/הקודם, לשדה הנסתר תוסיף/תחסיר אחד ואז תשלח את הטופס שוב פעם.

3. את השאילתה אתה יכול ליצור בצורה כזו.
קוד:
SELECT tbl.cell, tbl.cell, (SELECT COUNT(cell) FROM tbl) AS total WHERE ...
יש מצב שזה טעות..

4. לפי דעתי עדיף לא להציג את כמות ההודעות שיש, כי זה לא כל כך מעניין.
מה שאני עושה, אני מבקש ממסד הנתונים את "מספר הרשומות לשאילתה אחת" ועוד אחד.
אם יש לי יותר מ"מספר הרשומות לשאילתה אחת", ז"א קיבלתי את ה"ועוד אחד", אז יש לי עוד עמודים ואם יש לי שווה או קטן מ, נגמרו העמודים.
כמובן בשימוש עם LIMIT ככפולה של העמוד הנוכחי ב"מספר הרשומות לשאילתה אחת".
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 10:16

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר