מסדי נתונים
-
-
@בשר-טרי
א' - מול איזה סוג מסד נתונים אתה עובד.
ב' - עד כמה אתה מבין ב-SQL (במקרה וזה מסד נתונים SQL) או בשפה אחרת בה עובדים מול המסד נתונים.
ג' - תכתוב ברור יותר מה אתה צריך להשיג, איך מבנה הנתונים במסד שאתה מתממשק וכו'שאלות כאלה כדאי שתשאל בתחומים, שם יש מתכנתים ויוכלו לענות לך
-
@chv
יש לי כזה קוד:<?php //מוריד הודעות שגיאה error_reporting(0); $phone = $_GET["ApiPhone"]; $extension = $_GET["ApiExtension"]; $a = $_GET["a"]; $item = $_GET["item"]; $del =$_GET["del"]; $Select_or_Continue=$_GET["Select_or_Continue"]; $Order_quantity=$_GET["Order_quantity"]; //התחברות למסד נתונים $servername = "localhost"; $username = "********"; $password = "*****; $dbname = "*********"; // צור חיבור $conn = new mysqli($servername, $username, $password, $dbname); // הודעת כשלון if ($conn->connect_error) { die("id_list_message=t-שגיאה בהתחברות: " . $conn->connect_error); } // מקבל את התאריך כרגע $currentDateTime = date('Y-m-d H:i:s'); //echo "id_list_message=t- מספר הטלפון שנקלט הוא: $phone : <b>"; //מחפש מספר לקוח בספר טלפונים $sql_mer_id = ("SELECT customer_id FROM phonebook WHERE phone_number=$phone"); $result_mer_id = $conn->query($sql_mer_id); if ($result_mer_id->num_rows > 0) { // output data of each row while($row_mer_id = $result_mer_id->fetch_assoc()) { // echo "מספר טלפון $phone :"; $customerNomber = $row_mer_id["customer_id"]; //"קיבל את הנתון למשתנה // echo "id_list_message=t- $message1: $customerNomber : <b>";//מספר הלקוח שלך הוא // עם מספר לקוח יחפש בהמשך בטבלת הזמנות כמה הוא הזמין ממוצר זה } } //מחפש שם לקוח בטבלת לקוחות $sql_people = ("SELECT name,language FROM people WHERE id=$customerNomber"); $result_people = $conn->query($sql_people); if ($result_people->num_rows > 0) { // output data of each row while($row_people = $result_people->fetch_assoc()) { $customerNane = $row_people["name"]; $group_name = $row_people["group_name"]; $language=$row_people["language"]; //"קיבל את שם הלקוח //echo "id_list_message=t- השם שלך הוא: $customerNane&go_to_folder=/4/1/2&"; } } //========================================רשימת הודעות============================================================== //רשימת הודעות באאנגלית if($language="en"){ $message1="מספר הלקוח שלך הוא"; $message2="הגעתם לסוף הרשימה"; $message3="המחיר הוא"; $message4="שקלים"; $message5="הזמנתם"; $message6="יחידות"; $message7="להזמנה הקישו אחת, להמשך שתים, לפריט הקודם: הקישו שלוש, לשמיעת סיכום ההזמנה ואחר כך לעבור לפריט הבא: הקישו ארבע, לשמיעה של הפריטים שהִזְמַנתֶם הקישו חמש, לתשלום, תשע, לתפריט ראשי, אפס, ולסיום, ניתן לנתק את השיחה"; $message8="לעדכון ההזמנה, הקישו אחת, להמשך שתים, לפריט הקודם: הקישו שלוש, לשמיעת סיכום ההזמנה ואחר כך לעבור לפריט הבא: הקישו ארבע, לשמיעה של כל הפריטים שהִזְמַנתֶם הקישו חמש, לתשלום, תשע, לתפריט ראשי: אפס, ולסיום ניתן לנתק את השיחה"; $message9="נא להקיש כמות, ואחר כך להקיש סולמית"; $message10=" ההזמנה של"; $message11=" יחידות, נרשמה בהצלחה"; $message12="ההזמנה של פריט זה נמחקה"; $message13="עדכון ההזמנה אל"; $message14="יחידות, נרשמה בהצלחה!"; $message15=" הגעתם לסוף הרשימה"; $message16="אין שורה קודמת"; $message17="סכום כל ההזמנה עד כה הוא"; $message18="שקל, עד כאן פירוט ההזמנות"; $message19="לא נמצאו רשומות"; $message20="להלן ההזמנה שרשומה במערכת"; $message21=" הזמנתם"; $message22=" יחידות של"; $message23="מחיר ליחידה"; $message24="שקל, סך הכל"; $message25=" שקל"; $message26="סכום כל ההזמנה עד כה הוא"; $message27="שקל, עד כאן פירוט ההזמנות"; $message28="לא נמצאו רשומות"; $message29="אנחנו חוזרים למכירה"; $message30=""; }else{ // רשימת הודעות בעברית $message1="מספר הלקוח שלך הוא"; $message2="הגעתם לסוף הרשימה"; $message3="המחיר הוא"; $message4="שקלים"; $message5="הזמנתם"; $message6="יחידות"; $message7="להזמנה הקישו אחת, להמשך שתים, לפריט הקודם: הקישו שלוש, לשמיעת סיכום ההזמנה ואחר כך לעבור לפריט הבא: הקישו ארבע, לשמיעה של הפריטים שהִזְמַנתֶם הקישו חמש, לתשלום, תשע, לתפריט ראשי, אפס ולסיום, ניתן לנתק את השיחה"; $message8="לעדכון ההזמנה, הקישו אחת, להמשך שתים, לפריט הקודם: הקישו שלוש, לשמיעת סיכום ההזמנה ואחר כך לעבור לפריט הבא: הקישו ארבע, לשמיעה של כל הפריטים שהִזְמַנתֶם הקישו חמש, לתשלום, תשע, לתפריט ראשי, אפס, ולסיום ניתן לנתק את השיחה"; $message9="נא להקיש כמות, ואחר כך להקיש סולמית"; $message10=" ההזמנה של"; $message11=" יחידות, נרשמה בהצלחה"; $message12="ההזמנה של פריט זה נמחקה"; $message13="עדכון ההזמנה אל"; $message14="יחידות, נרשמה בהצלחה!"; $message15=" הגעתם לסוף הרשימה"; $message16="אין שורה קודמת"; $message17="סכום כל ההזמנה עד כה הוא"; $message18="שקל, עד כאן פירוט ההזמנות"; $message19="לא נמצאו רשומות"; $message20="להלן ההזמנה שרשומה במערכת"; $message21=" הזמנתם"; $message22=" יחידות של"; $message23="מחיר ליחידה"; $message24="שקל, סך הכל"; $message25=" שקל"; $message26="סכום כל ההזמנה עד כה הוא"; $message27="שקל, עד כאן פירוט ההזמנות"; $message28="לא נמצאו רשומות"; $message29="אנחנו חוזרים למכירה"; $message30=""; }//======================================================עכ רשימת הודעות===================================== //מספר של מכירה //שם הפרוייקט הפעיל כרגע $sql_Project = ("SELECT id FROM Projects WHERE Situation=1"); //המספר 1 מסמן מכירה פעילה ו0 מסמןמכירה סגורה $result_Project = $conn->query($sql_Project); if ($result_Project->num_rows > 0) { // output data of each row while($row_Project = $result_Project->fetch_assoc()) { $Project_id_nomber = $row_Project["id"]; //מספר פרוייקט פעיל //"קיבל מספר סריאלי של פרוייקט הפעיל } } //----------------------------------------------------ע"כ מספר מכירה נוכחית---------------------------------------- // הגדרות של פריט בתנאי שמספר הפרוייקט רשום 1 כלומר פעיל בטבלת פרוייקטים $sql = ("SELECT * FROM items WHERE serial_name=$item AND Project=$Project_id_nomber"); $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $name_of_item = $row["name_of_item"]; //שם פריט $text_for_reading1 = $row["text_for_reading"]; // טקסט לקריאה $price_per_unit = $row["price_per_unit"]; //מחיר if($language="en"){$text_for_reading = $row["text_for_reading_en"];} // טקסט לקריאה באנגלית } } //================================================================================================================ //נתיב של מוצר קודם או מוצר הבא $sql_order = "SELECT serial_name FROM items WHERE Project=$Project_id_nomber ORDER BY serial_name"; $result_order = $conn->query($sql_order); if ($result_order->num_rows > 0) { while($row = $result_order->fetch_assoc()) { $order1 = $order; //שורה קודמת מספר סריאלי $order = $row ['serial_name']; if ($order==$item){ //echo "order1=$order1|||order=$order"; break;} }} //לוקח מטבלת תיאום את הנתיב לשלוחה קודמת $sql_order = "SELECT to_path FROM path_in_Yemot WHERE serial_name=$order1"; $result_path = $conn->query($sql_order); if ($result_path->num_rows > 0) { while($row = $result_path->fetch_assoc()) { $previous_item = $row ['to_path']; } } // echo "הנתיב לפריט הקודם: $previous_item";//}}else{echo "id_list_message=t-שגיאה: אין מספר פריט מול נתיב בטבלת path_in_Yemot";} //==================================================================================================================================== //מוצר הבא $order="0"; $sql_order = "SELECT serial_name FROM items WHERE Project=$Project_id_nomber ORDER BY serial_name DESC"; $result_order = $conn->query($sql_order); if ($result_order->num_rows > 0) { while($row = $result_order->fetch_assoc()) { //הפריט הכי גבוה במספור $order1 = $order; //שורה קודמת מספר סריאלי $order = $row ['serial_name']; if ($order===$item){ $order=$order1; break;} } } //לוקח מטבלת תיאום את הנתיב לשלוחה הבאה $sql_order = "SELECT to_path FROM path_in_Yemot WHERE serial_name=$order"; $result_path = $conn->query($sql_order); if ($result_path->num_rows > 0) { while($row = $result_path->fetch_assoc()) { $next_item = $row ['to_path']; //echo "<br>פריט הבא: $next_item"; } if ($order1==0 AND $order===$item){ //ה," //אם גומר את כל הסיבובים עד הסוף, סימן שאין פריטים אחרי ז //הגעתם לסוף הרשימה $next_item =NULL; }//else{$next_item=$next_item1;} } //נתיב תפריט ראשי ושלוחת תשלום //לוקח מטבלת תיאום את כתובת התפריט הראשי $sql_order = "SELECT * FROM path_in_Yemot"; // WHERE serial_name='Main Menu'"; $result_path = $conn->query($sql_order); if ($result_path->num_rows > 0) { while($row = $result_path->fetch_assoc()) { $serial_name =$row ['serial_name']; if($serial_name==="Main Menu"){$Main_Menu_path = $row ['to_path'];} if($serial_name==="Payment"){$Payment_path = $row ['to_path'];} } } //=============================================================================================== // האם הלקוח הזמין כבר ממוצר זה $sqlTab = "SELECT * FROM orders WHERE customer_id=$customerNomber AND item_id=$item"; //AND City='Berlin'; if($result = mysqli_query($conn, $sqlTab)){ if(mysqli_num_rows($result) > 0){ while($row = $result->fetch_assoc()) { $old_order = $row["number_of_items"]; //"בדיקת קבלת נתון למשתנ } }else{$old_order="XXX";} } //=======================================עד כאן אספנו נתונים מהטבלאות, עכשיו מתחיל לטפל בקליינט // כמות הזמנה if ($Order_quantity == NULL){ //להזמין או להמשיך if ($Select_or_Continue ==="0"){goto main_path;} if ($Select_or_Continue == 0) { a: //מכין הודעות $Item_name_message = " $text_for_reading1 $message3 $price_per_unit $message4:"; $old_order_message = " $message5 $old_order $message6, "; // עד כאן הכין 2 הודעות, עכשיו משדר אותם בצירוף המלל הקבוע למתקשר if ($old_order == 0) { echo "read=t-$note $Item_name_message $message7 =Select_or_Continue,No,1,1,5,No,yes,No,*/,1234590"; }else{ echo "read=t-$note $Item_name_message $old_order_message $message8 =Select_or_Continue,No,1,1,5,No,yes,No,*/,1234590";} } else { ////....אם השם לא מופיע במאגר לקוחות. // המצב הזה לא אמור להיות בגלל הרישום בשלב הקודם, ולכן הוא לא מטופל כאן } } else { //אם הקו טלפון עוד לא הגיע לשלב של הזמנה... אבל אם כן, יטופל להלן } // אם המתקשר בחר 1 להזמנה או 2 או 3 וכולי כאן מגיע הקוד בעניין הזה //אם המתקשר הקיש 1 להזמנת מוצר if ($Select_or_Continue ==1 and $Order_quantity == NULL){ echo "read=t-$message9=Order_quantity,No,2,1,5,No,yes,No,*/"; } //אם כמות הזמנה לא שווה משהו מאפס ומעלה אז צריך לעשות הזמנה else{ if ($Select_or_Continue ==1 and $Order_quantity >-1){ $sum_is= $Order_quantity*$price_per_unit; // סך לתשלום //========================================================================================================================================== if ($old_order == "XXX") { //אם לא הייתה הזמנה לפני כן צריך לפתוח שורה חדשה, ואם היה הזמנה יעדכן בשורה הקודמת $sql_save_item = "INSERT INTO orders ( _date,customer_id,customer_name,item_id,item_name,text_for_reading,number_of_items,price_per_unit,sum) VALUES ('$currentDateTime','$customerNomber','$customerNane','$item','$name_of_item','$text_for_reading1','$Order_quantity','$price_per_unit','$sum_is')"; //משום מה לא עובד בלי בדיקת מצב if ($conn->query($sql_save_item) === TRUE) { //הזמנה של כך וכך יחידות נרשמה בהצלחה if($next_item===NULL){$note_1="$message10 :$Order_quantity $message11 !";}else{echo "id_list_message=t- $message10 :$Order_quantity $message11!&";} // echo "&go_to_folder=$next_item"; } else { echo "id_list_message=t-Error: " . $sql_save_item . "<br>" . $conn->error; } }else{ if ($Order_quantity=="0" OR $Order_quantity<1){ $sql_save_item = "DELETE FROM orders WHERE customer_id=$customerNomber AND item_id=$item"; if ($conn->query($sql_save_item) === TRUE) {} if($next_item===NULL){$note_1="$message12 !";}else{echo "id_list_message=t-$message12 !&";} //ההזמנה של פריט זה נמחקה בהצלחה // echo "&go_to_folder=$next_item"; }else{ $sql_save_item = "UPDATE orders SET _date='$currentDateTime', number_of_items='$Order_quantity', sum='$sum_is' WHERE customer_id=$customerNomber AND item_id=$item"; //משום מה לא עובד בלי בדיקת מצב if ($conn->query($sql_save_item) === TRUE) { if($next_item===NULL){$note_1="$message13 :$Order_quantity $message14";}else{echo "id_list_message=t-$message13 :$Order_quantity $message14 !&";} //עדכון הזמנה אל ... יחידות נרשמה בהצלחה // echo "&go_to_folder=$next_item"; } else { echo "id_list_message=t-Error: " . $sql_save_item . "<br>" . $conn->error; } } } //============================================ עד כאן עדכון ההזמנה בטבלת הזמנות======================================================================== if($next_item===NULL){$note="$note_1 $message15 ";$Select_or_Continue=NULL; goto a;} //הגעתם לסוף הרשימה else{ echo "go_to_folder=$next_item"; } //סיכום $result = $conn->query("SELECT number_of_items,sum FROM orders WHERE item_id=$item"); $row = $result->fetch_assoc(); $Total_order_quantity = htmlentities($row['number_of_items']); //echo "סך הכל הוזמנו $Total_order_quantity יחידות"; // מעדכן הזמנה בטבלה של פריטים $sql_save_item = "UPDATE items SET count_orders='$Total_order_quantity' WHERE serial_name='$item'"; //משום מה לא עובד בלי בדיקת מצב if ($conn->query($sql_save_item) === TRUE) { // echo "id_list_message=t- תוספת נרשמה בטבלת הפריטים הראשית"; } // מעדכן סכום לתשלום בטבלה של לקוח $result = $conn->query("SELECT number_of_items,sum FROM orders WHERE item_id=$item AND customer_id=$customerNomber"); $row = $result->fetch_assoc(); $Total_order_quantity = htmlentities($row['sum']); //echo "סך לתשלום $Total_order_quantity"; //=============================================עדכון חוב בטבלת לקוח=========================================== $sql_save_item = "UPDATE people SET debt='$Total_order_quantity' WHERE id='$customerNomber'"; if ($conn->query($sql_save_item) === TRUE) { // echo "id_list_message=t- תוספת נרשמה בטבלת לקוח"; } } } //----------------------------------------------------------------------------------------------------------------------------------------------------- //אם המתקשר הקיש 2 למוצר הבא if ($Select_or_Continue ==2 and $Order_quantity == 0){ if($next_item===NULL){$note="$message15 ,";$Select_or_Continue=NULL; goto a; }else{ echo "go_to_folder=$next_item"; }} //--------------------------------------------------------------------------------------------------------------------------------- //אם המתקשר הקיש 3 למוצר קודם if ($Select_or_Continue ==3 and $Order_quantity == 0){ if($previous_item===NULL){$note="$message16 ,";$Select_or_Continue=NULL; goto a;} else{ echo "go_to_folder=$previous_item"; }} //--------------------------------------------------------------------------------------------------------------------------------- //אם המתקשר הקיש 4 לשמיעת סיכום ההזמנה ואז להמשיך if ($Select_or_Continue ==4 and $Order_quantity == 0){ //סיכום לתשלום $sqlTab = "SELECT number_of_items,sum FROM orders WHERE customer_id=$customerNomber"; if($result = mysqli_query($conn, $sqlTab)){ if(mysqli_num_rows($result) > 0){ while($row = $result->fetch_assoc()) { $Total_order_quantity = $Total_order_quantity + $row["sum"]; } if ($Total_order_quantity>0){ //סכום כל ההזמנה עד כה הוא....שקל, עד כאן פירוט ההזמנות if($next_item===NULL){$note= "$message17: $Total_order_quantity $message18,";$Select_or_Continue=NULL; goto a; }else{ echo "id_list_message=t- $message17: $Total_order_quantity $message18,&go_to_folder=$next_item";} }else{ if($next_item===NULL){ $note= "$message19 "; //לא נמצאו רשומות $Select_or_Continue=NULL; goto a; }else{ echo "id_list_message=t-$message19&go_to_folder=$next_item"; } } } } } //אם המתקשר הקיש 5 יביא את רשימת ההזמנה שלו if ($Select_or_Continue ==5 and $Order_quantity == 0){ $sqlsort = "SELECT text_for_reading , price_per_unit, sum FROM orders WHERE customer_id=$customerNomber"; $result = $conn->query($sqlsort); $Total_order_quantity = htmlentities($row['sum']); // סך הכל לתשלום if ($result->num_rows > 0) { // output data of each row if($next_item==NULL){$note="$message20,<br>";} //להלן ההשמנות שנרשמו במערכת else{echo "id_list_message=t-$message20,<br>";} //להלן ההזמנות שנרשנו במערכת while($row = $result->fetch_assoc()) {//הזמנתם... יחידות של...מחיר ליחידה...שקל, סך הכל...שקל if($next_item===NULL){$note="$note $message21: " . $row['number_of_items']. "$message22 " . $row['text_for_reading']. " $message23: " . $row['price_per_unit']. " $message24 : " . $row["sum"]. "$message25 <br>"; }else{echo "$message21: " . $row['number_of_items']. " $message22 ". $row['text_for_reading']. " $message23: " . $row['price_per_unit']. " $message24: " . $row["sum"]. " $message25 <br>";} } //סיכום לתשלום $sqlTab = "SELECT number_of_items,sum FROM orders WHERE customer_id=$customerNomber"; if($result = mysqli_query($conn, $sqlTab)){ if(mysqli_num_rows($result) > 0){ while($row = $result->fetch_assoc()) { $Total_order_quantity = $Total_order_quantity + $row["sum"]; } if ($Total_order_quantity>0){ if($next_item===NULL){$note="$note <br> $message26 : $Total_order_quantity $message27 ,"; //סכום כל ההזמנה עד כה הוא ...שקל, עד כאן פירוט ההזמנה }else{echo "<br> $message26: $Total_order_quantity $message27,";} }else{ if($next_item===NULL){$note="$note id_list_message=t-$message28 ";}else{echo "id_list_message=t-$message28&go_to_folder=$next_item";} } } } } if($next_item===NULL){$note="$note $message29: "; $Select_or_Continue=NULL; goto a;} } //------------------------------------------------------------------------------------ //אם המתקשר הקיש 9 לתשלום if ($Select_or_Continue ==9 and $Order_quantity == 0){ echo "go_to_folder=$Payment_path"; } //------------------------------------------------------------------------------------ //אם המתקשר הקיש 0 לתפריט ראשי main_path: if ($Select_or_Continue ==="0" and $Order_quantity == 0){ echo "go_to_folder=$Main_Menu_path"; } $conn->close(); ?>
יש לך מושג איך אני מעביד אותו?
-
-