הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 19-05-06, 21:55   # 1
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

שליפת מידע מתוך MySQL - תלות בין השיאלתות.

אהלן, יש לי בתוך מסד הנתונים של הMySQL שני טבלאות שאני מעוניין להשתמש בהם - articles ו categories.
אני שולף את שמות כל הקטגוריות ממסד הנתונים בצורה הבאה -
קוד:
$db->query("SELECT * FROM `categories` ORDER BY category ASC");
אני צריך לשלוף את השם של הקטגוריה ואת הid שלה, בשביל לבצע את השיאלתה הבאה -
קוד:
$db->query("SELECT * FROM `articles` WHERE `id` = {$row['id']}");
אבל עצם, כשאני משלב אותם בתוך while, את שניהם, כל אחד while, הוא לא מדפיס דבר. מה עליי לעשות? הפלט שלי אמור להיראות כך -
Cat 1
Article 1

Cat 2
Article 2
Article 3

Cat 3
Article 4
Article 5

אשמח לעזרה, תודה מראש, אליחי.
  Reply With Quote
ישן 19-05-06, 22:14   # 2
Rom
Winner
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,359

Rom לא מחובר  

קוד:
$db->query("SELECT * FROM `articles` WHERE `id` = $row['id']");
תנסה את זה
__________________
בברכה, רום.
מתכנת אפליקציות אינטרנט.

אימייל: Rom.As10@gmail.com
מסנג'ר: Rom_as10@hotmail.com
  Reply With Quote
ישן 19-05-06, 22:26   # 3
eXtaZa
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
הודעות: 288

eXtaZa לא מחובר  

ציטוט:
נכתב במקור על ידי DragonRom
קוד:
$db->query("SELECT * FROM `articles` WHERE `id` = $row['id']");
תנסה את זה
מה ההבדל בין מה שעשית פה למה שהוא עשה?
  Reply With Quote
ישן 19-05-06, 22:30   # 4
MasterNir
חבר פורום
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 36
הודעות: 122
שלח הודעה באמצעות ICO אל MasterNir שלח הודעה באמצעות MSN אל MasterNir

MasterNir לא מחובר  

חחח שמה שהוא עשה יתן לך שגיאה ולא ירוץ (:

קודם כל, בטבלה categories יש שדה בשם category?
__________________
ניר, מתכנת PHP מקצועי עם ידע ויכולות מוכחות.

צור קשר:
MSN Messanger: MasterNir@gmail.com
E-mail: MasterNir@gmail.com
ICQ #: 171963672
  Reply With Quote
ישן 19-05-06, 22:33   # 5
eXtaZa
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
הודעות: 288

eXtaZa לא מחובר  

$db->query("SELECT * FROM `categories` ORDER BY category ASC");

Last edited by eXtaZa; 19-05-06 at 22:35..
  Reply With Quote
ישן 20-05-06, 00:32   # 6
Alter
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 3,103

Alter לא מחובר  

מבחינת מבנה:
categories מכיל את השדות id,category
articles מכיל את השדות id,cid,title (יש עוד שדות, אבל הם לא רלוונטיות כרגע)

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

השאלה היא, כיצד?
סינון של where cid = {$row['id']}
כבר יש לנו .

תודה מראש
ואליחי דבר איתי, יש עידכונים במערכת עצמה, שיפצתי הודעות שגיאה ואת מספר התגובות


--edit--
אחרי שעה כמעט, אני שמח להגיד שהצלחתי!
אליחי זה עובד!!
אבל יש בעיה =]
אנחנו עובדים עם פונקציות להתחברות לבסיס נתונים.
בשביל לעשות שזה יעבוד הייתי צריך לעשות התחברות לבסיס נתונים פעמיים
בפעם הראשונה:
PHP קוד:
$db->connect('localhost''user''pass''user'); 
שככה זה עובד לנו מצויין בכל הדפים
ובפעם השניה:
PHP קוד:
$db1->connect('localhost''user''pass''user'); 
כמובן לפני זה יש גם
PHP קוד:
$db = new database;
$db1 = new database
יש רעיון איך לחסוך בהתחברויות בלתי רצויות ויעילות לבסיס נתונים?
__________________
Alter.

Last edited by Alter; 20-05-06 at 01:21.. סיבה: הצלחתי כאילו דה?
  Reply With Quote
