you should use var_dump() on the values for debugging, since it indicates the length of the value. unfortunately, you didn't show us what you saw when you echoed the variables and if you made a change to the sql query statement and it didn't work, showing us what you changed would help someone solve the problem.
converting a query that has variables being put directly into it into a prepared query is straight forward -
remove, and keep for later, any php variables that are inside the sql query statement. note: any wild-card characters in a LIKE comparison are supplied as part of the data value not as part of the sql query statement.
remove any quotes or {} that were around the php variable and any concatenation dots/extra quotes that were used to get the php variable into the sql query statement.
put a simple ? prepared query place-holder into the sql query statement for each value.
call the PDO prepare() method for the sql query statement. this returns a PDOStatement object.
call the PDOStatement execute([...]) method with an array of the variables you removed in step #1.
for a query that returns a result set, fetch the data from the query. see the PDOStatement fetch() method when fetching a single row of data. the PDOStatement fetchAll() method when fetching all the rows of data at once. and occasionally the PDOStatement fetchColum() method when fetching a single column from a single row of data. forget about any num rows function/method/property. just fetch then test if/how many rows of data there are.
for a query that doesn't return a result set, you can use the PDO lastInsertId() method and the PDOStatement rowCount() method to get the last insert id and the number of affected rows.
for the query in this thread, this would look like -
// i recommend that you build the sql query statement in a php variable. this makes debugging easier since you can echo the sql
$sql = "Select * FROM weekends WHERE Weekend_Number = ? AND Men_Women = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([ $_SESSION['Weekend_Number'], $_SESSION['Men_Women'] ]);
// if this query can match a set of data
$result = $stmt->fetchAll();
// if this query can match at most one row of data
$result = $stmt->fetch();
typical PDO connection code -
$DB_HOST = ''; // database host name or ip address
$DB_USER = ''; // database username
$DB_PASS = ''; // database password
$DB_NAME = ''; // database name
$DB_ENCODING = 'utf8mb4'; // db character encoding. set to match your database table's character set. note: utf8 is an alias of utf8mb3/utf8mb4
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // set the error mode to exceptions - this is the default setting now in php8+
PDO::ATTR_EMULATE_PREPARES => false, // run real prepared queries
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC // set default fetch mode to assoc
];
$pdo = new pdo("mysql:host=$DB_HOST;dbname=$DB_NAME;charset=$DB_ENCODING",$DB_USER,$DB_PASS,$options);