[PHP] errore unexpected T_LNUMBER che non so interpretare

  • Creatore Discussione Creatore Discussione theseo
  • Data di inizio Data di inizio

theseo

Utente Attivo
22 Feb 2017
95
5
8
62
ciao a tutti, ho questa select (non fatta da me...)

SELECT M.id, M.tipo, M.scuola, M.id_materia, M.titolo, M.descrizione, M.descrizione2,
M.url, M.file,
M.nome, M.cognome, M.email,M.dati, M.data_inserimento, M.data_approvazione,
M.data_rifiuto,
AVG(V.voto) AS media
FROM materiale M
LEFT JOIN voto V ON V.id_materiale = M.id
WHERE 1
AND id_materia = '$id_materia'
AND M.data_approvazione IS NOT NULL
GROUP BY M.id
ORDER BY RAND( )
limit 14";

che vorrei modificare inserendo un IF + ELSE al LIMIT finale in modo che il limite cambi in base alle mie esigenze e quindi ho provato così-->

limit if (M.nome LIKE '%video%') {
echo "15";
} else {
echo "8";
} ";

ossia io vorrei che SE nel campo NOME c'è la parola "video" il limite sia 15, in caso contrario sia 8
L'ho messo online e mi è venuto questo errore-->

Parse error: syntax error, unexpected T_LNUMBER in ecc ecc

mi potete x cortesia aiutare?
 
Ciao
Non ho capito molto bene cosa vuoi fare.
SE nel campo NOME c'è la parola "video"
Questo campo NOME lo vai a inserire a mano o tramite una select per effettuare la ricerca?
O vuoi che eseguendo la query controlla se c'è o meno il testo VIDEO e ti restituisca solo 8/15 risultati?

Inoltre il testo video è scritto sempre uguale oppure è all'interno di altro contenuto testo?

Se capisco ciò che vuoi fare cerco di aiutarti.
 
grazie per la risposta!
allora -->
- voglio che eseguendo la query controlla se c'è o meno il testo VIDEO e mi restituisca solo 8/15 risultati
- il testo "video" è scritto sempre all'interno di altro contenuto testo
ancora grazie
 
Però non capisco una cosa?
la query estrarrà più risultati giusto?? In ognuno di esso c'è o non c'è la parola "video" come fai a estrarre 8/15 risultati??
Il controllo deve essere fatto prima ad esempio estrai 15 con contenuto video oppure 8 senza contenuto video.

Scusami ma non ho capito molto bene
 
la query estrarrà più risultati giusto??--> SI
In ognuno di esso c'è o non c'è la parola "video"--> SI
come fai a estrarre 8/15 risultati??--> beh pensavo di mettere il LIMIT + la IF alla fine... se sia meglio alla fine o prima questo non lo so proprio xchè non sono esperto...
fin'ora comunque con il LIMIT alla fine e basta andava benissimo
 
MI AUTORISPONDO-->

$lunghezza=strlen($nome);
if ("$lunghezza" > 10) {
$limite = '16';
} else {
$limite = '10';
}
$query = "
SELECT M.id, M.tipo, M.scuola, M.id_materia, M.titolo, M.descrizione, M.descrizione2,
M.url, M.file,
M.nome, M.cognome, M.email,M.dati, M.data_inserimento, M.data_approvazione,
M.data_rifiuto,
AVG(V.voto) AS media
FROM materiale M
LEFT JOIN voto V ON V.id_materiale = M.id
WHERE 1
AND id_materia = '$id_materia'
AND M.data_approvazione IS NOT NULL
GROUP BY M.id
ORDER BY RAND( )
limit $limite";
 
Infatti molto semplice, ma non ci eravamo capiti a quanto pare.
$nome dove lo imposti per curiosità?


Vabe comunque l'importante è risolvere;)
 

Discussioni simili