ישן 20-05-06, 01:21   # 7
MasterNir
חבר פורום
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 36
הודעות: 122
שלח הודעה באמצעות ICO אל MasterNir שלח הודעה באמצעות MSN אל MasterNir

MasterNir לא מחובר  

תוכלו להוסיף כאן את הקטע הקוד הרלוונטי?

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

צור קשר:
MSN Messanger: MasterNir@gmail.com
E-mail: MasterNir@gmail.com
ICQ #: 171963672
  Reply With Quote
ישן 20-05-06, 01:37   # 8
Alter
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 3,103

Alter לא מחובר  

אין שגיאות, כמו שאמרתי, הוא מציג את המידע מצויין!
רק שזה לא יעיל שאני צריך לעשות פעמיים התחברות לבסיס הנתונים בשביל הקטע הזה בגלל שאני משתמש בפונקציות.
הקוד:
PHP קוד:
<?php 
ob_start
();
/** 
*
* @package ------
* @version $id: index.php, v.0.1.8 20/05/2006 00:47:40
* @copyright (c) 2006 Ron Alter and EliHai Sasi
*
*/

/*
* Index page
*/

// define the core path
define('CORE''./core/');

// require database class and connect
require_once CORE "classes/database.php";
$db = new database;
$db1 = new database;
// connect to mysql with class and config
//require_once . "./conf_global.php";
$db->connect('localhost''user''pass''user');  
$db1->connect('localhost''user''pass''user');  
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script type="text/javascript" src="script.js"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
    <link rel="stylesheet" type="text/css" href="css/global.css">
</head>
<body>
<?php

if($_GET['act'] == "view") {
    
$db->query("SELECT * FROM categories ORDER BY id aSC");
    while (
$categorie $db->fetch_array())    {
        
$rows $db->num_rows();
        if(!empty(
$rows)) { 
?>
    <table border="0" width="85%" class="table">
        <tr>
            <td class="td1"><div align="center" class="text_title"><? echo  $categorie['category'?> - id <? echo  $categorie['id'?></div></td>
        </tr>
<?

            $db1
->query("SELECT * FROM articles WHERE cid = " $categorie['id'] . " ORDER BY title ASC");
            while(
$x $db1->fetch_array()) {
                echo 
"        <tr>
            <td class='text'><a href='articles.php?id=" 
$x['id'] . "&amp;cid=" $x['cid'] . "' class='text'>" $x['title'] . "</a></td>
        </tr>
"
;
}
?>
    </table>
<?
        
}
    elseif(empty(
$rows))    { 
        echo (
"  "); 
    }
}
}
?>


<?php ob_end_flush(); ?>
אני זז לישון, בבוקר אני חוזר, תודה על העזרה.
__________________
Alter.
  Reply With Quote
ישן 20-05-06, 07:50   # 9
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

אממ
אתה לא חייב להתחבר פעמיים כדי להוציא שאילתות מ2 טבלאות שנמצאות באותו מסד, רון.
מספיק חיבור אחד ל29628376 שאילתות על אותו מסד.
PHP קוד:
$db -> query ("SELECT * FROM bla");
$db -> query ("INSERT INTO bla (1, 2, 3) VALUES ('bla', 'bli', blop')"); 
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 20-05-06, 10:17   # 10
Alter
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 3,103

Alter לא מחובר  

ציטוט:
נכתב במקור על ידי BlueNosE
אממ
אתה לא חייב להתחבר פעמיים כדי להוציא שאילתות מ2 טבלאות שנמצאות באותו מסד, רון.
מספיק חיבור אחד ל29628376 שאילתות על אותו מסד.
PHP קוד:
$db -> query ("SELECT * FROM bla");
$db -> query ("INSERT INTO bla (1, 2, 3) VALUES ('bla', 'bli', blop')"); 
קראת את כל הנושא?
אני מאמין שלא, אם היית קורא הכל היית רואה שאני יודע שלא צריך 2 חיבורים, אבל בשביל מה שאני מנסה לעשות, שעובד רק עם 2 חיבורים שונים, אני צריך להתחבר פעמיים.
השאלה איך אני מקצר את זה?
הקובץ כתוב 2 הודעות מעל הנוכחית.

תודה על הנסיון לעזור, רון.
__________________
Alter.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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