동일한 데이터베이스 내에 두 번째 테이블을 만들었지 만 이번에는 오류가 발생합니다. 경고 : mysqli_fetch_assoc()은 매개 변수 1이 mysqli_result가 될 것으로 기대합니다. . on line 30 나는 PHP에 익숙하지 않다. 원하는 결과 : 다른 경우에는 새 이름이 아직 존재하지 않는 경우 항목 또는 업데이트, 새로운 점수가 처음 .PHP 스크립트가 동일동일한 데이터베이스의 두 번째 테이블을 참조하는 방법
<?php>
// score speichern
$zahl = $_POST["text2"];
// name speichern
$text = $_POST["text1"];
if($text == null){
echo("Keinen Text empfangen.");
}
// verbindung zu db herstellen
$db = @new mysqli("mysql.hostinger.de", "u465976419_k", "8o3SCoZLzh36", "u465976419_k");
if($db->connect_error){
die("<pre>".$db->connect_error."</pre>");
}
$num = $sql->num_rows; // anzahl der Datensätze
#mysqli_query($db, "DELETE FROM Rangliste2 WHERE name = 'a'");
$neuezahl = FALSE;
$existiertkleiner = FALSE;
$existiert = FALSE;
// neuen sql eintrag
if($zahl != null){
//$namen = mysqli_query($db, "SELECT name FROM Rangliste2");
$nameexistiert = mysqli_fetch_assoc(mysqli_query($db, "SELECT score FROM Rangliste2 WHERE name='$text'"));
$dbscore= $nameexistiert['score'];
if($dbscore>0){
if($zahl>$dbscore){
mysqli_query($db, "DELETE FROM Rangliste2 WHERE name = '$text'");
mysqli_query($db, "INSERT INTO Rangliste2 (name, score) VALUES ('$text', $zahl)");
}
}else{ //neuer eintrag eines neuen spielers
mysqli_query($db, "INSERT INTO Rangliste2 (name, score) VALUES ('$text', $zahl)");
}
}
//sql abfrage
$sql = $db->query("SELECT * FROM Rangliste2y ORDER BY score DESC");
$num = $sql->num_rows; // anzahl der Datensätze
if($num > 0){
while($row = $sql->fetch_object()){
echo ("$row->name: $row->score\n");
}
}
?>
높은 경우. 'Rangliste2'대신에 'Rangliste'두 테이블이 있습니다 ... 다른 사람이 완벽하게 작동하는 동안 어떻게 하나의 오류를 줄 수 있습니까? 도와주세요. 모든 대답에 감사드립니다.
안녕하세요 여기에 추가합니다. 먼저 SQL 삽입과 준비된 문에 대해 배우려면 http://bobby-tables.com을 살펴 봐야합니다. 당신이 당신의 코드를 작성한 방식으로, 당신의 데이터베이스는 5 초 안에 정말로 큰 노하우없이 해킹 될 수 있습니다. 단지 링크 된 페이지를 방문하면 당신이 의미하는 바를 이해하게 될 것입니다. 사용자 입력을 사용하여 실행중인 쿼리가 있으면 준비된 문을 항상 사용해야합니다. 결코 (예를 들어'$ text')처럼 SQL 쿼리에 직접 사용자 입력을 넣지 마십시오. 또한 DB에 connet 한 후에는 $ num = $ sql-> num_rows;'- 왜? – Twinfriends