Problème requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème requête

par sylvaing26 » 08 nov. 2008, 11:20

ca merite d'etre clair ! :roll:

par albat » 08 nov. 2008, 00:07

Il vaut mieux que tu les renommes surtout ! :evil:

Les apostrophes inversées, c'est comme une couche de peinture sur un mur pourri :
ça paraît joli et sauve les apparences, mais ça s'écroulera sous peu.

par sylvaing26 » 07 nov. 2008, 22:42

Oula oui en efefet je reformule lol
J'ai des tables qui ont comme unique nom un chiffre. Il faut donc que je mette les guillemets inverse car il ne s'agit pas de noms standars

par albat » 04 nov. 2008, 19:32

des noms standars c'est des noms sans chiffre et qui ne sont pas reservés ?
Les chiffres sont acceptés dans les noms de champs et de tables,
à condition que le 1er caractère soit une lettre.
exemples : table01, champ427 sont des noms valides.
j'ai des tables ou s'est des numero et je dois les mettre donc c'est pas standar ?
Gni ? :shock:

par sylvaing26 » 03 nov. 2008, 20:07

des noms standars c'est des noms sans chiffre et qui ne sont pas reservés ?
j'ai des tables ou s'est des numero et je dois les mettre donc c'est pas standar ?

par zeus » 03 nov. 2008, 16:00

Si tu arrives à ne pas l'utiliser, c'est que tu utilises que des noms standards. Donc, si tu ne l'utilises nul part, c'est le must ;)

par sylvaing26 » 03 nov. 2008, 15:54

donc l'apostrophe inversée il faut sd'en servir uniquement pour les noms de table ?

par albat » 03 nov. 2008, 09:24

:!: J'ajouterai que :
- pour alléger l'écriture de la requête (et faciliter sa lecture)
- pour éviter d'utiliser des mots réservés (date, field, etc.) ou des noms avec des caractères compliqués (espaces, accents, etc.)
il est recommandé de ne pas utiliser les apostrophes pour les noms de tables et de champs.

par Ryle » 03 nov. 2008, 01:03

Alors les apostrophes classique (') servent en SQL à délimiter une chaine de caractère. En revanche les apostrophes inversées (`) permettent à MySQL (et à lui uniquement) de protéger le nom d'une table ou d'un champ, ce qui permet (hélas ?) de leur donner n'importe quel nom.

par sylvaing26 » 02 nov. 2008, 21:47

ca marche si je met SELECT * FROM `1` et dès que je passe une variable comme SELECT * FROM '$numerocommande' ca marche pu. Il veut les guillemets inverse lorsque j'ecrit `1`.
En revanche si j'ecrit un tout petit nom de variable avec les guillemets inversés tel que `$num` ca fonctionne ... :shock:

par Ryle » 02 nov. 2008, 21:43

mysql_num_rows() te retourne le nombre d'enregistrements trouvés par ta requête ou FALSE en cas d'erreur. Si tu n'obtiens pas un nombre, c'est qu'il y a eu une erreur.

S'il y a une erreur, c'est vraissemblablement que le paramètre que tu lui passes n'est pas bon. Cela veut dire que ta variable $sql ne contient pas une Ressource correcte. Cela veut dire que le résultat de mysql_query() n'est pas bon. Ce qui veut dire qu'il y a un problème avec ta requête.

Tu peux le vérifier en testant le résultat de mysql_query(), et connaitre les messages d'erreur éventuels avec un mysql_error() ou simplement en testant ta requête directement dans phpMyAdmin :)

Problème requête

par sylvaing26 » 02 nov. 2008, 21:28

J'effectue une requete sur ma table SQL et mon $nbr est toujours null alors que j'ai des enregistrements dans ma table
<?php include("connect_panier.php");
			MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
			MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
			$numero_commande = "1";
			$sql = mysql_query("SELECT * FROM '1'");
			$nbr = mysql_num_rows($sql);
			if(!isset($nbr)){
			echo "<p style=\"margin-top:20px; margin-bottom:0;\" align=\"center\"><font face=\"Arial\" color=\"#990000\"><span style=\"font-size:10pt;\">$numero_commande $nbr Vous n'avez aucun article dans votre panier</span></font></p>";
			}
			else{
			include("corps_panier.php");
			echo $nbr;
			}
			echo $nbr;
			?>