sql >> Database >  >> RDS >> Mysql

Checkbox-waarden invoegen in MySQL-database met PHP

Selectievakjes worden alleen geplaatst als ze zijn aangevinkt. Dus als het selectievakje niet is aangevinkt, verschijnt het niet in $_POST . Ook moet u over het algemeen geen waarden aan selectievakjes geven. Gebruik in plaats daarvan namen om ze te onderscheiden.

In de database vertegenwoordig ik meestal selectievakjes met tinyints en sla 1 op voor aangevinkt en 0 voor niet-aangevinkt.

// If your checkbox name is foo, this will convert it
// into a value that can be stored in the database
$foo = isset($_POST['foo']) ? 1 : 0;

Houd er ook rekening mee dat html vereist dat ID's uniek zijn. U kunt dus niet meerdere elementen met dezelfde id hebben. En u moet uw invoer ontsmetten om sql-injectie te voorkomen. Gebruik mysql_real_escape_string() op gebruikersinvoer die in de database terechtkomt.

Bijwerken

Het belangrijkste probleem is dat de query een ') . mist ' op de laatste regel. De zoekopdracht zou er als volgt uit moeten zien

$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);

Let op de afsluitende ') ' op de laatste regel van de query. Merk ook op dat als u de query op deze manier in een variabele maakt, u de gemaakte query kunt uitvoeren, zodat u kunt zien wat er precies naar MySQL wordt verzonden en u uw query ook in een andere omgeving kunt testen (dwz in phpmyadmin of een ander databasebeheer gereedschap).




  1. Door komma's gescheiden tekenreeks splitsen --> FUNCTIE db.CHARINDEX bestaat niet

  2. Vouw meerdere rijen arrays samen als de arrays elkaar overlappen

  3. MySQL selecteer gescheiden gegevens

  4. mysql-query duurt te lang om uit te voeren