Avatar billede Ringvig Juniormester
05. september 2020 - 14:41 Der er 6 kommentarer

Kan ikke se fejlen i mit script ?

Hej

Jeg er ved at lave et joke script som samarbejder med en twitch bot

Men add delen er bare blank ? kan ikke lige lure hvad det skyldes :(

if(isset($_GET['add']) && empty($_GET['add']))
{
                        $joke=$_GET['add'];

                        $checktjoke = "SELECT * FROM joke WHERE joke ='".$joke."'";
                        $res_joke = $dbconnect->query($checktjoke);
                        if(!mysqli_num_rows($res_joke) > 0)

                        {
                            echo "joken findes allerede";
                        }
                       
                        $query = "INSERT INTO joke (joke) VALUES ('$joke')";

                        if (!mysqli_query($dbconnect, $query)) { die('Der skete en fejl. Prøv igen');
                           
                        } else {
                             
                              echo "Joken er tilføjet";

                        }
                    }


På forhånd mange tak
Avatar billede repox Seniormester
05. september 2020 - 15:04 #1
Mener du at $_GET['add'] er tom når du tilgår scripter med script.php?add=din%20tekst eller hvordan skal det forstås?
Avatar billede erikjacobsen Ekspert
05. september 2020 - 15:35 #2
Så det er måske bare:

  if(isset($_GET['add']) && !empty($_GET['add']))
Avatar billede Ringvig Juniormester
05. september 2020 - 20:21 #3
Nu laver scriptet da noget.. men den stopper ikke med at tilføje selvom teksten er i databasen i forvejen.

Men jo jeg skriver bare Joke.php?add=tester .

if(isset($_GET['add']) && !empty($_GET['add']))
{
                        $joke=$_GET['add'];

                        $checktjoke = "SELECT * FROM joke WHERE joke ='".$joke."'";
                        $res_joke = $dbconnect->query($checktjoke);
                        if(!mysqli_num_rows($res_joke) > 0)

                        {
                            echo "joken findes allerede";
                        }
                       
                        $query = "INSERT INTO joke (joke) VALUES ('$joke')";

                        if (!mysqli_query($dbconnect, $query)) { die('Der skete en fejl. Prøv igen');
                           
                        } else {
                             
                              echo "Joken er tilføjet";

                        }
                    }
Avatar billede repox Seniormester
05. september 2020 - 21:02 #4
Det er fordi at efter du har echo'et at joken allerede findes, så fortsætter din kode med at sætte joken ind.

Du skal indkapsle den del i en if.
Avatar billede Ringvig Juniormester
05. september 2020 - 21:18 #5
Nu virker jeg måske total hjælpeløs.. hvilket jeg os er :/ Forstår ikke hvor den if skal være ?
Avatar billede repox Seniormester
05. september 2020 - 21:46 #6
Du har if-sætningen men den betinger ikke andet end echo'et.
Din kode siger faktisk at:

- Tjek om joke er i databasen.
- Hvis joke er I databasen, så sig det.
- Indsæt joke i databasen.

Det du skal have den til at sige er:

- Tjek om joke er i databasen.
- Hvis joke er I databasen, så sig det ellers indsæt joke i databasen.

Problemet ligger i denne del af din kode:

if(!mysqli_num_rows($res_joke) > 0) // jeg tror at den "!" der er I if-sætningen er forkert også
{
      echo "joken findes allerede";
}
// her mangler en "else" der omklamrer det der indsætter joken)                   
$query = "INSERT INTO joke (joke) VALUES ('$joke')";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester