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

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



  #1  
ישן 19-01-2008, 18:31
  fraps0 fraps0 אינו מחובר  
 
חבר מתאריך: 22.09.06
הודעות: 476
שיוך של תוצאות ב-SQL

שלום לכולם!

יש לי בעיה, אני רוצה לשייך משתנה למשתנה אחר בטלאת ה-SQL.

עכשיו כל פעם שאני עושה את זה, זה לא מציג את המשתנה (והינה אני יסביר יותר את הכוונה שלי).

נגיד שאני רוצה לשייך את age ל-name בטבלה שלי ב-SQL.

אז אני עושה ככה (נגיד דוגמא):

קוד PHP:
<?php

$SQL 
mysql_connect('host''user''pass');
mysql_select_('db',$SQL);
$DB mysql_query("SELECT * FROM `person` where `online` = '1'");
while(
$F mysql_fetch_array($DB))
  {
    
$Name $F['name'];
    
$A mysql_fetch_assoc($DB);
    
$Ag explode(' ',$L['data']);
    
$Age $Ag['34']->$Name;
echo 
'<center>'.$Name.' is '.$Age.' years old</center>';

הבעיה היא, שזה פשוט לא מציג את ה-Age! (ולמי ששואל, למה השתמשתי ב-explode, כי בקוד המקורי אני לא מחפש age אלא משהו מוצפן.

עכשיו מה לא נכון? עושה את זה בצורת -> לא?

אם כן, אז תגידו לי בבקשה למה זה לא הולך לי.

אם לא, אז תגידו לי בבקשה מה כן אמור להיות.

תודה מראש.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 20-01-2008, 14:47
  fraps0 fraps0 אינו מחובר  
 
חבר מתאריך: 22.09.06
הודעות: 476
סליחה טעות שלי
בתגובה להודעה מספר 2 שנכתבה על ידי yoavmatchulsky שמתחילה ב "יש לך שם כל מני דברים מבלבלים..."

שיניתי המון משמות המשתנים בקוד, אני עכשיו יביא תיקון


קוד PHP:
<?php
$SQLLogin 
mysql_connect('host','user','pass');
  
mysql_select_db('characters',$SQLLogin);
  
$DB mysql_query("SELECT * FROM `character` where `online` = '1'");
  
$q mysql_query("select * from `character` where `name` = '$Name'");
  
$TotalOnline mysql_num_rows($DB);
  echo 
'<font color="white" size="5">There are Total '.$TotalOnline.' Players Online<BR>';
echo 
'<center>
<table align="center" height="100%" width="40%" border="1" bordercolor="white">
<td align="center" width="50%">Name</td>
<td align="center" width="50%">Level</td>
<td align="center" width="50%">Race</td>
<td align="center" width="50%">Class</td>
<td align="center" width="50%">Map</td>
<td align="center" width="50%">Zone</td>'
;
  while(
$F mysql_fetch_array($DB))
  {
    
$Name $F['name'];
    
$L mysql_fetch_assoc($DB);
    
$Lev explode(' ',$L['data']);
    
$Level $Lev['34']->$Name// This is the thing I don't know exactly.
    
$R $F['race'];
    
$C $F['class'];
    
$M $F['map'];
    
$Z $F['zone'];
    
$RQ mysql_db_query("ids","SELECT * FROM `race` where `id` = '$R'");
    
$RO mysql_fetch_object($RQ);
    
$CQ mysql_db_query("ids","SELECT * FROM `class` where `id` = '$C'");
    
$CO mysql_fetch_object($CQ);
    
$MQ mysql_db_query("ids","SELECT * FROM `map` where `id` = '$M'");
    
$MO mysql_fetch_object($MQ);
    
$ZQ mysql_db_query("ids","SELECT * FROM `area` where `id` = '$Z'");
    
$ZO mysql_fetch_object($ZQ);
    
$Race $RO->name;
    
$Class $CO->name;
    
$Map $MO->name;
    
$Zone $ZO->name;

  echo 
'<tr><td align="center" width="50%">'.$Name.'</td>';
  echo 
'<td align="center" width="50%">'.$Level.'</td>';
  echo 
'<td align="center" width="50%">'.$Race.'</td>';
  echo 
'<td align="center" width="50%">'.$Class.'</td>';
  echo 
'<td align="center" width="50%">'.$Map.'</td>';
  echo 
'<td align="center" width="50%">'.$Zone.'</td>';
  }
  
?>

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 20-01-2008, 15:40
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 3 שנכתבה על ידי fraps0 שמתחילה ב "סליחה טעות שלי"

אוקיי, בוא נתחיל עם כמה דברים
אתה עושה:
קוד:
while ($F = mysql_fetch_array())

ואחרכך אתה מנסה לקרוא למשתנים בתוך $F ע"י השם שלהם, אבל mysql_fetch_array מחזיר מערך לא לפי שמות, אלא לפי אינדקסים, זותומרת שכל השדות ב $F הם מספרים (0,1..) ולא שמות, כמו שאתה קורא להם.

דבר שני, בתוך הלולאה, אתה עושה עוד פעם mysql_fetch_assoc אשר מעביר את הפוינטר הפנימי של התוצאת שאילתא קדימה. מה זה אומר בעצם? כאשר מתחילה הלולאה, $F מקבל שורה מהדאטאבייס והיא אמורה לעבוד עליה. כשאתה עושה $L = mysql_fetch_assoc() באמצע, אתה בעצם מכניס ל $L את השורה אחריה.

דבר שלישי, אתה לא יכול לעשות את הדבר הזה:
קוד:
$Lev = explode(' ',$L['data']); $Level = $Lev['34']->$Name;

הסיבה - $Lev הוא מערך של מחרוזות (כמו שexplode מחזיר) ומחרוזת היא לא אוביקט ולכן אין לה משתנים וה(חץ-$ניים) זה לא דבר חוקי לעשות.
אם המקרה שלך הוא שיש לך מחרוזת גדולה של מידע שאתה צריך את האיבר ה34 בה, אז אתה יכול לעשות משהו כזה:
קוד:
$lev = explode(' ' ,$L['data']); $level = $lev[34];

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

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

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

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

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



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

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

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

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