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

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

eXtaZa 30-12-05 22:09

בעיה בPHP...
 
יש לי בעיה בקוד שכתבתי. יש שתי שדות שקוראים להם: your_name ו your_message , ועשיתי שיבדוק האם השדות ריקים, אם כן אז לרשום למשתמש שישלים את כל השדות , ואם לא אז שיוסיף את הנתונים שהוא הכניס לבסיס נתונים, אחרי שהוא הכניס אותם רציתי שידפיס לי בטבלה את השם שלו ואת ההודעה , כלומר להוציא את הנתונים מהבסיס נתונים ולהדפיס אותם.
אבל הוא לא מדפיס לי אותם... אני לא יודע מה הבעיה...
תודה לעוזרים
אז הינה חלק מהקוד:
קוד:

if( isset($your_name) || isset($your_message) )
        {
                if( empty($your_name) || empty($your_message) )
                        print("Please fill all the details");
        }
else
        {
                mysql_query($query, $link)
                        or die("Couldn't add data");               
                $all_fields=mysql_query("SELECT * FROM gustbook");
                while($a_row=mysql_fetch_row($all_fields) )
                        {
                        print("<table>\n");
                        print("<tr>");
                        foreach($a_row as $field)
                                print "<td>$field</td>\n";
                        print("</tr>\n");
                        print "</table>\n";
                        }
        }


LosNir 30-12-05 22:31

אז זהו שאין ב PHP את הפקודה print, יש את הפקודה echo.

eXtaZa 30-12-05 22:33

ציטוט:

נכתב במקור על ידי LosNir2
אז זהו שאין ב PHP את הפקודה print, יש את הפקודה echo.

מאיפה הוצאת את זה שאין את הפקודה print ?
ברור שיש

flash 30-12-05 22:33

PHP קוד:

if($your_name==NULL || $your_message==NULL){
echo
"אנא מלא את כל השדות";
}else{
mysql_query($query$link)or die("Couldn't add data");        
$all_fields=mysql_query("SELECT * FROM gustbook");
while(
$a_row=mysql_fetch_row($all_fields) ){
echo
"
<table>
<tr>
foreach($a_row as $field)
<td>$field</td>
</tr>
</table>
"
;
}


חחחח ניר מה קשור

eXtaZa 30-12-05 22:40

flash , הדרך שלך לא עובדת...

LosNir 30-12-05 22:41

ציטוט:

נכתב במקור על ידי eXtaZa
מאיפה הוצאת את זה שאין את הפקודה print ?
ברור שיש

ישנה פקודת print בשפות אחרות, אך ב PHP אין פקודת print.

LosNir 30-12-05 22:42

ציטוט:

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

if($your_name==NULL || $your_message==NULL){
echo
"אנא מלא את כל השדות";
}else{
mysql_query($query$link)or die("Couldn't add data");        
$all_fields=mysql_query("SELECT * FROM gustbook");
while(
$a_row=mysql_fetch_row($all_fields) ){
echo
"
<table>
<tr>
foreach($a_row as $field)
<td>$field</td>
</tr>
</table>
"
;
}


חחחח ניר מה קשור

קשור קשור... ב PHP אין פקודת print.
אבל זה לא הבעיה היחידה בקוד.
משום מה, הקוד ניראה לי טיפה שונה מ PHP.

(מצטער, לא שמתי לב שעשיתי דאבל פוסט)

eXtaZa 30-12-05 22:47

LosNir2 ועוד יש print.
אם אתה טוען שאין את הפקודה הזאת , אז תסביר לי מה זה:
http://il.php.net/manual/en/function.print.php

LosNir 30-12-05 22:54

ציטוט:

נכתב במקור על ידי eXtaZa
LosNir2 ועוד יש print.
אם אתה טוען שאין את הפקודה הזאת , אז תסביר לי מה זה:
http://il.php.net/manual/en/function.print.php

כן? אז תסביר לי את זה:

print() is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list.


echo היא הפקודה הראשית.

eXtaZa 30-12-05 22:56

אוקיי אבל עדיין יש את הפקודה הזאת וממה שרשמת אפשר לראות:
"אין פקודת print"
מקודם אמרת שאין בכלל פקודה כזאת

BlueNosE 30-12-05 23:07

טוב עזבו תויכוח
פקודת פרינט קיימת אבל היא יעילה בדיוק כמו הדפסה רגילה בHTML.
echo עוד עובר עיבוד אחרי זה, ו-print לא.
הבנת? ;)

eXtaZa 30-12-05 23:12

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

LosNir 30-12-05 23:13

ציטוט:

נכתב במקור על ידי BlueNosE
טוב עזבו תויכוח
פקודת פרינט קיימת אבל היא יעילה בדיוק כמו הדפסה רגילה בHTML.
echo עוד עובר עיבוד אחרי זה, ו-print לא.
הבנת? ;)

יש מצב, נגיד:

PHP קוד:

$name "nir";
echo 
"hi $name"// will return "hi nir"
print "hi $name"// will return "hi $name" 

ציטוט:

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

אוקיי, לפי קריאה בריפרוף של הקוד, שמתי לב (לדעתי) שהוא לא כ"כ יעיל, והוא יכול להכתב בפחות שורות ולבצע את הפעולה הרבה יותר טוב, למשל:

PHP קוד:

<?
$posted 
$_POST['posted'];
// תיצור חבוי בטופס שלך ושהערך יהיה 1, ושהשם יהיה posted
// זה יהיה יעיל בשביל לבדוק אם הטופס אכן נשלח
$your_message $_POST['your_message'];
$your_name $_POST['your_name'];
if(!
$your_message)
{
echo 
"Please fill all the details";
}
if(!
$your_name)
{
echo 
"Please fill all the details";
}
if(
$posted == 1)
{
mysql_query("INSERT INTO gustbook VALUES('$your_name','$your_message')")
}
?>

בהצלחה ;)

psycho 30-12-05 23:14

ציטוט:

נכתב במקור על ידי LosNir2
יש מצב, נגיד:

PHP קוד:

$name "nir";
echo 
"hi $name"// will return "hi nir"
print "hi $name"// will return "hi $name" 


הדוגמא שנתת תציג בשני המקרים hi nir ...

בדקת בכלל?


אגב... למה 90% ממי שהגיב פה לא יודע PHP וסתם אומר

LosNir 30-12-05 23:23

ציטוט:

נכתב במקור על ידי psycho
הדוגמא שנתת תציג בשני המקרים hi nir ...

בדקת בכלל?


אגב... למה 90% ממי שהגיב פה לא יודע PHP וסתם אומר

אמרתי "יש מצב", זה אומר שאני לא בטוח ב100%.
ושים לב שערכתי.

eXtaZa 30-12-05 23:31

הצלחתי כבר לבד... אפשר לנעול

Eran-s 30-12-05 23:50

ציטוט:

נכתב במקור על ידי psycho
הדוגמא שנתת תציג בשני המקרים hi nir ...

בדקת בכלל?


אגב... למה 90% ממי שהגיב פה לא יודע PHP וסתם אומר

:qqb006:

נעול כבקשתך.


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

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