2010-12-13 3 views
1

en double possible:
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given errorObtenir des valeurs MIN et MAX d'une colonne

J'ai une table avec 6 colonnes.
Les trois premiers (id, canal, date) sont définis comme clé primaire.

Je voudrais obtenir les valeurs MIN et MAX de la colonne id pour un canal/date donnée. Le problème est, il semble que je ne peux pas utiliser WHERE en utilisant MIN et MAX dans ma requête.

est-il un moyen propre pour obtenir quelque chose qui fonctionnerait comme ça:

SELECT MIN(id), MAX(id) FROM table WHERE channel = xxxx AND date = yyyy ? 

MISE À JOUR:

Désolé, oublié d'inclure l'erreur. Voici ce que je reçois lors de l'analyse des résultats: « Warning: mysql_fetch_row() attend le paramètre 1 pour être ressource, booléen donné »

+3

cela devrait fonctionner. Quelle erreur obtenez-vous? –

+0

Quelle est l'erreur que vous obtenez? –

+1

Désolé, j'ai oublié d'inclure l'erreur. Voici ce que j'ai en analysant les résultats: "Attention: mysql_fetch_row() s'attend à ce que le paramètre 1 soit resource, booléen donné". – shroom

Répondre

2

Votre requête devrait fonctionner correctement, mais je pense que vous avez une erreur dans votre syntaxe SQL.

Avez-vous mis vos paramètres entre guillemets?

SELECT MIN(id), MAX(id) 
FROM table 
WHERE channel = 'blabla' AND date = '2010-12-13' 

Depuis que vous avez écrit, que vous obtenez une erreur Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given vous devriez demander mysql ce qui était faux. Vous pouvez le faire en ajoutant cette ligne après votre appel mysql_query():

echo mysql_error(); 
+0

Merci, cela m'a aidé résolu mon problème, j'ai eu une faute de frappe quelque part ailleurs dans mon code qui fournissait une mauvaise colonne ... les erreurs sont les pires Easiest trouver ... – shroom

1

Le problème est que votre code tire aucun résultat pour certains de vos requêtes, et mysql_query retournerai FALSE si la requête ne renvoie aucun résultat Lorsque vous transmettez cette valeur FALSE en mysql_fetch_row, il renvoie le message d'erreur que vous voyez.

Vous aurez envie de faire quelque chose comme ceci:

$results = mysql_query($your_query); 
if ($results) { 
    // Work with $results here 
} 
+0

Oui, mais le problème est qu'il devrait trouver des résultats car j'ai fourni des valeurs génériques pour un test. À l'heure actuelle, la colonne de canal a la même valeur sur chaque ligne (la même chose s'applique pour la date). Et cela fonctionne parfaitement bien sans la condition WHERE. Merci pour votre temps :) – shroom

+0

@shroom: Pourriez-vous poster du code réel et peut-être un petit échantillon de données, ainsi que des exemples de résultats? – FrustratedWithFormsDesigner

Questions connexes