19-06-2017, 20:47
|
|
|
חבר מתאריך: 07.08.04
הודעות: 10
|
|
אשמח לעזרה SQL - הודעת שגיאה חיפוש מילה בעברית בטבלה קיימת
שלום לכל הקבוצה, אשמח עזרה בחיפוש שם בעברית הנקלט מ FORM לתוך טבלת MYSQL
יש לי קצת ידע בתכנות, הלימוד הקטן עם SQL בעזרת מדריכים בנט.
קצת הקדמה שתבינו על מה מדובר:
אני מקבל הודעת שגיאה ברגע שאני מריץ שאילתה על טקסט בעברית, מצורף כתמונה.
יש לי 3 טבלאות
- customer_table המכיל את שמות המתפללים
- operation_table המכיל את הפעולה של המתפלל אם זה מי שברך, עליה לתורה וכו...
- data_integration_table טבלה שמכילה את כל השיבוצים, ה ID של של המתפלל, ID של הפעולה, שם הפרשה, תאריך הביצוע והסכום שתרם.
הכנתי 2 קבצים הראשון בעזרת FORM שאני בוחר מתוך רשימה את שם המתפלל ואת הפעולה, ב Input נוסף רושם בעברית את שם הפרשה,
בהתאם לכפתור שאני לוחץ זה מבצע את החיפוש הנדרש שקבעתי בקוד.
בקובץ השני החיפוש מתבצע עם הצגת הנתונים בתוך טבלה.
השתמשתי בפקודות INNER JOIN וב WHERE
ברגע שאני רשום בעברית לוחץ על כתפור החיפםוש המתאים לפי שם הפרשה, אני מקבל את הודעת השגיאה, שאר החיפושים זה עובד.
הקוד שאני משתמש בו , אני רושם את הקודים הקשורים, אחרת זה יהיה ארוך פחות מובן לפי דעתי.
החלק של הקוד בה אני רושם שם בעברית
קוד PHP:
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<form method="post" action="read_DataIntegration.php">
<span>פרשה: </span><input type="text" name="thora" placeholder="פרשה">
<button class="button-_style" type='submit' name='btn_submit' value='Button 3'>הצג לפי פרשה</button>
</form>
הקובץ השני read_DataIntegration.php
כאשר בעמודה thora כל השמות בעברית.
קוד PHP:
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<?php header('Content-Type: text/html; charset=utf-8');
echo "<table class='special' align='right';>";
echo "<tr>
<th>שם המתפלל</th>
<th>שם הפעולה</th>
<th>שם הפרשה</th>
<th>תאריך</th>
<th>סכום</th>
</tr>";
// קבלת נתונים מהפורם
$customer_id = $_REQUEST['output'];
$operation_id = $_REQUEST['output1'];
$date = $_REQUEST['date'];
$thora = $_REQUEST['thora'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "synagogue";
try
{
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
// set character name
$conn->query("SET NAMES 'utf8'");
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$sth = $conn->query("SELECT data_integration_table.date, data_integration_table.thora, data_integration_table.amount, customer_table.first_name, customer_table.last_name, operation_table.operation_name FROM data_integration_table
INNER JOIN customer_table ON data_integration_table.customer_id = customer_table.customer_id
INNER JOIN operation_table ON data_integration_table.operation_id = operation_table.operation_id WHERE data_integration_table.thora = $thora");
$sth->setFetchMode(PDO::FETCH_BOTH);// Mode par défaut (tableau)
while($row = $sth->fetch())
{
echo "</tr>";
echo "<td>", $row['first_name'], ' ', $row['last_name'],"</td>";
echo "<td>", $row['operation_name'], "</td>";
echo "<td>", $row['thora'], "</td>";
echo "<td>", $row['date'], "</td>";
echo "<td>", $row['amount'], "</td>";
echo "</tr>";
$sth->closeCursor();
echo "</table>";
$conn = null;
?>
|